anchor.diff:    }
   
     @override
  +  Expression buildAssignment(Expression value, {bool voidContext: false}) {
  +    return _makeInvalidWrite(value);
  +  }
  +
  +  @override
     Expression doInvocation(int offset, Arguments arguments) {
       if (_forest.argumentsPositional(arguments).length > 0 ||
           _forest.argumentsNamed(arguments).length > 0) {
  
positive.code:   ///
    /// The read of this subexpression does _not_ need to support a simultaneous
    /// write of the same subexpression.
    Expression buildSimpleRead() {
      return _finish(_makeSimpleRead(), null);
    }
  
    /// Internal implementation for [buildSimpleRead].
    ///
    /// The read of the this subexpression does _not_ need to support a
    /// simultaneous write of the same subexpression.
    ///
    /// This is in contrast to [_makeRead] which is used for instance in compound
    /// assignments like `a.b += c` where both a read and a write of the
    /// subexpression `a.b` occurs.
    ///
    /// Subclasses that can benefit from this distinction should override this
    /// method.
    Expression _makeSimpleRead() => _makeRead(null);
  
    /// Builds a [Expression] representing an assignment with the generator on
    /// the LHS and [value] on the RHS.
    ///
    /// The returned expression evaluates to the assigned value, unless
    /// [voidContext] is true, in which case it may evaluate to anything.
    Expression buildAssignment(Expression value, {bool voidContext: false}) {
      ComplexAssignmentJudgment complexAssignment = startComplexAssignment(value);
      return _finish(_makeSimpleWrite(value, voidContext, complexAssignment),
          complexAssignment);
    }
  
    /// Internal implementation for [buildAssignment].
    Expression _makeSimpleWrite(Expression value, bool voidContext,
        ComplexAssignmentJudgment complexAssignment) {
      return _makeWrite(value, voidContext, complexAssignment);
    }
  
    /// Returns a [Expression] representing a null-aware assignment (`??=`) with
    /// the generator on the LHS and [value] on the RHS.
  
negative.code:   }
  
    @override
    Expression buildSimpleRead() {
      return _makeRead(null);
    }
  
    @override
    Expression _makeRead(ComplexAssignmentJudgment complexAssignment) {
      Expression read;
      if (readTarget == null) {
  