anchor.diff:        classBuilder.library.loader == hierarchy.loader;
   
     ClassMember checkInheritanceConflict(ClassMember a, ClassMember b) {
  +    hierarchy.inheritanceConflictCache[a] ??= new Map.identity();
  +    if (hierarchy.inheritanceConflictCache[a].containsKey(b)) {
  +      return hierarchy.inheritanceConflictCache[a][b];
  +    }
  +
       if (a.hasDeclarations) {
         ClassMember result;
         for (int i = 0; i < a.declarations.length; i++) {
           ClassMember d = checkInheritanceConflict(a.declarations[i], b);
           result ??= d;
         }
  +      hierarchy.inheritanceConflictCache[a][b] = result;
         return result;
       }
       if (b.hasDeclarations) {
  
positive.code: 
    Types types;
  
    ClassHierarchyBuilder(this.objectClassBuilder, this.loader, this.coreTypes)
        : objectClass = objectClassBuilder.cls,
          futureClass = coreTypes.futureClass,
  
negative.code:     substitutions.clear();
      _overrideChecks.clear();
      _delayedTypeComputations.clear();
      inheritanceConflictCache.clear();
    }
  
    void registerDelayedTypeComputation(DelayedTypeComputation computation) {
  