anchor.diff:          if (inheritedType == null) {
             debug
                 ?.log("Giving up (inheritedType == null)\n${StackTrace.current}");
  -          continue;
  +          return;
           }
           Substitution bSubstitution;
           if (classBuilder.cls != bTarget.enclosingClass) {
  
positive.code:           debug?.log("${classBuilder.fullNameForErrors} -> "
                "${bTarget.enclosingClass.name} $bSubstitution");
          }
          if (inheritedType is! ImplicitFieldType) {
            if (bSubstitution != null) {
              inheritedType = bSubstitution.substituteType(inheritedType);
            }
            if (!classBuilder.library.isNonNullableByDefault) {
              inheritedType = legacyErasure(hierarchy.coreTypes, inheritedType);
            }
          }
  
          DartType declaredType = fieldBuilder.fieldType;
          if (declaredType == inheritedType) {
            continue;
          }
  
          if (declaredType is ImplicitFieldType) {
            if (inheritedType is ImplicitFieldType) {
              declaredType.addOverride(inheritedType);
            } else {
              // The concrete type has already been inferred.
              fieldBuilder.hadTypesInferred = true;
              fieldBuilder.fieldType = inheritedType;
            }
          } else if (fieldBuilder.hadTypesInferred) {
            if (inheritedType is! ImplicitFieldType) {
              // A different type has already been inferred.
              reportCantInferFieldType(classBuilder, fieldBuilder);
              fieldBuilder.fieldType = const InvalidType();
            }
          } else {
            fieldBuilder.hadTypesInferred = true;
            fieldBuilder.fieldType = inheritedType;
          }
        }
      }
    }
  
  
negative.code:       Iterable<ClassMember> overriddenMembers) {
      if (fieldBuilder.classBuilder == classBuilder &&
          fieldBuilder.type == null) {
        DartType inferredType;
  
        void inferFrom(ClassMember overriddenMember) {
          if (inferredType is InvalidType) return;
  
          assert(useConsolidated || !overriddenMember.hasDeclarations);
          Member bTarget = overriddenMember.getMember(hierarchy);
          DartType inheritedType;
  