boolean (PsiReferenceExpression reference) { while (true) { PsiElement element = reference.resolve(); if (!(element instanceof PsiField)) return true; if (!((PsiField)element).hasModifierProperty(PsiModifier.FINAL)) return false; PsiExpression qualifier = PsiUtil.skipParenthesizedExprDown(reference.getQualifierExpression()); if (qualifier == null || qualifier instanceof PsiThisExpression) return true; if (!(qualifier instanceof PsiReferenceExpression)) return false; reference = (PsiReferenceExpression)qualifier; } }