Fix for parsing empty compilation units with Fasta.

R=paulberry@google.com
BUG=

Review-Url: https://codereview.chromium.org/2738693003 .
This commit is contained in:
Konstantin Shcheglov
2017-03-07 09:48:29 -08:00
parent f566a1e61c
commit 91cf66ed5d
2 changed files with 11 additions and 22 deletions
@@ -1240,13 +1240,6 @@ class TopLevelParserTest_Fasta extends FastaParserTestCase
super.test_parseCompilationUnit_builtIn_asFunctionName();
}
@override
@failingTest
void test_parseCompilationUnit_empty() {
// TODO(paulberry): No objects placed on stack
super.test_parseCompilationUnit_empty();
}
@override
@failingTest
void test_parseCompilationUnit_exportAsPrefix() {
@@ -1297,13 +1290,6 @@ class TopLevelParserTest_Fasta extends FastaParserTestCase
super.test_parseDirectives_complete();
}
@override
@failingTest
void test_parseDirectives_empty() {
// TODO(paulberry): No objects placed on stack
super.test_parseDirectives_empty();
}
@override
@failingTest
void test_parseDirectives_mixed() {
@@ -852,14 +852,17 @@ class AstBuilder extends ScopeListener {
var directives = <Directive>[];
var declarations = <CompilationUnitMember>[];
analyzer.Token endToken = null; // TODO(paulberry)
for (AstNode node in popList(count)) {
if (node is Directive) {
directives.add(node);
} else if (node is CompilationUnitMember) {
declarations.add(node);
} else {
internalError(
'Unrecognized compilation unit member: ${node.runtimeType}');
List<Object> elements = popList(count);
if (elements != null) {
for (AstNode node in elements) {
if (node is Directive) {
directives.add(node);
} else if (node is CompilationUnitMember) {
declarations.add(node);
} else {
internalError(
'Unrecognized compilation unit member: ${node.runtimeType}');
}
}
}
push(ast.compilationUnit(