anchor.diff:        DartType? parameterContextType;
         if (parameter != null) {
           var parameterType = parameter.type;
  +        if (substitution != null) {
  +          parameterType = substitution.substituteType(parameterType);
  +        }
           parameterContextType = _computeContextForArgument(
               resolver, node, parameterType, contextType);
         }
  
positive.code:       required FunctionType? rawType,
        required DartType? contextType,
        required List<WhyNotPromotedGetter> whyNotPromotedList,
        required List<EqualityInfo<PromotableElement, DartType>?>?
            identicalInfo}) {
      assert(whyNotPromotedList.isEmpty);
      var parameters = rawType?.parameters;
      var namedParameters = <String, ParameterElement>{};
  
negative.code:       }
        inferrer.constrainArguments(parameters: params, argumentTypes: argTypes);
        typeArgumentTypes = inferrer.upwardsInfer();
      }
      FunctionType? invokeType = typeArgumentTypes != null
          ? rawType?.instantiate(typeArgumentTypes)
          : rawType;
  
      var parameters = _storeResult(node, typeArgumentTypes, invokeType);
      if (parameters != null) {
  