private static @NotNull Double2ObjectMap<List<PsiReference[]>> mapNotEmptyReferencesFromProviders(@NotNull PsiElement context,
                                                                                                    @NotNull List<? extends ProviderBinding.ProviderInfo<ProcessingContext>> providers) {
    Double2ObjectOpenHashMap<List<PsiReference[]>> map = new Double2ObjectOpenHashMap<>();
    for (ProviderBinding.ProviderInfo<ProcessingContext> info : providers) {
      PsiReference[] refs = getReferences(context, info);
      if (refs.length > 0) {
        List<PsiReference[]> list = map.get(info.priority);
        if (list == null) {
          list = new SmartList<>();
          map.put(info.priority, list);
        }
        list.add(refs);
        if (IdempotenceChecker.isLoggingEnabled()) {
          IdempotenceChecker.logTrace(info.provider + " returned " + Arrays.toString(refs));
        }
      }
    }
    return map;
  }
private static @NotNull Double2ObjectMap<List<PsiReference[]>> mapNotEmptyReferencesFromProviders(@NotNull PsiElement context,
                                                                                                    @NotNull List<? extends ProviderBinding.ProviderInfo<ProcessingContext>> providers)