Index: dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
diff --git a/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart b/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
index ab20f515cf11ca9c92146a1008fa45bd29b130b0..314e8d735a912df3750114e4b6e9d5c4ddcf5107 100644 |
--- a/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
+++ b/dart/sdk/lib/_internal/compiler/implementation/scanner/listener.dart |
@@ -595,6 +595,22 @@ class Listener { |
void error(String message, Token token) { |
throw new ParserError("$message @ ${token.charOffset}"); |
} |
+ |
+ void reportError(Spannable spannable, |
+ MessageKind errorCode, |
+ [Map arguments = const {}]) { |
+ String message = errorCode.error(arguments, true).toString(); |
+ Token token; |
+ Node node; |
+ if (spannable is Token) { |
+ token = spannable; |
+ } else if (spannable is Node) { |
+ node = spannable; |
+ } else { |
+ throw new ParserError(message); |
+ } |
+ recoverableError(message, token: token, node: node); |
+ } |
} |
class ParserError { |
@@ -1122,6 +1138,12 @@ class ElementListener extends Listener { |
} |
pushNode(accumulator); |
} |
+ |
+ void reportError(Spannable spannable, |
+ MessageKind errorCode, |
+ [Map arguments = const {}]) { |
+ listener.reportError(spannable, errorCode, arguments); |
+ } |
} |
class NodeListener extends ElementListener { |