anchor.diff:    StaticAccessor(this.readTarget, this.writeTarget);
   
     _makeRead() =>
  -      readTarget == null ? new InvalidExpression() : new StaticGet(readTarget);
  +      readTarget == null ? makeInvalidRead() : new StaticGet(readTarget);
   
     _makeWrite(Expression value, bool voidContext) {
       return writeTarget == null
  -        ? wrapInvalid(value)
  +        ? makeInvalidWrite(value)
           : new StaticSet(writeTarget, value);
     }
   }
  
positive.code:   SuperPropertyAccessor(this.readTarget, this.writeTarget);
  
    _makeRead() => readTarget == null
        ? new InvalidExpression()
        : new SuperPropertyGet(readTarget);
  
    _makeWrite(Expression value, bool voidContext) {
      return writeTarget == null
          ? wrapInvalid(value)
          : new SuperPropertySet(writeTarget, value);
    }
  }
  
negative.code:   }
  
    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 {
  