| Index: dart/frog/leg/scanner/array_based_scanner.dart
|
| diff --git a/dart/frog/leg/scanner/array_based_scanner.dart b/dart/frog/leg/scanner/array_based_scanner.dart
|
| index 1a49c2e118c39e623a697673b4df15e5c068c27b..a3e8ca31a068b1418faa83a87994943ed2320c9e 100644
|
| --- a/dart/frog/leg/scanner/array_based_scanner.dart
|
| +++ b/dart/frog/leg/scanner/array_based_scanner.dart
|
| @@ -58,6 +58,11 @@ class ArrayBasedScanner<S> extends AbstractScanner<S> {
|
| tail = tail.next;
|
| // EOF points to itself so there's always infinite look-ahead.
|
| tail.next = tail;
|
| + if (!groupingStack.isEmpty()) {
|
| + BeginGroupToken begin = groupingStack.head;
|
| + throw new MalformedInputException('Unmatched ${begin.stringValue}',
|
| + begin);
|
| + }
|
| }
|
|
|
| void beginToken() {
|
| @@ -100,7 +105,8 @@ class ArrayBasedScanner<S> extends AbstractScanner<S> {
|
| if (openKind !== OPEN_CURLY_BRACKET_TOKEN ||
|
| begin.kind !== STRING_INTERPOLATION_TOKEN) {
|
| // Not ending string interpolation.
|
| - throw new MalformedInputException('Unmatched ${begin.stringValue}');
|
| + throw new MalformedInputException('Unmatched ${begin.stringValue}',
|
| + begin);
|
| }
|
| // We're ending an interpolated expression.
|
| begin.endGroup = tail;
|
|
|