IDEA-242390 - handled the simple normal constants in enums

GitOrigin-RevId: 9ca524c24c94a3386d69131a4bab2c1038e4e70d
This commit is contained in:
Ilyas Selimov
2020-07-08 20:31:44 +07:00
committed by intellij-monorepo-bot
parent a7de5f6797
commit 4d1bd03325
2 changed files with 6 additions and 1 deletions

View File

@@ -2260,7 +2260,8 @@ public final class HighlightUtil {
TextRange fieldRange = referencedField.getTextRange();
if (fieldRange == null || expression.getTextRange().getStartOffset() >= fieldRange.getEndOffset()) return null;
// only simple reference can be illegal
if (!acceptQualified && !containingClass.isEnum() && expression.getQualifierExpression() != null) return null;
if (!acceptQualified && PsiTreeUtil.getParentOfType(expression, PsiEnumConstant.class) == null &&
expression.getQualifierExpression() != null) return null;
PsiField initField = findEnclosingFieldInitializer(expression);
PsiClassInitializer classInitializer = findParentClassInitializer(expression);
if (initField == null && classInitializer == null) return null;

View File

@@ -2,6 +2,10 @@ enum Enum242390 {
TYPE1(<error descr="Illegal forward reference">Enum242390.TYPE2</error>),
TYPE2(TYPE1);
static final String C1 = Enum242390.D;
static final String C2 = <error descr="Illegal forward reference">D</error>;
static final String D = "";
private final Enum242390 next;
Enum242390(Enum242390 next) {
this.next = next;