| Index: pkg/compiler/lib/src/parser/listener.dart
|
| diff --git a/pkg/compiler/lib/src/parser/listener.dart b/pkg/compiler/lib/src/parser/listener.dart
|
| index 1294bf156558ba80a34dffb023460251c8872e34..456cfb180ccb59f5e421f48876bc384db101d042 100644
|
| --- a/pkg/compiler/lib/src/parser/listener.dart
|
| +++ b/pkg/compiler/lib/src/parser/listener.dart
|
| @@ -548,6 +548,15 @@ class Listener {
|
|
|
| void reportError(Spannable spannable, MessageKind messageKind,
|
| [Map arguments = const {}]) {
|
| + if (spannable is ErrorToken) {
|
| + reportErrorToken(spannable);
|
| + } else {
|
| + reportErrorHelper(spannable, messageKind, arguments);
|
| + }
|
| + }
|
| +
|
| + void reportErrorHelper(Spannable spannable, MessageKind messageKind,
|
| + [Map arguments = const {}]) {
|
| MessageTemplate template = MessageTemplate.TEMPLATES[messageKind];
|
| String message = template.message(arguments, true).toString();
|
| Token token;
|
| @@ -568,7 +577,7 @@ class Listener {
|
| String padding = "0000".substring(hex.length);
|
| hex = "$padding$hex";
|
| }
|
| - reportError(
|
| + reportErrorHelper(
|
| token, MessageKind.BAD_INPUT_CHARACTER, {'characterHex': hex});
|
| } else if (token is UnterminatedToken) {
|
| MessageKind kind;
|
| @@ -601,11 +610,11 @@ class Listener {
|
| kind = MessageKind.UNTERMINATED_TOKEN;
|
| break;
|
| }
|
| - reportError(token, kind, arguments);
|
| + reportErrorHelper(token, kind, arguments);
|
| } else if (token is UnmatchedToken) {
|
| String begin = token.begin.value;
|
| String end = closeBraceFor(begin);
|
| - reportError(
|
| + reportErrorHelper(
|
| token, MessageKind.UNMATCHED_TOKEN, {'begin': begin, 'end': end});
|
| } else {
|
| throw new SpannableAssertionFailure(token, token.assertionMessage);
|
|
|