@NotNull
  public Pair<List<PsiElement>, List<PsiExpression>> getPossibleAnchorsAndOccurrences(final Project project, final PsiExpression expr) {
    OccurrencesInfo occurrencesInfo = buildOccurrencesInfo(project, expr);

    final LinkedHashMap<JavaReplaceChoice, List<PsiExpression>> occurrencesMap = occurrencesInfo.buildOccurrencesMap(expr);
    List<PsiElement> anchors = occurrencesMap.values().stream()
      .map(o -> getAnchor(o.toArray(PsiExpression.EMPTY_ARRAY)))
      .filter(Objects::nonNull)
      .flatMap(anchor -> IntroduceVariableTargetBlockChooser.getContainers(anchor, expr).stream())
      .distinct()
      .collect(Collectors.toList());
    return Pair.create(anchors, occurrencesInfo.myOccurrences);
  }
@NotNull
  public Pair<List<PsiElement>, List<PsiExpression>> getPossibleAnchorsAndOccurrences(final Project project, final PsiExpression expr)