speed up GDKSuperMethodSearcher initialization

This commit is contained in:
peter
2018-11-21 08:18:18 +01:00
parent d014708610
commit de778df311
2 changed files with 10 additions and 6 deletions
@@ -35,6 +35,13 @@ public class DGMMemberContributor extends NonCodeMembersContributor {
@NotNull PsiScopeProcessor processor,
@NotNull PsiElement place,
@NotNull ResolveState state) {
processDgmMethods(qualifierType, processor, place, state);
}
public static void processDgmMethods(@NotNull PsiType qualifierType,
@NotNull PsiScopeProcessor processor,
@NotNull PsiElement place,
@NotNull ResolveState state) {
if (!ResolveUtil.shouldProcessMethods(processor.getHint(ElementClassHint.KEY))) return;
final Project project = place.getProject();
@@ -17,7 +17,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.GroovyResolveResult;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMethod;
import org.jetbrains.plugins.groovy.lang.psi.impl.PsiImplUtil;
import org.jetbrains.plugins.groovy.lang.psi.impl.statements.expressions.TypesUtil;
import org.jetbrains.plugins.groovy.lang.resolve.NonCodeMembersContributor;
import org.jetbrains.plugins.groovy.lang.resolve.processors.MethodResolverProcessor;
import java.util.ArrayList;
@@ -30,8 +29,6 @@ import java.util.List;
*/
public class GDKSuperMethodSearcher implements QueryExecutor<MethodSignatureBackedByPsiMethod, SuperMethodsSearch.SearchParameters> {
private static final DGMMemberContributor myContributor = NonCodeMembersContributor.EP_NAME.findExtension(DGMMemberContributor.class);
@Override
public boolean execute(@NotNull SuperMethodsSearch.SearchParameters queryParameters, @NotNull Processor<? super MethodSignatureBackedByPsiMethod> consumer) {
final PsiMethod method = queryParameters.getMethod();
@@ -50,9 +47,9 @@ public class GDKSuperMethodSearcher implements QueryExecutor<MethodSignatureBack
final Project project = method.getProject();
final String name = method.getName();
final MethodResolverProcessor processor = new MethodResolverProcessor(name, ((GrMethod)method), false, null, null, PsiType.EMPTY_ARRAY);
myContributor.processDynamicElements(JavaPsiFacade.getElementFactory(project).createType(psiClass), psiClass, processor, method,
ResolveState.initial());
final MethodResolverProcessor processor = new MethodResolverProcessor(name, method, false, null, null, PsiType.EMPTY_ARRAY);
DGMMemberContributor.processDgmMethods(JavaPsiFacade.getElementFactory(project).createType(psiClass),
processor, method, ResolveState.initial());
final GroovyResolveResult[] candidates = processor.getCandidates();