anchor.diff:    jsAst.Literal encodeRecipeWithVariablesReplaceByAny(
         ModularEmitter emitter, DartType dartType);
   
  +  /// Returns a [jsAst.Literal] representing [supertypeArgument] to be evaluated
  +  /// against a [FullTypeEnvironmentStructure] representing [declaringType]. Any
  +  /// [TypeVariableType]s appearing in [supertypeArgument] which are declared by
  +  /// [declaringType] are always encoded as indices.
  +  jsAst.Literal encodeDirectSupertypeRecipe(ModularEmitter emitter,
  +      InterfaceType declaringType, DartType supertypeArgument);
  +
     /// Converts a recipe into a fragment of code that accesses the evaluated
     /// recipe.
     // TODO(33422): Remove need for this by pushing stubs through SSA.
  
positive.code: 
    _RecipeGenerator(
        this._encoder, this._emitter, this._environment, this._recipe,
        {this.hackTypeVariablesToAny = false});
  
    JClosedWorld get _closedWorld => _encoder._closedWorld;
    NativeBasicData get _nativeData => _encoder._nativeData;
  
negative.code:   final ModularEmitter _emitter;
    final TypeEnvironmentStructure _environment;
    final TypeRecipe _recipe;
    final bool indexTypeVariablesOnDeclaringClass;
    final bool hackTypeVariablesToAny;
  
    final List<FunctionTypeVariable> functionTypeVariables = [];
  