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