code: @Override
    public boolean visit(Assignment node) {
      Expression lhs = node.getLeftHandSide();
      TypeMirror lhsType = lhs.getTypeMirror();
      if (lhs instanceof ArrayAccess && !lhsType.getKind().isPrimitive()) {
        FunctionInvocation newAssignment = newArrayAssignment(node, (ArrayAccess) lhs, lhsType);
        node.replaceWith(newAssignment);
        newAssignment.accept(this);
        return false;
      }
      return true;
    }
docs: rhs is an array creation, we can optimize with "SetAndConsume".