From 9b0fad8655fc98f726adca651d5ecb599f9bd577 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Tue, 2 Nov 2021 12:33:00 +0100 Subject: [PATCH] When instantiating GlobalInspectionToolWrapper from GlobalInspectionTool, try to find its EP to retrieve more information (shortName/displayName/etc) from there, just like LocalInspectionTool does and to fix EA-400450 - PE: PluginManagerCore.createPluginException GitOrigin-RevId: d4f756f59d32408e7a4fa07c1246ac13f2fd3667 --- .../fieldInAnonymousClass/expected.xml | 24 ++++++++++++++++++- .../suppressedParameter/expected.xml | 24 ++++++++++++++++++- .../unusedParameter/expected.xml | 21 +++++++++++++++- .../usedForReading/expected.xml | 17 ++++++++++++- .../RemoveRedundantSuppressionTest.java | 12 +--------- .../ex/GlobalInspectionToolWrapper.java | 6 ++--- 6 files changed, 86 insertions(+), 18 deletions(-) diff --git a/java/java-tests/testData/inspection/unusedMethodParameter/fieldInAnonymousClass/expected.xml b/java/java-tests/testData/inspection/unusedMethodParameter/fieldInAnonymousClass/expected.xml index e8aa67c8d014..98218d2bf77e 100644 --- a/java/java-tests/testData/inspection/unusedMethodParameter/fieldInAnonymousClass/expected.xml +++ b/java/java-tests/testData/inspection/unusedMethodParameter/fieldInAnonymousClass/expected.xml @@ -1,3 +1,25 @@ - + + + Test.java + 1 + + unused declaration + Class is not instantiated. + + + Test.java + 2 + + unused declaration + <ul><li>Method owner class is never instantiated OR</li><li>An instantiation is not reachable from entry points.</li></ul> + + + Test.java + 4 + + unused declaration + Field has no usages. + + diff --git a/java/java-tests/testData/inspection/unusedMethodParameter/suppressedParameter/expected.xml b/java/java-tests/testData/inspection/unusedMethodParameter/suppressedParameter/expected.xml index 4704d91e891d..2089c847a965 100644 --- a/java/java-tests/testData/inspection/unusedMethodParameter/suppressedParameter/expected.xml +++ b/java/java-tests/testData/inspection/unusedMethodParameter/suppressedParameter/expected.xml @@ -1,2 +1,24 @@ - \ No newline at end of file + + + Test.java + 1 + + unused declaration + Class is not instantiated. + + + Test.java + 2 + + unused declaration + <ul><li>Method owner class is never instantiated OR</li><li>An instantiation is not reachable from entry points.</li></ul> + + + Test.java + 6 + + unused declaration + <ul><li>Method owner class is never instantiated OR</li><li>An instantiation is not reachable from entry points.</li></ul> + + \ No newline at end of file diff --git a/java/java-tests/testData/inspection/unusedMethodParameter/unusedParameter/expected.xml b/java/java-tests/testData/inspection/unusedMethodParameter/unusedParameter/expected.xml index c996b17d19ca..2a0c6607e915 100644 --- a/java/java-tests/testData/inspection/unusedMethodParameter/unusedParameter/expected.xml +++ b/java/java-tests/testData/inspection/unusedMethodParameter/unusedParameter/expected.xml @@ -1,9 +1,28 @@ + + Test.java + 1 + + unused declaration + Class is not instantiated. + Test.java 2 - b + + unused declaration + <ul><li>Method owner class is never instantiated OR</li><li>An instantiation is not reachable from entry points.</li></ul> + + + Test.java + 2 + Unused declaration + Parameter <code>b</code> is not used in either this method or any of its derived methods + b + JAVA + 26 + 1 diff --git a/java/java-tests/testData/inspection/unusedMethodParameter/usedForReading/expected.xml b/java/java-tests/testData/inspection/unusedMethodParameter/usedForReading/expected.xml index e8aa67c8d014..fed504a13f22 100644 --- a/java/java-tests/testData/inspection/unusedMethodParameter/usedForReading/expected.xml +++ b/java/java-tests/testData/inspection/unusedMethodParameter/usedForReading/expected.xml @@ -1,3 +1,18 @@ - + + + Test.java + 1 + + unused declaration + Class is not instantiated. + + + Test.java + 2 + + unused declaration + <ul><li>Method owner class is never instantiated OR</li><li>An instantiation is not reachable from entry points.</li></ul> + + diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/RemoveRedundantSuppressionTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/RemoveRedundantSuppressionTest.java index 5053fda5e8ab..66c1b5bf4ace 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/RemoveRedundantSuppressionTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/daemon/quickFix/RemoveRedundantSuppressionTest.java @@ -2,7 +2,6 @@ package com.intellij.java.codeInsight.daemon.quickFix; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixParameterizedTestCase; -import com.intellij.codeInspection.InspectionsBundle; import com.intellij.codeInspection.PossibleHeapPollutionVarargsInspection; import com.intellij.codeInspection.RedundantLambdaCodeBlockInspection; import com.intellij.codeInspection.RedundantSuppressInspection; @@ -13,22 +12,13 @@ import com.intellij.psi.impl.source.tree.injected.MyTestInjector; import com.siyeh.ig.controlflow.FallthruInSwitchStatementInspection; import com.siyeh.ig.inheritance.RefusedBequestInspection; import com.siyeh.ig.jdk.AutoBoxingInspection; -import org.jetbrains.annotations.Nls; -import org.jetbrains.annotations.NotNull; public class RemoveRedundantSuppressionTest extends LightQuickFixParameterizedTestCase { @Override protected void setUp() throws Exception { super.setUp(); new MyTestInjector(getPsiManager()).injectAll(getTestRootDisposable()); - enableInspectionTools(new RedundantSuppressInspection() { - @Nls(capitalization = Nls.Capitalization.Sentence) - @NotNull - @Override - public String getDisplayName() { - return InspectionsBundle.message("inspection.redundant.suppression.name"); - } - }, + enableInspectionTools(new RedundantSuppressInspection(), new PossibleHeapPollutionVarargsInspection(), new UncheckedWarningLocalInspection(), new FallthruInSwitchStatementInspection(), diff --git a/platform/analysis-impl/src/com/intellij/codeInspection/ex/GlobalInspectionToolWrapper.java b/platform/analysis-impl/src/com/intellij/codeInspection/ex/GlobalInspectionToolWrapper.java index 03343c63dc52..cb7cb122cbf9 100644 --- a/platform/analysis-impl/src/com/intellij/codeInspection/ex/GlobalInspectionToolWrapper.java +++ b/platform/analysis-impl/src/com/intellij/codeInspection/ex/GlobalInspectionToolWrapper.java @@ -13,8 +13,8 @@ import org.jetbrains.annotations.Nullable; public class GlobalInspectionToolWrapper extends InspectionToolWrapper { private static final Logger LOG = Logger.getInstance(GlobalInspectionToolWrapper.class); - public GlobalInspectionToolWrapper(@NotNull GlobalInspectionTool globalInspectionTool) { - super(globalInspectionTool, null); + public GlobalInspectionToolWrapper(@NotNull GlobalInspectionTool tool) { + super(tool, InspectionEP.GLOBAL_INSPECTION.getByKey(tool.getShortName(), GlobalInspectionToolWrapper.class, InspectionEP::getShortName)); } public GlobalInspectionToolWrapper(@NotNull GlobalInspectionTool tool, @NotNull InspectionEP ep) { @@ -22,7 +22,7 @@ public class GlobalInspectionToolWrapper extends InspectionToolWrapper