anchor.diff:                : getNonSimplicityIssuesForDeclaration(declaration,
                     performErrorRecovery: true);
             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(
  -              declaration.typeVariables, !legacyMode && issues.length == 0);
  +              declaration.typeVariables, legacyMode || issues.isNotEmpty);
           }
           declaration.forEach((String name, Declaration member) {
             if (member is KernelProcedureBuilder) {
  
positive.code:         }
        }
  
        if (!strongMode || haveErroneousBounds) {
          // In Dart 1, put `dynamic` everywhere.
          for (int i = 0; i < variables.length; ++i) {
            variables[i].defaultType = dynamicType;
  
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>[];
  