anchor.diff:            fileUri);
         actualCls.supertype = null;
       }
  +    if (actualCls.supertype == null && supertype is! KernelNamedTypeBuilder) {
  +      supertype = null;
  +    }
       mixedInType = checkSupertype(mixedInType);
       actualCls.mixedInType =
           mixedInType?.buildMixedInType(library, charOffset, fileUri);
  +    if (actualCls.mixedInType == null &&
  +        mixedInType is! KernelNamedTypeBuilder) {
  +      mixedInType = null;
  +    }
       actualCls.isMixinDeclaration = isMixinDeclaration;
       // TODO(ahe): If `cls.supertype` is null, and this isn't Object, report a
       // compile-time error.
  
positive.code:     final List<KernelTypeBuilder> interfaces = this.interfaces;
      if (interfaces != null) {
        for (int i = 0; i < interfaces.length; i++) {
          KernelNamedTypeBuilder interface = interfaces[i];
          result.add(interface.declaration);
        }
      }
      final KernelNamedTypeBuilder mixedInType = this.mixedInType;
      if (mixedInType != null) {
        result.add(mixedInType.declaration);
      }
  
negative.code: 
    List<Declaration> computeDirectSupertypes(ClassBuilder objectClass) {
      final List<Declaration> result = <Declaration>[];
      final KernelTypeBuilder supertype = this.supertype;
      if (supertype != null) {
        result.add(supertype.declaration);
      } else if (objectClass != this) {
  