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

Unified Diff: pkg/front_end/lib/src/fasta/scanner/recover.dart

Issue 2910583002: improve fasta interpolation recovery (Closed)
Patch Set: remove unnecessary label Created 3 years, 7 months 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: pkg/front_end/lib/src/fasta/scanner/recover.dart
diff --git a/pkg/front_end/lib/src/fasta/scanner/recover.dart b/pkg/front_end/lib/src/fasta/scanner/recover.dart
index 9e7aaafa58b41d3450e026e128771774e49137ad..554b1d94d65bd6962239221b2019d8f38847e379 100644
--- a/pkg/front_end/lib/src/fasta/scanner/recover.dart
+++ b/pkg/front_end/lib/src/fasta/scanner/recover.dart
@@ -159,10 +159,9 @@ Token defaultRecoveryStrategy(
}
for (Token current = tokens; !current.isEof; current = current.next) {
- if (current is ErrorToken) {
+ while (current is ErrorToken) {
ErrorToken first = current;
Token next = current;
- bool treatAsWhitespace = false;
do {
current = next;
if (errorTail == null) {
@@ -179,7 +178,7 @@ Token defaultRecoveryStrategy(
if (code == codeEncoding ||
code == codeNonAsciiWhitespace ||
code == codeAsciiControlCharacter) {
- treatAsWhitespace = true;
+ current = errorTail.next;
} else if (code == codeNonAsciiIdentifier) {
current = recoverIdentifier(first);
assert(current.next != null);
@@ -202,9 +201,8 @@ Token defaultRecoveryStrategy(
current = recoverUnmatched();
assert(current.next != null);
} else {
- treatAsWhitespace = true;
+ current = errorTail.next;
}
- if (treatAsWhitespace) continue;
}
if (goodTail == null) {
good = current;

Powered by Google App Engine
This is Rietveld 408576698