From f0685f9eddae4b706ec1c972ff0bf80f2b546c7d Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Tue, 28 Nov 2017 14:48:59 +0100 Subject: [PATCH] IG: make "Empty class" inspection warn on empty enums also --- .../src/com/siyeh/InspectionGadgetsBundle.properties | 1 + .../siyeh/ig/classlayout/EmptyClassInspectionBase.java | 8 +++++--- .../siyeh/igtest/classlayout/empty_class/EmptyClass.java | 3 ++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties index d4365a2aadd1..84ec90c21706 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/InspectionGadgetsBundle.properties @@ -890,6 +890,7 @@ switch.statement.with.confusing.declaration.problem.descriptor=Local variable #ref #loc final.class.problem.descriptor=Class declared #ref #loc empty.class.problem.descriptor=Class #ref is empty #loc +empty.enum.problem.descriptor=Enum #ref is empty #loc empty.class.file.without.class.problem.descriptor=Java file does not declare any class #loc empty.anonymous.class.problem.descriptor=Anonymous class is empty #loc anonymous.inner.class.problem.descriptor=Anonymous inner class #ref #loc diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/EmptyClassInspectionBase.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/EmptyClassInspectionBase.java index b2a90a6c84c5..8a2c89e7fa49 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/EmptyClassInspectionBase.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/classlayout/EmptyClassInspectionBase.java @@ -47,7 +47,9 @@ public class EmptyClassInspectionBase extends BaseInspection { return InspectionGadgetsBundle.message("empty.anonymous.class.problem.descriptor"); } else if (element instanceof PsiClass) { - return InspectionGadgetsBundle.message("empty.class.problem.descriptor"); + return ((PsiClass)element).isEnum() ? + InspectionGadgetsBundle.message("empty.enum.problem.descriptor"): + InspectionGadgetsBundle.message("empty.class.problem.descriptor"); } else { return InspectionGadgetsBundle.message("empty.class.file.without.class.problem.descriptor"); @@ -94,10 +96,10 @@ public class EmptyClassInspectionBase extends BaseInspection { if (FileTypeUtils.isInServerPageFile(aClass.getContainingFile())) { return; } - if (aClass.isInterface() || aClass.isEnum() || aClass.isAnnotationType()) { + if (aClass.isInterface() || aClass.isAnnotationType()) { return; } - if (!aClass.hasModifierProperty(PsiModifier.ABSTRACT)) { + if (!aClass.hasModifierProperty(PsiModifier.ABSTRACT) && !aClass.isEnum()) { for (PsiClass superClass : aClass.getSupers()) { if (superClass.isInterface() || superClass.hasModifierProperty(PsiModifier.ABSTRACT)) { return; diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/empty_class/EmptyClass.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/empty_class/EmptyClass.java index 1fc52b7034c4..ed57a8716822 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/empty_class/EmptyClass.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/classlayout/empty_class/EmptyClass.java @@ -19,4 +19,5 @@ interface Interface { } } class EmptyClassTest implements Interface { -} \ No newline at end of file +} +enum EmptyEnum {} \ No newline at end of file