anchor.diff:      } else {
         subclasses.add(subclass.qualifiedName);
       }
  +  }
  +  
  +  /**
  +   * Check if this [Class] is an error or exception.
  +   */
  +  bool isError() {
  +    if (qualifiedName == 'dart.core.Error' || 
  +        qualifiedName == 'dart.core.Exception')
  +      return true;
  +    for (var interface in interfaces) {
  +      if (interface.isError()) return true;
  +    }
  +    if (superclass == null) return false;
  +    return superclass.isError();
     }
   
     /**
  
positive.code:   Map<String, Generic> generics;
  
    Class superclass;
  
    /// List of the meta annotations on the class.
    List<String> annotations;
  
    Class(String name, this.superclass, String comment, this.interfaces,
        this.variables, this.methods, this.annotations, this.generics,
        String qualifiedName, bool isPrivate, String owner) : super(name, comment,
            qualifiedName, isPrivate, owner) {}
  
    /**
     * Returns a list of all the parent classes.
  
negative.code: 
    Typedef(String name, this.returnType, String comment, this.generics,
        this.parameters, this.annotations,
        String qualifiedName, bool isPrivate, String owner) 
          : super(name, comment, qualifiedName, isPrivate, owner);
  
    Map toMap() => {
      'name': name,
  