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;