| Index: pkg/compiler/lib/src/parser/node_listener.dart
|
| diff --git a/pkg/compiler/lib/src/parser/node_listener.dart b/pkg/compiler/lib/src/parser/node_listener.dart
|
| index 2fb77387828f3488a8ee01ef54ec008a35f1f02e..9d4fe2577d7449cc28ee524f850cd4179a92be02 100644
|
| --- a/pkg/compiler/lib/src/parser/node_listener.dart
|
| +++ b/pkg/compiler/lib/src/parser/node_listener.dart
|
| @@ -18,6 +18,8 @@ import 'element_listener.dart' show ElementListener, ScannerOptions;
|
| import 'package:front_end/src/fasta/parser.dart' as fasta show Assert;
|
|
|
| class NodeListener extends ElementListener {
|
| + int invalidTopLevelDeclarationCount = 0;
|
| +
|
| NodeListener(ScannerOptions scannerOptions, DiagnosticReporter reporter,
|
| CompilationUnitElement element)
|
| : super(scannerOptions, reporter, element, null);
|
| @@ -118,6 +120,11 @@ class NodeListener extends ElementListener {
|
| interfaces, beginToken, extendsKeyword, body, endToken));
|
| }
|
|
|
| + @override
|
| + void handleInvalidTopLevelDeclaration(Token endToken) {
|
| + ++invalidTopLevelDeclarationCount;
|
| + }
|
| +
|
| @override
|
| void endTopLevelDeclaration(Token token) {
|
| // TODO(sigmund): consider moving metadata into each declaration
|
| @@ -128,9 +135,15 @@ class NodeListener extends ElementListener {
|
| super.endTopLevelDeclaration(token);
|
| }
|
|
|
| + @override
|
| + void beginCompilationUnit(Token token) {
|
| + invalidTopLevelDeclarationCount = 0;
|
| + }
|
| +
|
| @override
|
| void endCompilationUnit(int count, Token token) {
|
| - pushNode(makeNodeList(count, null, null, '\n'));
|
| + pushNode(makeNodeList(
|
| + count - invalidTopLevelDeclarationCount, null, null, '\n'));
|
| }
|
|
|
| @override
|
|
|