anchor.diff:  
     _RecipeGenerator(
         this._encoder, this._emitter, this._environment, this._recipe,
  -      {this.hackTypeVariablesToAny = false});
  +      {this.indexTypeVariablesOnDeclaringClass = false,
  +      this.hackTypeVariablesToAny = false});
   
     JClosedWorld get _closedWorld => _encoder._closedWorld;
     NativeBasicData get _nativeData => _encoder._nativeData;
  
positive.code:       ]);
  
    jsAst.Literal _encodeSupertypeArgument(
        InterfaceType targetType, DartType supertypeArgument) {
      TypeEnvironmentStructure environment =
          FullTypeEnvironmentStructure(classType: targetType);
      TypeRecipe recipe = TypeExpressionRecipe(supertypeArgument);
      return _recipeEncoder.encodeRecipe(_emitter, environment, recipe);
    }
  }
  
negative.code:   int /*?*/ _indexIntoClassTypeVariables(TypeVariableType variable) {
      TypeVariableEntity element = variable.element;
      ClassEntity cls = element.typeDeclaration;
  
      if (indexTypeVariablesOnDeclaringClass) {
        TypeEnvironmentStructure environment = _environment;
        if (environment is FullTypeEnvironmentStructure) {
          if (identical(environment.classType.element, cls)) {
            return element.index;
          }
        }
      }
  
      // TODO(sra): We might be in a context where the class type variable has an
      // index, even though in the general case it is not at a specific index.
  