anchor.diff:    }
   
     Expression _makeSimpleRead() => _makeRead();
  +
     Expression _makeSimpleWrite(Expression value, bool voidContext) {
       return _makeWrite(value, voidContext);
     }
   
     Expression _makeRead();
  +
     Expression _makeWrite(Expression value, bool voidContext);
   
     Expression _finish(Expression body) => body;
  +
  +  makeInvalidRead() => new InvalidExpression();
  +
  +  makeInvalidWrite(Expression value) => wrapInvalid(value);
   }
   
   class VariableAccessor extends Accessor {
  
positive.code:   StaticAccessor(this.readTarget, this.writeTarget);
  
    _makeRead() =>
        readTarget == null ? new InvalidExpression() : new StaticGet(readTarget);
  
    _makeWrite(Expression value, bool voidContext) {
      return writeTarget == null
          ? wrapInvalid(value)
          : new StaticSet(writeTarget, value);
    }
  }
  
negative.code: 
    _makeWrite(Expression value, bool voidContext) {
      return variable.isFinal || variable.isConst
          ? makeInvalidWrite(value)
          : new VariableSet(variable, value);
    }
  }
  