Chromium Code Reviews| 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, |