From 89e007df91424ebc0db3365d67eff7163624e63e Mon Sep 17 00:00:00 2001 From: Yaroslav Pankratyev Date: Wed, 7 Nov 2018 19:03:31 +0700 Subject: [PATCH] IDEA-201258 Highlight usages of @ScheduledForRemoval elements only if they reside in libraries --- .../AnnotatedElementInspectionBase.java | 14 +++++++++++++- .../ScheduledForRemovalInspection.java | 1 - .../UnstableApiUsageInspection.java | 19 ------------------- 3 files changed, 13 insertions(+), 21 deletions(-) diff --git a/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/AnnotatedElementInspectionBase.java b/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/AnnotatedElementInspectionBase.java index 531ec80ea810..dd61047f14cc 100644 --- a/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/AnnotatedElementInspectionBase.java +++ b/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/AnnotatedElementInspectionBase.java @@ -3,11 +3,15 @@ package com.intellij.codeInspection; import com.intellij.analysis.JvmAnalysisBundle; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ProjectFileIndex; import com.intellij.openapi.util.text.StringUtil; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.*; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.psi.util.PsiUtilCore; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.uast.UImportStatement; @@ -31,7 +35,7 @@ public abstract class AnnotatedElementInspectionBase extends LocalInspectionTool protected abstract void createProblem(@NotNull PsiReference reference, @NotNull ProblemsHolder holder); protected boolean shouldProcessElement(@NotNull PsiModifierListOwner element) { - return true; + return isLibraryElement(element); } @@ -133,4 +137,12 @@ public abstract class AnnotatedElementInspectionBase extends LocalInspectionTool // references are not PsiQualifiedReference for annotation attributes return StringUtil.getShortName(reference.getCanonicalText()); } + + private static boolean isLibraryElement(@NotNull PsiElement element) { + if (ApplicationManager.getApplication().isUnitTestMode()) { + return true; + } + VirtualFile containingVirtualFile = PsiUtilCore.getVirtualFile(element); + return containingVirtualFile != null && ProjectFileIndex.getInstance(element.getProject()).isInLibraryClasses(containingVirtualFile); + } } \ No newline at end of file diff --git a/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/ScheduledForRemovalInspection.java b/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/ScheduledForRemovalInspection.java index 2011e2d2ad14..b1fb318c4b4f 100644 --- a/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/ScheduledForRemovalInspection.java +++ b/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/ScheduledForRemovalInspection.java @@ -2,7 +2,6 @@ package com.intellij.codeInspection; import com.intellij.analysis.JvmAnalysisBundle; -import com.intellij.psi.PsiModifierListOwner; import com.intellij.psi.PsiReference; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.NotNull; diff --git a/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/UnstableApiUsageInspection.java b/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/UnstableApiUsageInspection.java index f2f976334441..9e5c859d44d7 100644 --- a/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/UnstableApiUsageInspection.java +++ b/jvm/jvm-analysis-impl/src/com/intellij/codeInspection/UnstableApiUsageInspection.java @@ -3,13 +3,7 @@ package com.intellij.codeInspection; import com.intellij.analysis.JvmAnalysisBundle; import com.intellij.codeInspection.util.SpecialAnnotationsUtil; -import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.roots.ProjectFileIndex; -import com.intellij.openapi.vfs.VirtualFile; -import com.intellij.psi.PsiElement; -import com.intellij.psi.PsiModifierListOwner; import com.intellij.psi.PsiReference; -import com.intellij.psi.util.PsiUtilCore; import com.siyeh.ig.ui.ExternalizableStringSet; import org.jetbrains.annotations.NotNull; @@ -41,11 +35,6 @@ public class UnstableApiUsageInspection extends AnnotatedElementInspectionBase { holder.registerProblem(reference, message, ProblemHighlightType.GENERIC_ERROR_OR_WARNING); } - @Override - protected boolean shouldProcessElement(@NotNull PsiModifierListOwner element) { - return isLibraryElement(element); - } - @NotNull @Override public JPanel createOptionsPanel() { @@ -60,12 +49,4 @@ public class UnstableApiUsageInspection extends AnnotatedElementInspectionBase { panel.add(annotationsListControl, BorderLayout.CENTER); return panel; } - - private static boolean isLibraryElement(@NotNull PsiElement element) { - if (ApplicationManager.getApplication().isUnitTestMode()) { - return true; - } - VirtualFile containingVirtualFile = PsiUtilCore.getVirtualFile(element); - return containingVirtualFile != null && ProjectFileIndex.getInstance(element.getProject()).isInLibraryClasses(containingVirtualFile); - } }