From 1395914f9d18a47ec75692f8b3ffb6e6e6802c92 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 2 Oct 2014 16:59:24 +0400 Subject: [PATCH] enable more thorough unused members analysis if RefResolveService has up to date information --- .../daemon/impl/PostHighlightingPass.java | 22 ++++--------------- 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java index 31ec92b03731..7bbeb1e68a95 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/PostHighlightingPass.java @@ -57,7 +57,6 @@ import com.intellij.psi.codeStyle.JavaCodeStyleManager; import com.intellij.psi.impl.PsiClassImplUtil; import com.intellij.psi.impl.source.PsiClassImpl; import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.psi.search.PsiNonJavaFileReferenceProcessor; import com.intellij.psi.search.PsiSearchHelper; import com.intellij.psi.search.SearchScope; import com.intellij.psi.search.searches.OverridingMethodsSearch; @@ -617,7 +616,9 @@ public class PostHighlightingPass extends ProgressableTextEditorHighlightingPass useScope = GlobalSearchScope.projectScope(project).uniteWith((GlobalSearchScope)useScope); } - PsiSearchHelper.SearchCostResult cheapEnough = searchHelper.isCheapEnoughToSearch(name, (GlobalSearchScope)useScope, ignoreFile, progress); + // if we've resolved all references, find usages will be fast + PsiSearchHelper.SearchCostResult cheapEnough = RefResolveService.ENABLED && RefResolveService.getInstance(project).isUpToDate() ? PsiSearchHelper.SearchCostResult.FEW_OCCURRENCES : + searchHelper.isCheapEnoughToSearch(name, (GlobalSearchScope)useScope, ignoreFile, progress); if (cheapEnough == PsiSearchHelper.SearchCostResult.TOO_MANY_OCCURRENCES) return false; //search usages if it cheap @@ -669,22 +670,7 @@ public class PostHighlightingPass extends ProgressableTextEditorHighlightingPass return element instanceof PsiComment; // ignore comments } }); - if (foundUsage) return false; - return true;//!(useScope instanceof GlobalSearchScope) || !foundUsageInText(member, (GlobalSearchScope)useScope, searchHelper, ignoreFile); - } - - private static boolean foundUsageInText(@NotNull PsiMember member, - @NotNull GlobalSearchScope scope, - @NotNull PsiSearchHelper searchHelper, - final PsiFile ignoreFile) { - return !searchHelper.processUsagesInNonJavaFiles(member, member.getName(), new PsiNonJavaFileReferenceProcessor() { - @Override - public boolean process(final PsiFile psiFile, final int startOffset, final int endOffset) { - if (psiFile == ignoreFile) return true; // ignore usages in containingFile because isLocallyUsed() method would have caught that - PsiElement element = psiFile.findElementAt(startOffset); - return element instanceof PsiComment; // ignore comments - } - }, scope); + return !foundUsage; } private static boolean isEnumValuesMethodUsed(@NotNull Project project,