From 0f9bd48e4ac85b4e71bfb735fef0b304c3ec884b Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Thu, 18 Oct 2007 16:53:39 +0400 Subject: [PATCH] enum constants visibility (IDEADEV-22700) --- .../codeInspection/visibility/VisibilityInspection.java | 2 ++ .../intellij/codeInspection/VisibilityInspectionTest.java | 7 +++++++ .../visibility/enumConstantsVisibility/expected.xml | 4 ++++ .../visibility/enumConstantsVisibility/src/Foo.java | 7 +++++++ 4 files changed, 20 insertions(+) create mode 100644 testData/inspection/visibility/enumConstantsVisibility/expected.xml create mode 100644 testData/inspection/visibility/enumConstantsVisibility/src/Foo.java diff --git a/inspections/impl/com/intellij/codeInspection/visibility/VisibilityInspection.java b/inspections/impl/com/intellij/codeInspection/visibility/VisibilityInspection.java index f1e3dd803fb7..31d4b785b34e 100644 --- a/inspections/impl/com/intellij/codeInspection/visibility/VisibilityInspection.java +++ b/inspections/impl/com/intellij/codeInspection/visibility/VisibilityInspection.java @@ -132,6 +132,8 @@ public class VisibilityInspection extends GlobalInspectionTool { //ignore implicit constructors. User should not be able to see them. if (refElement instanceof RefImplicitConstructor) return null; + if (refElement instanceof RefField && ((RefField)refElement).getElement() instanceof PsiEnumConstant) return null; + //ignore library override methods. if (refElement instanceof RefMethod) { RefMethod refMethod = (RefMethod) refElement; diff --git a/inspections/tests/com/intellij/codeInspection/VisibilityInspectionTest.java b/inspections/tests/com/intellij/codeInspection/VisibilityInspectionTest.java index 039bc0bedaf6..16b0b0e5fc1d 100644 --- a/inspections/tests/com/intellij/codeInspection/VisibilityInspectionTest.java +++ b/inspections/tests/com/intellij/codeInspection/VisibilityInspectionTest.java @@ -74,4 +74,11 @@ public class VisibilityInspectionTest extends InspectionTestCase { myTool.SUGGEST_PRIVATE_FOR_INNERS = false; doTest("visibility/implicitConstructor", myTool, false, true); } + + public void testEnumConstants() throws Exception { + myTool.SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS = true; + myTool.SUGGEST_PACKAGE_LOCAL_FOR_TOP_CLASSES = true; + myTool.SUGGEST_PRIVATE_FOR_INNERS = false; + doTest("visibility/enumConstantsVisibility", myTool, false, true); + } } diff --git a/testData/inspection/visibility/enumConstantsVisibility/expected.xml b/testData/inspection/visibility/enumConstantsVisibility/expected.xml new file mode 100644 index 000000000000..79e1a0fd0a57 --- /dev/null +++ b/testData/inspection/visibility/enumConstantsVisibility/expected.xml @@ -0,0 +1,4 @@ + + + + diff --git a/testData/inspection/visibility/enumConstantsVisibility/src/Foo.java b/testData/inspection/visibility/enumConstantsVisibility/src/Foo.java new file mode 100644 index 000000000000..6403da476f57 --- /dev/null +++ b/testData/inspection/visibility/enumConstantsVisibility/src/Foo.java @@ -0,0 +1,7 @@ +public enum Foo { + BAR, UNUSED; + + public static void main(String[] args){ + System.out.println(BAR); + } +} \ No newline at end of file