anchor.diff:        }
       }
   
  +    void processSourceProcedureBuilder(SourceProcedureBuilder member) {
  +      List<NonSimplicityIssue> issues =
  +          getNonSimplicityIssuesForTypeVariables(member.typeVariables);
  +      if (member.formals != null && member.formals!.isNotEmpty) {
  +        for (FormalParameterBuilder formal in member.formals!) {
  +          issues.addAll(getInboundReferenceIssuesInType(formal.type));
  +          _recursivelyReportGenericFunctionTypesAsBoundsForType(formal.type);
  +        }
  +      }
  +      if (member.returnType is! OmittedTypeBuilder) {
  +        issues.addAll(getInboundReferenceIssuesInType(member.returnType));
  +        _recursivelyReportGenericFunctionTypesAsBoundsForType(
  +            member.returnType);
  +      }
  +      reportIssues(issues);
  +      count += computeDefaultTypesForVariables(member.typeVariables,
  +          inErrorRecovery: issues.isNotEmpty);
  +    }
  +
       for (Builder declaration
           in _libraryTypeParameterScopeBuilder.members!.values) {
         if (declaration is ClassBuilder) {
  
positive.code:         }
          declaration.forEach((String name, Builder member) {
            if (member is SourceProcedureBuilder) {
              List<NonSimplicityIssue> issues =
                  getNonSimplicityIssuesForTypeVariables(member.typeVariables);
              if (member.formals != null && member.formals!.isNotEmpty) {
                for (FormalParameterBuilder formal in member.formals!) {
                  issues.addAll(getInboundReferenceIssuesInType(formal.type));
                  _recursivelyReportGenericFunctionTypesAsBoundsForType(
                      formal.type);
                }
              }
              if (member.returnType is! OmittedTypeBuilder) {
                issues.addAll(getInboundReferenceIssuesInType(member.returnType));
                _recursivelyReportGenericFunctionTypesAsBoundsForType(
                    member.returnType);
              }
              reportIssues(issues);
              count += computeDefaultTypesForVariables(member.typeVariables,
                  inErrorRecovery: issues.isNotEmpty);
            } else {
              assert(member is SourceFieldBuilder,
                  "Unexpected class member $member (${member.runtimeType}).");
  
negative.code:         }
          declaration.forEach((String name, Builder member) {
            if (member is SourceProcedureBuilder) {
              processSourceProcedureBuilder(member);
            } else if (member is SourceFieldBuilder) {
              if (member.type is! OmittedTypeBuilder) {
                _recursivelyReportGenericFunctionTypesAsBoundsForType(
  