anchor.diff:                  ? const <Object>[]
                   : getNonSimplicityIssuesForTypeVariables(member.typeVariables);
               reportIssues(issues);
  -            // In case of issues, use non-strong mode for error recovery.
  +            // In case of issues, use legacy mode for error recovery.
               count += computeDefaultTypesForVariables(
  -                member.typeVariables, !legacyMode && issues.length == 0);
  +                member.typeVariables, legacyMode || issues.isNotEmpty);
             }
           });
         } else if (declaration is KernelFunctionTypeAliasBuilder) {
  
positive.code:             : getNonSimplicityIssuesForDeclaration(declaration,
                  performErrorRecovery: true);
          reportIssues(issues);
          // In case of issues, use non-strong mode for error recovery.
          count += computeDefaultTypesForVariables(
              declaration.typeVariables, !legacyMode && issues.length == 0);
        } else if (declaration is KernelFunctionBuilder) {
          List<Object> issues = legacyMode
              ? const <Object>[]
              : getNonSimplicityIssuesForTypeVariables(declaration.typeVariables);
          reportIssues(issues);
          // In case of issues, use non-strong mode for error recovery.
          count += computeDefaultTypesForVariables(
              declaration.typeVariables, !legacyMode && issues.length == 0);
        }
      }
  
  
negative.code: 
      int computeDefaultTypesForVariables(
          List<TypeVariableBuilder<TypeBuilder, Object>> variables,
          bool legacyMode) {
        if (variables == null) return 0;
  
        bool haveErroneousBounds = false;
        if (!legacyMode) {
          for (int i = 0; i < variables.length; ++i) {
            TypeVariableBuilder<TypeBuilder, Object> variable = variables[i];
            List<TypeBuilder> genericFunctionTypes = <TypeBuilder>[];
  