From 76d9195dc8900389da3d696085460fd7bec72ccd Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 17 Oct 2019 14:37:51 +0200 Subject: [PATCH] ComparableImplementedButEqualsNotOverriddenInspection: don't add javadoc to anonymous classes, there's no place for it GitOrigin-RevId: 30c105c2be29efc6f882c7074dcfac170a6b21cb --- .../intellij.java.analysis.impl.iml | 1 + ...ImplementedButEqualsNotOverriddenInspection.java | 13 +++++++++++-- .../NoFixForAnonymousClass.java | 9 +++++++++ ...ementedButEqualsNotOverriddenInspectionTest.java | 6 ++++++ 4 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/comparable_implemented_but_equals_not_overridden/NoFixForAnonymousClass.java diff --git a/java/java-analysis-impl/intellij.java.analysis.impl.iml b/java/java-analysis-impl/intellij.java.analysis.impl.iml index f60a50d6fb49..68743eecf9f3 100644 --- a/java/java-analysis-impl/intellij.java.analysis.impl.iml +++ b/java/java-analysis-impl/intellij.java.analysis.impl.iml @@ -24,5 +24,6 @@ + \ No newline at end of file diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspection.java index c39fed612adb..a67d13a8c150 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspection.java @@ -15,6 +15,7 @@ */ package com.siyeh.ig.bugs; +import com.google.common.annotations.VisibleForTesting; import com.intellij.codeInspection.ProblemDescriptor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; @@ -39,6 +40,10 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; public class ComparableImplementedButEqualsNotOverriddenInspection extends BaseInspection { + @VisibleForTesting + static final String ADD_NOTE_FIX_NAME = "Add 'ordering inconsistent with equals' JavaDoc note"; + @VisibleForTesting + static final String GENERATE_EQUALS_FIX_NAME = "Generate 'equals()' method"; @Override @NotNull @@ -55,6 +60,10 @@ public class ComparableImplementedButEqualsNotOverriddenInspection extends BaseI @NotNull @Override protected InspectionGadgetsFix[] buildFixes(Object... infos) { + if (infos[0] instanceof PsiAnonymousClass) { + return new InspectionGadgetsFix[] {new GenerateEqualsMethodFix()}; + } + return new InspectionGadgetsFix[] { new GenerateEqualsMethodFix(), new AddNoteFix() @@ -66,7 +75,7 @@ public class ComparableImplementedButEqualsNotOverriddenInspection extends BaseI @NotNull @Override public String getFamilyName() { - return "Generate 'equals()' method"; + return GENERATE_EQUALS_FIX_NAME; } @Override @@ -97,7 +106,7 @@ public class ComparableImplementedButEqualsNotOverriddenInspection extends BaseI @NotNull @Override public String getFamilyName() { - return "Add 'ordering inconsistent with equals' JavaDoc note"; + return ADD_NOTE_FIX_NAME; } @Override diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/comparable_implemented_but_equals_not_overridden/NoFixForAnonymousClass.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/comparable_implemented_but_equals_not_overridden/NoFixForAnonymousClass.java new file mode 100644 index 000000000000..33f095722998 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/comparable_implemented_but_equals_not_overridden/NoFixForAnonymousClass.java @@ -0,0 +1,9 @@ +abstract class A implements Comparable { + { + new A() { + public int compareTo(A a){ + return 0; + } + }; + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspectionTest.java index 9008c98e4d86..0dbd724bb10f 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/bugs/ComparableImplementedButEqualsNotOverriddenInspectionTest.java @@ -31,6 +31,12 @@ public class ComparableImplementedButEqualsNotOverriddenInspectionTest extends L public void testAbstractClass3() { doTest(); } public void testNote() { doTest(); } + public void testNoFixForAnonymousClass() { + doTest(); + assertNotNull(myFixture.findSingleIntention(ComparableImplementedButEqualsNotOverriddenInspection.GENERATE_EQUALS_FIX_NAME)); + assertEmpty(myFixture.filterAvailableIntentions(ComparableImplementedButEqualsNotOverriddenInspection.ADD_NOTE_FIX_NAME)); + } + @Nullable @Override protected InspectionProfileEntry getInspection() {