anchor.diff:  export 'dart:mirrors';
   import 'serialization_helpers.dart';
   
  +// TODO(alanknight): Remove this method.  It is working around a bug
  +// in the Dart VM which incorrectly returns Object as the superclass
  +// of Object.
  +_getSuperclass(ClassMirror mirror) {
  +  var superclass = mirror.superclass;
  +  return (superclass == mirror) ? null : superclass;
  +}
  +
   /**
    * Return a list of all the public fields of a class, including inherited
    * fields.
  
positive.code:   if (name == null) return false;
    var field = mirror.variables[name];
    if (field != null && !field.isStatic) return true;
    var superclass = mirror.superclass;
    if (superclass == mirror) return false;
    return hasField(name, superclass);
  }
  
  
negative.code:  */
  Iterable<MethodMirror> publicGetters(ClassMirror mirror) {
    var mine = mirror.getters.values.where((x) => !(x.isPrivate || x.isStatic));
    var mySuperclass = _getSuperclass(mirror);
    if (mySuperclass != null) {
      return append(publicGetters(mySuperclass), mine);
    } else {
      return mine.toList();
    }
  