Index: pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
index 5a14cae0ff85418224322eeffdf0f131ad1e142a..5e67e6d8e865529cac8611fdbd2fbb6a79f40793 100644 |
--- a/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart |
@@ -167,22 +167,24 @@ class AstBuilder extends ScopeListener { |
MethodInvocation arguments = pop(); |
TypeArgumentList typeArguments = pop(); |
if (arguments != null) { |
- if (typeArguments != null) { |
- arguments.typeArguments = typeArguments; |
- } |
- doInvocation(token, arguments); |
+ doInvocation(token, typeArguments, arguments); |
} else { |
doPropertyGet(token); |
} |
} |
- void doInvocation(Token token, MethodInvocation arguments) { |
+ void doInvocation( |
+ Token token, TypeArgumentList typeArguments, MethodInvocation arguments) { |
Expression receiver = pop(); |
if (receiver is SimpleIdentifier) { |
arguments.methodName = receiver; |
+ if (typeArguments != null) { |
+ arguments.typeArguments = typeArguments; |
+ } |
push(arguments); |
} else { |
- internalError("Unhandled receiver in send: ${receiver.runtimeType}"); |
+ push(ast.functionExpressionInvocation( |
+ receiver, typeArguments, arguments.argumentList)); |
} |
} |
@@ -1174,7 +1176,8 @@ class AstBuilder extends ScopeListener { |
// TODO(paulberry): capture doc comments. See dartbug.com/28851. |
Comment comment = null; |
Token period; |
- void unnamedConstructor(SimpleIdentifier returnType, SimpleIdentifier name) { |
+ void unnamedConstructor( |
+ SimpleIdentifier returnType, SimpleIdentifier name) { |
push(ast.constructorDeclaration( |
comment, |
metadata, |