Index: dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
diff --git a/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart b/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
index ae3453b7986bf1095902d3ae0a50fcf8c2f1d4ca..1ea230bb9d347b4e7bc2c5047b893d4c661de69e 100644 |
--- a/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
+++ b/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
@@ -1888,11 +1888,18 @@ class PartialMetadataAnnotation extends MetadataAnnotation { |
PartialMetadataAnnotation(this.beginToken); |
- Node parseNode(DiagnosticListener listener) { |
+ Node parseNode(DiagnosticListener diagnosticListener) { |
if (cachedNode != null) return cachedNode; |
- cachedNode = parse(listener, |
- annotatedElement.getCompilationUnit(), |
- (p) => p.parseSend(beginToken.next)); |
+ NodeListener listener = |
+ new NodeListener(diagnosticListener, |
+ annotatedElement.getCompilationUnit()); |
+ new Parser(listener).parseSend(beginToken.next); |
+ Send send = listener.popNode(); |
+ if (send.argumentsNode != null) { |
+ cachedNode = new NewExpression(beginToken, send); |
+ } else { |
+ cachedNode = send; |
+ } |
return cachedNode; |
} |
} |