mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-30 10:20:15 +07:00
java: reject non-TypeName qualifiers before constant field refs (IDEA-262804)
GitOrigin-RevId: 1aa7a1dbc1c24ad5d4af5c271f454aaa92cefcde
This commit is contained in:
committed by
intellij-monorepo-bot
parent
ea9efe9b09
commit
7c9f254340
@@ -106,6 +106,11 @@ final class IsConstantExpressionVisitor extends JavaElementVisitor {
|
||||
|
||||
@Override
|
||||
public void visitReferenceExpression(PsiReferenceExpression expression) {
|
||||
PsiExpression qualifierExpression = expression.getQualifierExpression();
|
||||
if (qualifierExpression != null && !(qualifierExpression instanceof PsiReferenceExpression)) {
|
||||
myIsConstant = false;
|
||||
return;
|
||||
}
|
||||
PsiElement refElement = expression.resolve();
|
||||
if (!(refElement instanceof PsiVariable)) {
|
||||
myIsConstant = false;
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
|
||||
class D {
|
||||
int field;
|
||||
final int field1 = 1;
|
||||
@Ann(i=<error descr="Attribute value must be constant">field</error>) void foo () {}
|
||||
@Ann(i=<error descr="Attribute value must be constant">this.field1</error>) void foo1 () {}
|
||||
@Ann(i=field1, j = {}) void foo2 () {}
|
||||
|
||||
@Ann(j={<error descr="Attribute value must be constant">null</error>}) void bar() {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user