anchor.diff:  Iterable<VariableMirror> publicFields(ClassMirror mirror) {
     var mine = mirror.variables.values.where(
         (x) => !(x.isPrivate || x.isStatic));
  -  var mySuperclass = mirror.superclass;
  -  if (mySuperclass != mirror) {
  -    return append(publicFields(mirror.superclass), mine);
  +  var mySuperclass = _getSuperclass(mirror);
  +  if (mySuperclass != null) {
  +    return append(publicFields(mySuperclass), mine);
     } else {
       return mine;
     }
  
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:   if (name == null) return false;
    var getter = mirror.getters[name];
    if (getter != null && !getter.isStatic) return true;
    var superclass = _getSuperclass(mirror);
    if (superclass == null) return false;
    return hasField(name, superclass);
  }
  
  