anchor.diff:  
     void onRegisterInstantiatedClass(ClassElement cls) {
       task.measure(() {
  +      if (seenClasses.contains(cls)) return;
         // The class must be resolved to compute the set of all
         // supertypes.
         cls.ensureResolved(compiler);
  
positive.code:         if (isResolutionQueue) {
            compiler.resolver.checkClass(cls);
          }
        }
        processClass(cls);
        for (Link<DartType> supertypes = cls.allSupertypes;
  
negative.code:   void internalAddToWorkList(Element element);
  
    void registerInstantiatedType(InterfaceType type, TreeElements elements) {
      task.measure(() {
        ClassElement cls = type.element;
        elements.registerDependency(cls);
        cls.ensureResolved(compiler);
        universe.instantiatedTypes.add(type);
        if (!cls.isAbstract(compiler)) {
          universe.instantiatedClasses.add(cls);
        }
        onRegisterInstantiatedClass(cls);
      });
    }
  
    void registerInstantiatedClass(ClassElement cls, TreeElements elements) {
  