| Index: pkg/analyzer/lib/src/summary/link.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart
|
| index e261675b485dec79507eb4912905ad22a4b666ca..642a2fe880ecccfda38e1c1640cdb865b2ca92a7 100644
|
| --- a/pkg/analyzer/lib/src/summary/link.dart
|
| +++ b/pkg/analyzer/lib/src/summary/link.dart
|
| @@ -2528,13 +2528,13 @@ class ExprTypeComputer {
|
| }
|
| } else if (rawMethodType.typeFormals.isNotEmpty &&
|
| ts is StrongTypeSystemImpl) {
|
| - List<DartType> paramTypes = <DartType>[];
|
| + List<ParameterElement> params = <ParameterElement>[];
|
| List<DartType> argTypes = <DartType>[];
|
| // Add positional parameter and argument types.
|
| for (int i = 0; i < numPositional; i++) {
|
| ParameterElement parameter = rawMethodType.parameters[i];
|
| if (parameter != null) {
|
| - paramTypes.add(parameter.type);
|
| + params.add(parameter);
|
| argTypes.add(positionalArgTypes[i]);
|
| }
|
| }
|
| @@ -2546,18 +2546,20 @@ class ExprTypeComputer {
|
| namedArgTypes[name] = type;
|
| }
|
| // Add named parameter and argument types.
|
| - Map<String, DartType> namedParameterTypes =
|
| - rawMethodType.namedParameterTypes;
|
| + Map<String, ParameterElement> namedParameters = new Map.fromIterable(
|
| + rawMethodType.parameters
|
| + .where((p) => p.parameterKind == ParameterKind.NAMED),
|
| + key: (p) => p.name);
|
| namedArgTypes.forEach((String name, DartType argType) {
|
| - DartType parameterType = namedParameterTypes[name];
|
| - if (parameterType != null) {
|
| - paramTypes.add(parameterType);
|
| + ParameterElement parameter = namedParameters[name];
|
| + if (parameter != null) {
|
| + params.add(parameter);
|
| argTypes.add(argType);
|
| }
|
| });
|
| // Perform inference.
|
| - FunctionType inferred = ts.inferGenericFunctionCall(rawMethodType,
|
| - paramTypes, argTypes, rawMethodType.returnType, null);
|
| + FunctionType inferred = ts.inferGenericFunctionOrType(
|
| + rawMethodType, params, argTypes, rawMethodType.returnType, null);
|
| return inferred;
|
| }
|
| }
|
|
|