Index: pkg/compiler/lib/src/parser/element_listener.dart |
diff --git a/pkg/compiler/lib/src/parser/element_listener.dart b/pkg/compiler/lib/src/parser/element_listener.dart |
index d3f55ce19835486b762760bda384e961f917342b..10fd6980d01f91b6627acbcadc00f64121ced301 100644 |
--- a/pkg/compiler/lib/src/parser/element_listener.dart |
+++ b/pkg/compiler/lib/src/parser/element_listener.dart |
@@ -509,10 +509,11 @@ class ElementListener extends Listener { |
} |
return token; |
} else { |
- return reportFatalError( |
+ reportFatalError( |
reporter.spanFromToken(token), |
MessageTemplate.TEMPLATES[MessageKind.MISSING_TOKEN_BEFORE_THIS] |
.message({'token': expected}, true).toString()); |
+ return null; |
} |
break; |
@@ -546,7 +547,8 @@ class ElementListener extends Listener { |
if (token.info == Precedence.BAD_INPUT_INFO) { |
message = token.value; |
} |
- return reportFatalError(reporter.spanFromToken(token), message); |
+ reportFatalError(reporter.spanFromToken(token), message); |
+ return null; |
case ErrorKind.ExpectedBlockToSkip: |
if (optional("native", token)) { |
@@ -569,14 +571,16 @@ class ElementListener extends Listener { |
case ErrorKind.ExpectedClassBodyToSkip: |
case ErrorKind.ExpectedClassBody: |
- return reportFatalError( |
+ reportFatalError( |
reporter.spanFromToken(token), |
"Expected a class body, but got '${token.value}'."); |
+ return null; |
case ErrorKind.ExpectedDeclaration: |
- return reportFatalError( |
+ reportFatalError( |
reporter.spanFromToken(token), |
"Expected a declaration, but got '${token.value}'."); |
+ return null; |
case ErrorKind.UnmatchedToken: |
reportErrorFromToken(token, MessageKind.UNMATCHED_TOKEN, arguments); |
@@ -886,9 +890,10 @@ class ElementListener extends Listener { |
/// Don't call this method. Should only be used as a last resort when there |
/// is no feasible way to recover from a parser error. |
- Token reportFatalError(SourceSpan span, String message) { |
- reportError(span, MessageKind.GENERIC, {'text': message}); |
+ void reportFatalError(Spannable spannable, String message) { |
ahe
2017/01/25 10:35:09
Restoring previous API.
One has to be careful wit
|
+ reportError(spannable, MessageKind.GENERIC, {'text': message}); |
// Some parse errors are infeasible to recover from, so we throw an error. |
+ SourceSpan span = reporter.spanFromSpannable(spannable); |
throw new ParserError( |
span.begin, span.end, ErrorKind.Unspecified, {'text': message}); |
} |