@Override
  public void visitAssignmentExpression(
    @NotNull PsiAssignmentExpression assignment) {
    if (appendedTo) {
      return;
    }
    super.visitAssignmentExpression(assignment);
    final PsiExpression lhs = assignment.getLExpression();
    final PsiExpression rhs = assignment.getRExpression();
    if (rhs == null) {
      return;
    }
    if (!(lhs instanceof PsiReferenceExpression reference)) {
      return;
    }
    final PsiExpression qualifier = reference.getQualifierExpression();
    if (qualifier != null) {
      return;
    }
    final PsiElement referent = reference.resolve();
    if (!variable.equals(referent)) {
      return;
    }
    final IElementType tokenType = assignment.getOperationTokenType();
    if (tokenType.equals(JavaTokenType.PLUSEQ)) {
      if (onlyWarnOnLoop && !ControlFlowUtils.isInLoop(assignment)) {
        return;
      }
      appendedTo = true;
    }
    else if (isConcatenation(rhs)) {
      if (onlyWarnOnLoop && !ControlFlowUtils.isInLoop(assignment)) {
        return;
      }
      appendedTo = true;
    }
  }
@Override
  public void visitAssignmentExpression(
    @NotNull PsiAssignmentExpression assignment)