boolean (@NotNull PsiType qualifierType, @NotNull PsiScopeProcessor processor, @NotNull PsiElement place, @NotNull ResolveState state) { if (!ResolveUtil.shouldProcessMethods(processor.getHint(ElementClassHint.KEY))) return true; final Project project = place.getProject(); ConcurrentMap<GlobalSearchScope, List<GdkMethodHolder>> map = CachedValuesManager.getManager(project).getCachedValue( project, () -> { ConcurrentMap<GlobalSearchScope, List<GdkMethodHolder>> value = ContainerUtil.createConcurrentSoftValueMap(); return CachedValueProvider.Result.create(value, PsiModificationTracker.MODIFICATION_COUNT); }); GlobalSearchScope scope = place.getResolveScope(); List<GdkMethodHolder> gdkMethods = map.get(scope); if (gdkMethods == null) { map.put(scope, gdkMethods = calcGdkMethods(project, scope)); } for (GdkMethodHolder holder : gdkMethods) { if (!holder.processMethods(processor, state, qualifierType, project)) { return false; } } if (!resolvesToMacro(processor, state, place, project)) { return false; } return true; }