44import org .jetbrains .annotations .NotNull ;
55
66import com .intellij .psi .JavaResolveResult ;
7+ import com .intellij .psi .PsiCaseLabelElementList ;
78import com .intellij .psi .PsiClass ;
89import com .intellij .psi .PsiElement ;
910import com .intellij .psi .PsiEnumConstant ;
1516import com .intellij .psi .PsiMethodCallExpression ;
1617import com .intellij .psi .PsiModifier ;
1718import com .intellij .psi .PsiReferenceExpression ;
18- import com .intellij .psi .PsiSwitchLabelStatement ;
19+ import com .intellij .psi .PsiSwitchLabelStatementBase ;
1920import com .intellij .psi .util .PsiTreeUtil ;
2021import com .intellij .psi .util .PsiUtil ;
2122import com .siyeh .ig .BaseInspectionVisitor ;
@@ -113,7 +114,7 @@ private boolean isUnqualifiedStaticAccess(final PsiReferenceExpression expressio
113114 return false ;
114115 }
115116 final PsiMember member = (PsiMember )element ;
116- if (member instanceof PsiEnumConstant && expression . getParent () instanceof PsiSwitchLabelStatement )
117+ if (this . isEnumInSwitch ( member , expression ) )
117118 {
118119 return false ;
119120 }
@@ -125,5 +126,19 @@ private boolean isUnqualifiedStaticAccess(final PsiReferenceExpression expressio
125126 }
126127 return member .hasModifierProperty (PsiModifier .STATIC );
127128 }
129+
130+ private boolean isEnumInSwitch (final PsiMember member , final PsiReferenceExpression expression )
131+ {
132+ if (!(member instanceof PsiEnumConstant ))
133+ {
134+ return false ;
135+ }
136+
137+ final PsiElement parent = expression .getParent ();
138+ return parent instanceof PsiCaseLabelElementList
139+ || parent != null && parent .getParent () instanceof PsiSwitchLabelStatementBase
140+ // This was the original code and might be needed for older java versions
141+ || parent instanceof PsiSwitchLabelStatementBase ;
142+ }
128143 }
129144}
0 commit comments