anchor.diff:    final int _id;
     final Class class_;
     final Set<_ClassData> supertypes; // List of super-types including this.
  -  final Set<_ClassData> allocatedSubtypes = new Set<_ClassData>();
  +  final Set<_ClassData> _allocatedSubtypes = new Set<_ClassData>();
   
     /// Flag indicating if this class has a noSuchMethod() method not inherited
     /// from Object.
  
positive.code: 
      _ClassData classData = getClassData(baseClass);
  
      final allocatedSubtypes = classData.allocatedSubtypes;
      if (!_sealed) {
        classData.addDependentInvocation(_typeFlowAnalysis.currentInvocation);
      }
  
      final int numSubTypes = allocatedSubtypes.length;
  
      if (numSubTypes == 0) {
        return new Type.empty();
      } else if (numSubTypes == 1) {
        return allocatedSubtypes.single.concreteType;
      } else {
        List<ConcreteType> types = new List<ConcreteType>();
        for (var sub in allocatedSubtypes) {
          types.add(sub.concreteType);
        }
        // TODO(alexmarkov): cache result of specialization or keep allocatedSubtypes sorted
        types.sort();
        return new SetType(types);
      }
    }
  
    bool hasNonTrivialNoSuchMethod(Class c) {
  
negative.code:     final _ClassData classData = getClassData(cl);
  
      if (allocatedClasses.add(cl)) {
        classData.addAllocatedSubtype(classData);
        classData.invalidateDependentInvocations(_typeFlowAnalysis.workList);
  
        for (var supertype in classData.supertypes) {
          supertype.addAllocatedSubtype(classData);
          supertype.invalidateDependentInvocations(_typeFlowAnalysis.workList);
        }
  
  