anchor.diff:        localsHandler.updateLocal(local, argument);
       });
   
  +    bool hasTypeParameters = function.parameterStructure.typeParameters > 0;
  +    bool needsTypeArguments = _rtiNeed.methodNeedsTypeArguments(function);
  +    for (TypeVariableType typeVariable
  +        in _elementEnvironment.getFunctionTypeVariables(function)) {
  +      HInstruction argument;
  +      if (hasTypeParameters && needsTypeArguments) {
  +        argument = compiledArguments[argumentIndex++];
  +      } else {
  +        argument = _computeTypeArgumentDefaultValue(function, typeVariable);
  +      }
  +      localsHandler.updateLocal(
  +          localsHandler.getTypeVariableAsLocal(typeVariable), argument);
  +    }
  +
       if (forGenerativeConstructorBody && scopeData.requiresContextBox) {
         HInstruction box = compiledArguments[argumentIndex++];
         assert(box is HCreateBox);
  
positive.code: 
    /// Extend current method parameters with parameters for the function type
    /// variables.
    ///
    /// TODO(johnniwinther): Do we need this?
    /// If the method has type variables but does not need them, bind to `dynamic`
    /// (represented as `null`).
    void _addFunctionTypeVariablesIfNeeded(MemberEntity member) {
      if (member is! FunctionEntity) return;
  
  
negative.code:             localsHandler.getTypeVariableAsLocal(typeVariable), argument);
        });
      }
  
      assert(
          argumentIndex == compiledArguments.length ||
              !_rtiNeed.methodNeedsTypeArguments(function) &&
  