diff --git a/java/java-indexing-api/src/com/intellij/psi/search/searches/MethodReferencesSearch.java b/java/java-indexing-api/src/com/intellij/psi/search/searches/MethodReferencesSearch.java index 8a0b5e3a8144..75f3b38f16ff 100644 --- a/java/java-indexing-api/src/com/intellij/psi/search/searches/MethodReferencesSearch.java +++ b/java/java-indexing-api/src/com/intellij/psi/search/searches/MethodReferencesSearch.java @@ -35,6 +35,7 @@ public class MethodReferencesSearch extends ExtensibleQueryFactory processor, @NotNull final PsiMethod constructor, @NotNull final PsiClass containingClass, @NotNull final SearchScope searchScope, + @NotNull final Project project, boolean ignoreAccessScope, final boolean isStrictSignatureSearch, @NotNull SearchRequestCollector collector) { final boolean[] constructorCanBeCalledImplicitly = new boolean[1]; final boolean[] isEnum = new boolean[1]; final boolean[] isUnder18 = new boolean[1]; - DumbService.getInstance(constructor.getProject()).runReadActionInSmartMode(new Runnable() { + + DumbService.getInstance(project).runReadActionInSmartMode(new Runnable() { @Override public void run() { constructorCanBeCalledImplicitly[0] = constructor.getParameterList().getParametersCount() == 0; @@ -61,7 +70,7 @@ public class ConstructorReferencesSearchHelper { }); if (isEnum[0]) { - if (!processEnumReferences(processor, constructor, containingClass)) return false; + if (!processEnumReferences(processor, constructor, project, containingClass)) return false; } // search usages like "new XXX(..)" @@ -93,14 +102,14 @@ public class ConstructorReferencesSearchHelper { ReferencesSearch.searchOptimized(containingClass, searchScope, ignoreAccessScope, collector, true, processor1); if (isUnder18[0]) { - if (!process18MethodPointers(processor, constructor, containingClass, searchScope)) return false; + if (!process18MethodPointers(processor, constructor, project, containingClass, searchScope)) return false; } // search usages like "this(..)" - if (!DumbService.getInstance(constructor.getProject()).runReadActionInSmartMode(new Computable() { + if (!DumbService.getInstance(project).runReadActionInSmartMode(new Computable() { @Override public Boolean compute() { - return processSuperOrThis(containingClass, constructor, constructorCanBeCalledImplicitly[0], searchScope, isStrictSignatureSearch, + return processSuperOrThis(containingClass, constructor, constructorCanBeCalledImplicitly[0], searchScope, project, isStrictSignatureSearch, PsiKeyword.THIS, processor); } })) { @@ -113,7 +122,7 @@ public class ConstructorReferencesSearchHelper { public boolean process(PsiClass inheritor) { final PsiElement navigationElement = inheritor.getNavigationElement(); if (navigationElement instanceof PsiClass) { - return processSuperOrThis((PsiClass)navigationElement, constructor, constructorCanBeCalledImplicitly[0], searchScope, + return processSuperOrThis((PsiClass)navigationElement, constructor, constructorCanBeCalledImplicitly[0], searchScope, project, isStrictSignatureSearch, PsiKeyword.SUPER, processor); } return true; @@ -125,8 +134,9 @@ public class ConstructorReferencesSearchHelper { private static boolean processEnumReferences(@NotNull final Processor processor, @NotNull final PsiMethod constructor, + @NotNull final Project project, @NotNull final PsiClass aClass) { - return DumbService.getInstance(constructor.getProject()).runReadActionInSmartMode(new Computable() { + return DumbService.getInstance(project).runReadActionInSmartMode(new Computable() { @Override public Boolean compute() { for (PsiField field : aClass.getFields()) { @@ -146,13 +156,14 @@ public class ConstructorReferencesSearchHelper { private static boolean process18MethodPointers(@NotNull final Processor processor, @NotNull final PsiMethod constructor, + @NotNull final Project project, @NotNull PsiClass aClass, SearchScope searchScope) { return ReferencesSearch.search(aClass, searchScope).forEach(new Processor() { @Override public boolean process(PsiReference reference) { final PsiElement element = reference.getElement(); if (element != null) { - return DumbService.getInstance(element.getProject()).runReadActionInSmartMode(new Computable() { + return DumbService.getInstance(project).runReadActionInSmartMode(new Computable() { @Override public Boolean compute() { final PsiElement parent = element.getParent(); @@ -175,12 +186,13 @@ public class ConstructorReferencesSearchHelper { @NotNull PsiMethod constructor, final boolean constructorCanBeCalledImplicitly, @NotNull SearchScope searchScope, + @NotNull Project project, final boolean isStrictSignatureSearch, @NotNull String superOrThisKeyword, @NotNull Processor processor) { PsiMethod[] constructors = inheritor.getConstructors(); if (constructors.length == 0 && constructorCanBeCalledImplicitly) { - if (!processImplicitConstructorCall(inheritor, processor, constructor, inheritor)) return false; + if (!processImplicitConstructorCall(inheritor, processor, constructor, project, inheritor)) return false; } for (PsiMethod method : constructors) { PsiCodeBlock body = method.getBody(); @@ -212,7 +224,7 @@ public class ConstructorReferencesSearchHelper { } } if (constructorCanBeCalledImplicitly) { - if (!processImplicitConstructorCall(method, processor, constructor, inheritor)) return false; + if (!processImplicitConstructorCall(method, processor, constructor, project, inheritor)) return false; } } @@ -222,9 +234,10 @@ public class ConstructorReferencesSearchHelper { private boolean processImplicitConstructorCall(@NotNull final PsiMember usage, @NotNull final Processor processor, @NotNull final PsiMethod constructor, + @NotNull final Project project, @NotNull final PsiClass containingClass) { if (containingClass instanceof PsiAnonymousClass) return true; - boolean same = DumbService.getInstance(constructor.getProject()).runReadActionInSmartMode(new Computable() { + boolean same = DumbService.getInstance(project).runReadActionInSmartMode(new Computable() { @Override public Boolean compute() { return myManager.areElementsEquivalent(constructor.getContainingClass(), containingClass.getSuperClass()); diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/ConstructorReferencesSearcher.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/ConstructorReferencesSearcher.java index 1c48c5c5c367..1293937540b2 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/ConstructorReferencesSearcher.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/ConstructorReferencesSearcher.java @@ -39,6 +39,6 @@ public class ConstructorReferencesSearcher extends QueryExecutorBase() { + final PsiClass aClass = DumbService.getInstance(p.getProject()).runReadActionInSmartMode(new Computable() { public PsiClass compute() { PsiClass aClass = method.getContainingClass(); if (aClass == null) return null; @@ -65,7 +65,7 @@ public class MethodUsagesSearcher extends QueryExecutorBase() { + final SearchScope searchScope = DumbService.getInstance(p.getProject()).runReadActionInSmartMode(new Computable() { @Override public SearchScope compute() { return p.getEffectiveSearchScope(); @@ -74,7 +74,7 @@ public class MethodUsagesSearcher extends QueryExecutorBase