void (@NotNull PsiType qualifierType, @Nullable PsiClass aClass, @NotNull PsiScopeProcessor processor, @NotNull PsiElement place, @NotNull ResolveState state) { if (aClass == null) return; if (!ResolveUtil.shouldProcessMethods(processor.getHint(ElementClassHint.KEY))) return; MultiMap<String, PsiMethod> methodMap = aClass.getUserData(KEY); if (methodMap == null) { MyBuilder builder = new MyBuilder(aClass); builder.generateMethods(); methodMap = ((UserDataHolderEx)aClass).putUserDataIfAbsent(KEY, builder.myResult); } String nameHint = ResolveUtil.getNameHint(processor); Collection<? extends PsiMethod> methods = nameHint == null ? methodMap.values() : methodMap.get(nameHint); for (PsiMethod method : methods) { if (!processor.execute(method, state)) return; } }