mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
speed up GDKSuperMethodSearcher initialization
This commit is contained in:
+7
@@ -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();
|
||||
|
||||
+3
-6
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user