diff --git a/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefField.java b/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefField.java index 4418b0feb8da..e16333e5313f 100644 --- a/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefField.java +++ b/java/java-analysis-api/src/com/intellij/codeInspection/reference/RefField.java @@ -15,6 +15,7 @@ */ package com.intellij.codeInspection.reference; +import com.intellij.openapi.util.Key; import com.intellij.psi.PsiField; /** @@ -24,6 +25,7 @@ import com.intellij.psi.PsiField; * @since 6.0 */ public interface RefField extends RefJavaElement { + Key ENUM_CONSTANT = Key.create("ENUM_CONSTANT"); /** * Checks if the field is used for reading. * diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java index 35262e3e725c..b7751409f6e4 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/reference/RefFieldImpl.java @@ -17,6 +17,7 @@ package com.intellij.codeInspection.reference; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.util.Computable; +import com.intellij.openapi.util.Key; import com.intellij.psi.*; import com.intellij.psi.util.ClassUtil; import com.intellij.psi.util.PsiFormatUtil; @@ -43,6 +44,9 @@ public class RefFieldImpl extends RefJavaElementImpl implements RefField { setIsStatic(true); setIsFinal(true); } + if (field instanceof PsiEnumConstant) { + putUserData(ENUM_CONSTANT, true); + } } @Override diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/VisibilityInspection.java b/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/VisibilityInspection.java index d6c99829999d..1424bce6ead8 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/VisibilityInspection.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/visibility/VisibilityInspection.java @@ -160,7 +160,10 @@ public class VisibilityInspection extends GlobalJavaBatchInspectionTool { //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; + if (refElement instanceof RefField) { + final Boolean isEnumConstant = refElement.getUserData(RefField.ENUM_CONSTANT); + if (isEnumConstant != null && isEnumConstant.booleanValue()) return null; + } //ignore library override methods. if (refElement instanceof RefMethod) {