Chromium Code Reviews| Index: pkg/analyzer/lib/src/generated/static_type_analyzer.dart |
| diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart |
| index b8ab670f240b18777c5054a989d9c631688a8112..bd40803552fbc2df978d4e88f446fbca595fdaf4 100644 |
| --- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart |
| +++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart |
| @@ -1813,16 +1813,18 @@ class StaticTypeAnalyzer extends SimpleAstVisitor<Object> { |
| if (fnType.typeFormals.isNotEmpty && |
| ts.instantiateToBounds(fnType) == invokeType) { |
| // Get the parameters that correspond to the uninstantiated generic. |
| - List<ParameterElement> genericParameters = |
| + List<ParameterElement> rawParameters = |
| ResolverVisitor.resolveArgumentsToParameters( |
|
Leaf
2016/01/13 00:43:10
Can you add documentation to resolveArgumentsToPar
Jennifer Messerly
2016/01/13 19:10:36
Sure thing.
|
| node.argumentList, fnType.parameters, null); |
| - int length = genericParameters.length; |
| - List<DartType> argTypes = new List<DartType>(length); |
| - List<DartType> paramTypes = new List<DartType>(length); |
| - for (int i = 0; i < length; i++) { |
| - argTypes[i] = node.argumentList.arguments[i].staticType; |
| - paramTypes[i] = genericParameters[i].type; |
| + List<DartType> paramTypes = <DartType>[]; |
| + List<DartType> argTypes = <DartType>[]; |
| + for (int i = 0, length = rawParameters.length; i < length; i++) { |
| + ParameterElement parameter = rawParameters[i]; |
| + if (parameter != null) { |
| + paramTypes.add(parameter.type); |
| + argTypes.add(node.argumentList.arguments[i].staticType); |
| + } |
| } |
| FunctionType inferred = ts.inferCallFromArguments( |