public void processContributorNames(@NotNull ChooseByNameContributor contributor,
                                      @NotNull FindSymbolParameters parameters,
                                      @NotNull Processor<? super String> nameProcessor) {
    IntSet filter = new IntOpenHashSet(1000);
    if (contributor instanceof ChooseByNameContributorEx2) {
      ((ChooseByNameContributorEx2)contributor).processNames(s -> {
        if (nameProcessor.process(s)) {
          filter.add(s.hashCode());
        }
        return true;
      }, parameters);
    }
    else if (contributor instanceof ChooseByNameContributorEx) {
      ((ChooseByNameContributorEx)contributor).processNames(s -> {
        if (nameProcessor.process(s)) {
          filter.add(s.hashCode());
        }
        return true;
      }, parameters.getSearchScope(), parameters.getIdFilter());
    }
    else {
      String[] names = contributor.getNames(myProject, parameters.isSearchInLibraries());
      for (String element : names) {
        if (nameProcessor.process(element)) {
          filter.add(element.hashCode());
        }
      }
    }
    myContributorToItsSymbolsMap.put(contributor, filter);
  }
public void processContributorNames(@NotNull ChooseByNameContributor contributor,
                                      @NotNull FindSymbolParameters parameters,
                                      @NotNull Processor<? super String> nameProcessor)