@NotNull
  private static MultiMap<VirtualFile, FunExprOccurrence> getAllOccurrences(@NotNull List<? extends SamDescriptor> descriptors) {
    MultiMap<VirtualFile, FunExprOccurrence> result = MultiMap.createLinkedSet();
    descriptors.get(0).dumbService.runReadActionInSmartMode(() -> {
      for (SamDescriptor descriptor : descriptors) {
        GlobalSearchScope scope = new JavaSourceFilterScope(descriptor.effectiveUseScope, true);
        for (FunctionalExpressionKey key : descriptor.keys) {
          FileBasedIndex.getInstance().processValues(JavaFunctionalExpressionIndex.INDEX_ID, key, null, (file, infos) -> {
            result.putValues(file, ContainerUtil.map(infos, entry -> entry.occurrence));
            return true;
          }, scope);
        }
      }
    });
    LOG.debug("Found " + result.values().size() + " fun-expressions in " + result.keySet().size() + " files");
    return result;
  }
@NotNull
  private static MultiMap<VirtualFile, FunExprOccurrence> getAllOccurrences(@NotNull List<? extends SamDescriptor> descriptors)