private @Nullable DfaVariableValue getTargetVariable(PsiExpression expression) {
    PsiElement parent = PsiUtil.skipParenthesizedExprUp(expression.getParent());
    if (expression instanceof PsiArrayInitializerExpression && parent instanceof PsiNewExpression) {
      parent = PsiUtil.skipParenthesizedExprUp(parent.getParent());
    }
    if (parent instanceof PsiVariable var) {
      // initialization
      return PlainDescriptor.createVariableValue(getFactory(), var);
    }
    if (parent instanceof PsiAssignmentExpression assignmentExpression &&
        assignmentExpression.getOperationTokenType().equals(JavaTokenType.EQ) &&
        PsiTreeUtil.isAncestor(assignmentExpression.getRExpression(), expression, false) &&
        JavaDfaValueFactory.getExpressionDfaValue(getFactory(), assignmentExpression.getLExpression()) instanceof DfaVariableValue var) {
      return var;
    }
    return null;
  }
private @Nullable DfaVariableValue getTargetVariable(PsiExpression expression)