| 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;
|
|
|