anchor.diff:    /// Lazy initialized by ClassHierarchyCache.hasNonTrivialNoSuchMethod().
     bool? hasNonTrivialNoSuchMethod;
   
  -  _TFClassImpl(int id, Class classNode, this.supertypes)
  +  _TFClassImpl(int id, Class classNode, this.superclass, this.supertypes)
         : super(id, classNode) {
       supertypes.add(this);
     }
  
positive.code:       TypeFlowAnalysis typeFlowAnalysis) {
      final TFClass cls = receiver.cls;
  
      Member? target =
          (cls as _TFClassImpl).getDispatchTarget(selector, typeFlowAnalysis);
  
      if (target != null) {
        if (kPrintTrace) {
  
negative.code:     _specializedConeType = null; // Reset cached specialization.
    }
  
    Map<Name, Member> _initDispatchTargets(bool setters) {
      Map<Name, Member> targets;
      final superclass = this.superclass;
      if (superclass != null) {
        targets = Map.from(setters
            ? superclass._dispatchTargetsSetters
            : superclass._dispatchTargetsNonSetters);
      } else {
        targets = {};
      }
      for (Field f in classNode.fields) {
        if (!f.isStatic && !f.isAbstract) {
          if (!setters || f.hasSetter) {
            targets[f.name] = f;
          }
        }
      }
      for (Procedure p in classNode.procedures) {
        if (!p.isStatic && !p.isAbstract) {
          if (p.isSetter == setters) {
            targets[p.name] = p;
          }
        }
      }
      return targets;
    }
  
    Member? getDispatchTarget(Selector selector) {
      return (selector.isSetter
          ? _dispatchTargetsSetters
          : _dispatchTargetsNonSetters)[selector.name];
    }
  
    String dump() => "$this {supers: $supertypes}";
  