| Index: dart/frog/leg/scanner/parser.dart
|
| diff --git a/dart/frog/leg/scanner/parser.dart b/dart/frog/leg/scanner/parser.dart
|
| index 4746e5279d41741df2386626e0cb9baa344d0437..6ed571cfb3d7e32f0366f88ceaae6f4c9b7b8787 100644
|
| --- a/dart/frog/leg/scanner/parser.dart
|
| +++ b/dart/frog/leg/scanner/parser.dart
|
| @@ -1059,7 +1059,8 @@ class Parser {
|
|
|
| Token parseMapLiteralEntry(Token token) {
|
| listener.beginLiteralMapEntry(token);
|
| - token = parseString(token);
|
| + // Assume the listener rejects non-string keys.
|
| + token = parseExpression(token);
|
| token = expect(':', token);
|
| token = parseExpression(token);
|
| listener.endLiteralMapEntry(token);
|
| @@ -1137,12 +1138,14 @@ class Parser {
|
| Token parseLiteralString(Token token) {
|
| listener.handleLiteralString(token);
|
| token = token.next;
|
| + int interpolationCount = 0;
|
| while (optional('\${', token)) {
|
| token = parseExpression(token.next);
|
| token = expect('}', token);
|
| token = parseString(token);
|
| - listener.handleStringInterpolationPart(token);
|
| + ++interpolationCount;
|
| }
|
| + listener.handleStringInterpolationParts(interpolationCount);
|
| return token;
|
| }
|
|
|
|
|