Fix set literal optimization
This fixes a bug in the parsing set literal optimization
https://dart-review.googlesource.com/c/sdk/+/84661
and the additional tests are on the analyzer branch in
https://dart-review.googlesource.com/c/sdk/+/85429
Change-Id: I518352a131bf444ff3536ee1fc9a27ad4e5bb114
Reviewed-on: https://dart-review.googlesource.com/c/85430
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/front_end/lib/src/fasta/parser/parser.dart b/pkg/front_end/lib/src/fasta/parser/parser.dart
index bc96678..4e21b72 100644
--- a/pkg/front_end/lib/src/fasta/parser/parser.dart
+++ b/pkg/front_end/lib/src/fasta/parser/parser.dart
@@ -4231,11 +4231,11 @@
listener.handleLiteralSet(1, leftBrace, constKeyword, next);
return next;
} else if (optional(',', next)) {
- return parseLiteralSetRest(next, constKeyword, leftBrace);
+ return parseLiteralSetRest(token, constKeyword, leftBrace);
} else {
// TODO(danrubel): Consider better recovery
// rather than just assuming this is a literal map.
- Token colon = ensureColon(next);
+ Token colon = ensureColon(token);
final old = mayParseFunctionExpressions;
mayParseFunctionExpressions = true;