Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(548)

Unified Diff: dart/sdk/lib/_internal/compiler/implementation/scanner/parser.dart

Issue 87813002: Fix crashes in scanner. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Merged with r30775 and updated status files. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dart/sdk/lib/_internal/compiler/implementation/scanner/parser.dart
diff --git a/dart/sdk/lib/_internal/compiler/implementation/scanner/parser.dart b/dart/sdk/lib/_internal/compiler/implementation/scanner/parser.dart
index af56bf995fc049f84f205099015ccc4f17dc0fba..8fcb14683ca9b20fa87fbc890816dcefd7513882 100644
--- a/dart/sdk/lib/_internal/compiler/implementation/scanner/parser.dart
+++ b/dart/sdk/lib/_internal/compiler/implementation/scanner/parser.dart
@@ -1778,8 +1778,11 @@ class Parser {
}
Token parseParenthesizedExpression(Token token) {
- var begin = (token as BeginGroupToken);
+ // We expect [begin] to be of type [BeginGroupToken], but we don't know for
+ // sure until after calling expect.
+ var begin = token;
token = expect('(', token);
+ // [begin] is now known to have type [BeginGroupToken].
token = parseExpression(token);
if (!identical(begin.endGroup, token)) {
listener.unexpected(token);

Powered by Google App Engine
This is Rietveld 408576698