PsiField (PsiExpression expression) { expression = PsiUtil.deparenthesizeExpression(expression); if (expression == null) { return null; } if (!(expression instanceof PsiReferenceExpression reference)) { return null; } final PsiExpression qualifierExpression = reference.getQualifierExpression(); if (qualifierExpression != null) { return null; } final PsiElement referent = reference.resolve(); if (!(referent instanceof PsiField field)) { return null; } if (field.hasModifierProperty(PsiModifier.VOLATILE) && !PsiUtil.isLanguageLevel9OrHigher(field)) { return null; } else { return field; } }