Index: pkg/front_end/test/scanner_replacement_test.dart |
diff --git a/pkg/front_end/test/scanner_replacement_test.dart b/pkg/front_end/test/scanner_replacement_test.dart |
index aca78d8e75763abe86087b2792443c7f57c4255c..33456b47086cb6ca695282affd3c2f84b0bb3baf 100644 |
--- a/pkg/front_end/test/scanner_replacement_test.dart |
+++ b/pkg/front_end/test/scanner_replacement_test.dart |
@@ -77,13 +77,17 @@ class ScannerTest_Replacement extends ScannerTestBase { |
expect(close.isSynthetic, isFalse); |
} |
- void _assertOpenOnly(String source) { |
- analyzer.BeginToken open = _scan(source); |
+ void _assertOpenOnly(String source, String expectedCloser) { |
+ ErrorListener listener = new ErrorListener(); |
+ analyzer.BeginToken open = scanWithListener(source, listener); |
fasta.Token close = open.next; |
expect(close.next.isEof, isTrue); |
expect(open.endGroup, close); |
expect(open.isSynthetic, isFalse); |
expect(close.isSynthetic, isTrue); |
+ listener.assertErrors([ |
+ new TestError(0, ScannerErrorCode.EXPECTED_TOKEN, [expectedCloser]), |
+ ]); |
} |
void test_lt() { |
@@ -100,7 +104,7 @@ class ScannerTest_Replacement extends ScannerTestBase { |
@override |
void test_open_curly_bracket() { |
- _assertOpenOnly('{'); |
+ _assertOpenOnly('{', '}'); |
} |
void test_open_curly_bracket_with_close() { |
@@ -108,7 +112,7 @@ class ScannerTest_Replacement extends ScannerTestBase { |
} |
void test_open_paren() { |
- _assertOpenOnly('('); |
+ _assertOpenOnly('(', ')'); |
} |
void test_open_paren_with_close() { |
@@ -116,7 +120,7 @@ class ScannerTest_Replacement extends ScannerTestBase { |
} |
void test_open_square_bracket() { |
- _assertOpenOnly('['); |
+ _assertOpenOnly('[', ']'); |
} |
void test_open_square_bracket_with_close() { |
@@ -130,7 +134,8 @@ class ScannerTest_Replacement extends ScannerTestBase { |
// and inserts synthetic closers as needed. |
// r'"${({(}}"' is parsed as r'"${({()})}"' |
// where both ')' are synthetic |
- var stringStart = _scan(r'"${({(}}"'); |
+ ErrorListener listener = new ErrorListener(); |
+ var stringStart = scanWithListener(r'"${({(}}"', listener); |
var interpolationStart = stringStart.next as analyzer.BeginToken; |
var openParen1 = interpolationStart.next as analyzer.BeginToken; |
var openBrace = openParen1.next as analyzer.BeginToken; |
@@ -151,12 +156,17 @@ class ScannerTest_Replacement extends ScannerTestBase { |
expect(openParen2.endToken, same(closeParen2)); |
expect(closeParen2.isSynthetic, isTrue); |
expect(eof.isEof, isTrue); |
+ listener.assertErrors([ |
+ new TestError(3, ScannerErrorCode.EXPECTED_TOKEN, [')']), |
+ new TestError(5, ScannerErrorCode.EXPECTED_TOKEN, [')']), |
+ ]); |
} |
@override |
void test_unmatched_openers() { |
+ ErrorListener listener = new ErrorListener(); |
// fasta inserts missing closers except for '<' |
- var openBrace = _scan('{[(<') as analyzer.BeginToken; |
+ var openBrace = scanWithListener('{[(<', listener) as analyzer.BeginToken; |
ahe
2017/06/06 10:17:16
Ditto.
|
var openBracket = openBrace.next as analyzer.BeginToken; |
var openParen = openBracket.next as analyzer.BeginToken; |
var openLT = openParen.next as analyzer.BeginToken; |
@@ -169,6 +179,12 @@ class ScannerTest_Replacement extends ScannerTestBase { |
expect(openBracket.endGroup, same(closeBracket)); |
expect(openParen.endGroup, same(closeParen)); |
expect(eof.isEof, true); |
+ |
+ listener.assertErrors([ |
+ new TestError(2, ScannerErrorCode.EXPECTED_TOKEN, [')']), |
+ new TestError(1, ScannerErrorCode.EXPECTED_TOKEN, [']']), |
+ new TestError(0, ScannerErrorCode.EXPECTED_TOKEN, ['}']), |
+ ]); |
} |
analyzer.Token _scan(String source, |