boolean (@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { NameHint nameHint = processor.getHint(NameHint.KEY); String name = nameHint != null ? nameHint.getName(state) : null; Map<String, Iterable<ResultWithContext>> explicitlyEnumerated = getEnumeratedDeclarations(); //noinspection unchecked Iterable<ResultWithContext> iterable = name != null ? explicitlyEnumerated.get(name) : ContainerUtil.concat(explicitlyEnumerated.values().toArray(new Iterable[0])); if (iterable != null && !ContainerUtil.process(iterable, new MyResolveCacheProcessor(state, processor))) return false; if (processor instanceof ClassResolverProcessor && (getUserData(PsiFileEx.BATCH_REFERENCE_PROCESSING) == Boolean.TRUE || myResolveCache.hasUpToDateValue()) && !PsiUtil.isInsideJavadocComment(place)) { MostlySingularMultiMap<String, ResultWithContext> cache = myResolveCache.getValue(); MyResolveCacheProcessor cacheProcessor = new MyResolveCacheProcessor(state, processor); return name != null ? cache.processForKey(name, cacheProcessor) : cache.processAllValues(cacheProcessor); } return processOnDemandPackages(state, place, processor); }