Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Unified Diff: pkg/front_end/lib/src/fasta/analyzer/ast_builder.dart

Issue 2728703002: Parse FunctionExpressionInvocation with Fasta. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/test/generated/parser_fasta_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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,
« no previous file with comments | « pkg/analyzer/test/generated/parser_fasta_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698