public boolean isFinalVariableInitialization(PsiExpression expression) {
      final PsiElement parent =
        PsiTreeUtil.getParentOfType(expression, PsiVariable.class, PsiAssignmentExpression.class);
      final PsiVariable variable;
      if (!(parent instanceof PsiVariable)) {
        if (!(parent instanceof PsiAssignmentExpression assignmentExpression)) {
          return false;
        }
        final PsiExpression lhs = assignmentExpression.getLExpression();
        if (!(lhs instanceof PsiReferenceExpression referenceExpression)) {
          return false;
        }
        final PsiElement target = referenceExpression.resolve();
        if (!(target instanceof PsiVariable)) {
          return false;
        }
        variable = (PsiVariable)target;
      }
      else {
        variable = (PsiVariable)parent;
      }
      return variable.hasModifierProperty(PsiModifier.FINAL);
    }
public boolean isFinalVariableInitialization(PsiExpression expression)