Version 2.12.0-214.0.dev

Merge commit 'c42c76f5904c29921591cae815c5e7d53fabc2cf' into 'dev'
diff --git a/DEPS b/DEPS
index b9546ff..eb1da40 100644
--- a/DEPS
+++ b/DEPS
@@ -111,7 +111,7 @@
   "http_multi_server_rev" : "e8c8be7f15b4fb50757ff5bf29766721fbe24fe4",
   "http_parser_rev": "5dd4d16693242049dfb43b5efa429fedbf932e98",
   "http_retry_tag": "0.1.1",
-  "http_rev": "1617b728fc48f64fb0ed7dc16078c03adcc64179",
+  "http_rev": "3845753a54624b070828cb3eff7a6c2a4e046cfb",
   "http_throttle_tag" : "1.0.2",
   "icu_rev" : "79326efe26e5440f530963704c3c0ff965b3a4ac",
   "idl_parser_rev": "5fb1ebf49d235b5a70c9f49047e83b0654031eb7",
diff --git a/benchmarks/BigIntParsePrint/dart/BigIntParsePrint.dart b/benchmarks/BigIntParsePrint/dart/BigIntParsePrint.dart
index 7f4c3c9..b3d40c0 100644
--- a/benchmarks/BigIntParsePrint/dart/BigIntParsePrint.dart
+++ b/benchmarks/BigIntParsePrint/dart/BigIntParsePrint.dart
@@ -33,13 +33,13 @@
 
 class Benchmark extends BenchmarkBase {
   final List<String> strings;
-  Benchmark(String name, int bits, {bool forInt: false})
+  Benchmark(String name, int bits, {bool forInt = false})
       : strings = generateStrings(bits, forInt),
         super(name);
 
   static List<String> generateStrings(int bits, bool forInt) {
-    List<String> strings = [];
-    BigInt seed = (BigInt.one << bits) - BigInt.one;
+    final List<String> strings = [];
+    final BigInt seed = (BigInt.one << bits) - BigInt.one;
     var b = seed;
     var restartDelta = BigInt.zero;
     var totalLength = 0;
@@ -130,7 +130,7 @@
   @override
   void setup() {
     for (String s in strings) {
-      BigInt b = BigInt.parse(s);
+      final BigInt b = BigInt.parse(s);
       values.add(b - BigInt.one); // We add 'one' back later.
     }
   }
@@ -158,7 +158,7 @@
   @override
   void setup() {
     for (String s in strings) {
-      int b = int.parse(s);
+      final int b = int.parse(s);
       values.add(b - 4096); // We add this back later.
     }
   }
diff --git a/benchmarks/BigIntParsePrint/dart2/BigIntParsePrint.dart b/benchmarks/BigIntParsePrint/dart2/BigIntParsePrint.dart
index 700c408..db19b68 100644
--- a/benchmarks/BigIntParsePrint/dart2/BigIntParsePrint.dart
+++ b/benchmarks/BigIntParsePrint/dart2/BigIntParsePrint.dart
@@ -35,13 +35,13 @@
 
 class Benchmark extends BenchmarkBase {
   final List<String> strings;
-  Benchmark(String name, int bits, {bool forInt: false})
+  Benchmark(String name, int bits, {bool forInt = false})
       : strings = generateStrings(bits, forInt),
         super(name);
 
   static List<String> generateStrings(int bits, bool forInt) {
-    List<String> strings = [];
-    BigInt seed = (BigInt.one << bits) - BigInt.one;
+    final List<String> strings = [];
+    final BigInt seed = (BigInt.one << bits) - BigInt.one;
     var b = seed;
     var restartDelta = BigInt.zero;
     var totalLength = 0;
@@ -132,7 +132,7 @@
   @override
   void setup() {
     for (String s in strings) {
-      BigInt b = BigInt.parse(s);
+      final BigInt b = BigInt.parse(s);
       values.add(b - BigInt.one); // We add 'one' back later.
     }
   }
@@ -160,7 +160,7 @@
   @override
   void setup() {
     for (String s in strings) {
-      int b = int.parse(s);
+      final int b = int.parse(s);
       values.add(b - 4096); // We add this back later.
     }
   }
diff --git a/pkg/_fe_analyzer_shared/lib/src/messages/codes.dart b/pkg/_fe_analyzer_shared/lib/src/messages/codes.dart
index 395c60d..acc5edc 100644
--- a/pkg/_fe_analyzer_shared/lib/src/messages/codes.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/messages/codes.dart
@@ -334,3 +334,24 @@
   }
   return demangledName;
 }
+
+final RegExp templateKey = new RegExp(r'#(\w+)');
+
+/// Replaces occurrences of '#key' in [template], where 'key' is a key in
+/// [arguments], with the corresponding values.
+String applyArgumentsToTemplate(
+    String template, Map<String, dynamic> arguments) {
+  // TODO(johnniwinther): Remove `as dynamic` when unsound null safety is
+  // no longer supported.
+  if (arguments as dynamic == null || arguments.isEmpty) {
+    assert(!template.contains(templateKey),
+        'Message requires arguments, but none were provided.');
+    return template;
+  }
+  return template.replaceAllMapped(templateKey, (Match match) {
+    String? key = match.group(1);
+    Object? value = arguments[key];
+    assert(value != null, "No value for '$key' found in $arguments");
+    return value.toString();
+  });
+}
diff --git a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
index 5e2ac34..1ea05e1 100644
--- a/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/messages/codes_generated.dart
@@ -249,7 +249,7 @@
   return new Message(codeAsciiControlCharacter,
       message:
           """The control character ${unicode} can only be used in strings and comments.""",
-      arguments: {'codePoint': codePoint});
+      arguments: {'unicode': codePoint});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -477,7 +477,7 @@
   return new Message(codeBuiltInIdentifierAsType,
       message:
           """The built-in identifier '${lexeme}' can't be used as a type.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -497,7 +497,7 @@
   String lexeme = token.lexeme;
   return new Message(codeBuiltInIdentifierInDeclaration,
       message: """Can't use '${lexeme}' as a name here.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -837,7 +837,7 @@
   String lexeme = token.lexeme;
   return new Message(codeCantUseControlFlowOrSpreadAsConstant,
       message: """'${lexeme}' is not supported in constant expressions.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -866,7 +866,7 @@
           """'${lexeme}' can't be used in a constant expression because it's marked as 'deferred' which means it isn't available until loaded.""",
       tip: """Try moving the constant from the deferred library, or removing 'deferred' from the import.
 """,
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2419,7 +2419,7 @@
   return new Message(codeDuplicatedModifier,
       message: """The modifier '${lexeme}' was already specified.""",
       tip: """Try removing all but one occurrence of the modifier.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2735,7 +2735,7 @@
   String lexeme = token.lexeme;
   return new Message(codeExpectedClassMember,
       message: """Expected a class member, but got '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2777,7 +2777,7 @@
   String lexeme = token.lexeme;
   return new Message(codeExpectedDeclaration,
       message: """Expected a declaration, but got '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2810,7 +2810,7 @@
       message: """Expected a enum body, but got '${lexeme}'.""",
       tip:
           """An enum definition must have a body with at least one constant name.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2829,7 +2829,7 @@
   String lexeme = token.lexeme;
   return new Message(codeExpectedFunctionBody,
       message: """Expected a function body, but got '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2859,7 +2859,7 @@
   return new Message(codeExpectedIdentifier,
       message: """Expected an identifier, but got '${lexeme}'.""",
       tip: """Try inserting an identifier before '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2887,7 +2887,7 @@
       message:
           """'${lexeme}' can't be used as an identifier because it's a keyword.""",
       tip: """Try renaming this to be an identifier that isn't a keyword.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2957,7 +2957,7 @@
   String lexeme = token.lexeme;
   return new Message(codeExpectedString,
       message: """Expected a String, but got '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -2995,7 +2995,7 @@
   String lexeme = token.lexeme;
   return new Message(codeExpectedType,
       message: """Expected a type, but got '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -3534,7 +3534,7 @@
   return new Message(codeExtraneousModifier,
       message: """Can't have modifier '${lexeme}' here.""",
       tip: """Try removing '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -3556,7 +3556,7 @@
   return new Message(codeExtraneousModifierInExtension,
       message: """Can't have modifier '${lexeme}' in an extension.""",
       tip: """Try removing '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -5569,7 +5569,7 @@
   String lexeme = token.lexeme;
   return new Message(codeInvalidOperator,
       message: """The string '${lexeme}' isn't a user-definable operator.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -6816,7 +6816,7 @@
       message: """A function should have formal parameters.""",
       tip:
           """Try adding '()' after '${lexeme}', or add 'get' before '${lexeme}' to declare a getter.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -6885,7 +6885,7 @@
       message:
           """The non-ASCII character '${character}' (${unicode}) can't be used in identifiers, only in strings and comments.""",
       tip: """Try using an US-ASCII letter, a digit, '_' (an underscore), or '\$' (a dollar sign).""",
-      arguments: {'character': character, 'codePoint': codePoint});
+      arguments: {'character': character, 'unicode': codePoint});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -6910,7 +6910,7 @@
   return new Message(codeNonAsciiWhitespace,
       message:
           """The non-ASCII space character ${unicode} can only be used in strings and comments.""",
-      arguments: {'codePoint': codePoint});
+      arguments: {'unicode': codePoint});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -7203,7 +7203,7 @@
   String lexeme = token.lexeme;
   return new Message(codeNotBinaryOperator,
       message: """'${lexeme}' isn't a binary operator.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -9320,7 +9320,7 @@
   return new Message(codeUnexpectedModifierInNonNnbd,
       message:
           """The modifier '${lexeme}' is only available in null safe libraries.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -9339,7 +9339,7 @@
   String lexeme = token.lexeme;
   return new Message(codeUnexpectedToken,
       message: """Unexpected token '${lexeme}'.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -9360,7 +9360,7 @@
   String lexeme = token.lexeme;
   return new Message(codeUnmatchedToken,
       message: """Can't find '${string}' to match '${lexeme}'.""",
-      arguments: {'string': string, 'token': token});
+      arguments: {'string': string, 'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
@@ -9429,7 +9429,7 @@
   String lexeme = token.lexeme;
   return new Message(codeUnsupportedOperator,
       message: """The '${lexeme}' operator is not supported.""",
-      arguments: {'token': token});
+      arguments: {'lexeme': token});
 }
 
 // DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
diff --git a/pkg/_fe_analyzer_shared/test/template_replacement_test.dart b/pkg/_fe_analyzer_shared/test/template_replacement_test.dart
new file mode 100644
index 0000000..b5b627c
--- /dev/null
+++ b/pkg/_fe_analyzer_shared/test/template_replacement_test.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:_fe_analyzer_shared/src/messages/codes.dart';
+
+void main() {
+  test('#a', {'a': 'b'}, 'b');
+  test('#a #a', {'a': 'b'}, 'b b');
+  test('#a #b', {'a': 'b', 'b': 'c'}, 'b c');
+  test('#a #b', {'a': '#b', 'b': 'c'}, '#b c');
+
+  test('#a1 #a2', {'a1': 'b', 'a2': 'c'}, 'b c');
+  test('#a1 #a2', {'a1': '#a2', 'a2': 'a2'}, '#a2 a2');
+  test('#a1 #a1 #a2 #a2', {'a1': '#a2', 'a2': 'b'}, '#a2 #a2 b b');
+}
+
+void test(
+    String template, Map<String, dynamic>? arguments, String expectedResult) {
+  expect(expectedResult, applyArgumentsToTemplate(template, arguments!),
+      'Unexpected result for replacing $arguments in "$template"');
+}
+
+void expect(expected, actual, String message) {
+  if (expected != actual) {
+    throw '$message: Expected "$expected", actual "$actual".';
+  }
+}
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/add_missing_parameter.dart b/pkg/analysis_server/lib/src/services/correction/dart/add_missing_parameter.dart
index 5c29355..9b8f484 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/add_missing_parameter.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/add_missing_parameter.dart
@@ -12,10 +12,11 @@
 class AddMissingParameter extends MultiCorrectionProducer {
   @override
   Iterable<CorrectionProducer> get producers sync* {
-    if (node is! ArgumentList) {
+    // node is the unmatched argument.
+    if (node.parent is! ArgumentList) {
       return;
     }
-    var context = ExecutableParameters(sessionHelper, node.parent);
+    var context = ExecutableParameters(sessionHelper, node.parent.parent);
     if (context == null) {
       return;
     }
@@ -65,7 +66,8 @@
 
   Future<void> _addParameter(
       ChangeBuilder builder, int offset, String prefix, String suffix) async {
-    ArgumentList argumentList = node;
+    // node is the unmatched argument.
+    ArgumentList argumentList = node.parent;
     List<Expression> arguments = argumentList.arguments;
     var numRequired = context.required.length;
     if (numRequired >= arguments.length) {
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_named_arguments.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_named_arguments.dart
index ce315d9..5f62701 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_named_arguments.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_named_arguments.dart
@@ -16,7 +16,8 @@
 
   @override
   Future<void> compute(ChangeBuilder builder) async {
-    var argumentList = node;
+    // node is the unmatched argument.
+    var argumentList = node.parent;
     if (argumentList is ArgumentList) {
       // Prepare parameters.
       List<ParameterElement> parameters;
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart
index af90fd1..4e397d4 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/create_constructor.dart
@@ -24,8 +24,10 @@
 
   @override
   Future<void> compute(ChangeBuilder builder) async {
-    if (node is ArgumentList && node.parent is InstanceCreationExpression) {
-      await _proposeFromInstanceCreation(builder);
+    final argumentList = node.parent is ArgumentList ? node.parent : node;
+    if (argumentList is ArgumentList &&
+        argumentList.parent is InstanceCreationExpression) {
+      await _proposeFromInstanceCreation(builder, argumentList.parent);
     } else {
       await _proposeFromConstructorName(builder);
     }
@@ -90,8 +92,8 @@
     });
   }
 
-  Future<void> _proposeFromInstanceCreation(ChangeBuilder builder) async {
-    InstanceCreationExpression instanceCreation = node.parent;
+  Future<void> _proposeFromInstanceCreation(ChangeBuilder builder,
+      InstanceCreationExpression instanceCreation) async {
     _constructorName = instanceCreation.constructorName;
     // should be synthetic default constructor
     var constructorElement = _constructorName.staticElement;
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart b/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart
index 7ecd51e..efe93db 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/data_driven.dart
@@ -82,6 +82,8 @@
       return nameFromParent(node);
     } else if (node is ArgumentList) {
       return nameFromParent(node);
+    } else if (node?.parent is ArgumentList) {
+      return nameFromParent(node.parent);
     }
     return null;
   }
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_template.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_template.dart
index 054de2a..c7345c3 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_template.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/code_template.dart
@@ -86,6 +86,8 @@
   static AstNode _getInvocation(AstNode node) {
     if (node is ArgumentList) {
       return node.parent;
+    } else if (node.parent is ArgumentList) {
+      return node.parent.parent;
     } else if (node is InstanceCreationExpression ||
         node is InvocationExpression) {
       return node;
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart
index b73a574..32d0b8e 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart
@@ -238,6 +238,9 @@
       if (argumentList is ArgumentList) {
         return _Data(argumentList);
       }
+    } else if (parent?.parent is InvocationExpression) {
+      var argumentList = (parent.parent as InvocationExpression).argumentList;
+      return _Data(argumentList);
     }
     return null;
   }
diff --git a/pkg/analyzer/lib/error/error.dart b/pkg/analyzer/lib/error/error.dart
index 6bfabd4..4671618 100644
--- a/pkg/analyzer/lib/error/error.dart
+++ b/pkg/analyzer/lib/error/error.dart
@@ -5,6 +5,7 @@
 import 'dart:collection';
 
 import 'package:_fe_analyzer_shared/src/base/errors.dart';
+import 'package:_fe_analyzer_shared/src/messages/codes.dart';
 import 'package:_fe_analyzer_shared/src/scanner/errors.dart';
 import 'package:analyzer/diagnostic/diagnostic.dart';
 import 'package:analyzer/error/listener.dart';
@@ -939,6 +940,27 @@
     _contextMessages = contextMessages;
   }
 
+  /// Initialize a newly created analysis error. The error is associated with
+  /// the given [source] and is located at the given [offset] with the given
+  /// [length]. The error will have the given [errorCode] and the map  of
+  /// [arguments] will be used to complete the message and correction. If any
+  /// [contextMessages] are provided, they will be recorded with the error.
+  AnalysisError.withNamedArguments(this.source, int offset, int length,
+      this.errorCode, Map<String, dynamic> arguments,
+      {List<DiagnosticMessage> contextMessages = const []}) {
+    String messageText = applyArgumentsToTemplate(errorCode.message, arguments);
+    String correctionTemplate = errorCode.correction;
+    if (correctionTemplate != null) {
+      _correction = applyArgumentsToTemplate(correctionTemplate, arguments);
+    }
+    _problemMessage = DiagnosticMessageImpl(
+        filePath: source?.fullName,
+        length: length,
+        message: messageText,
+        offset: offset);
+    _contextMessages = contextMessages;
+  }
+
   @override
   List<DiagnosticMessage> get contextMessages => _contextMessages;
 
diff --git a/pkg/analyzer/lib/error/listener.dart b/pkg/analyzer/lib/error/listener.dart
index ffb3b98..e1ab6be 100644
--- a/pkg/analyzer/lib/error/listener.dart
+++ b/pkg/analyzer/lib/error/listener.dart
@@ -143,8 +143,8 @@
   /// the error is specified by the given [offset] and [length].
   void reportErrorMessage(
       ErrorCode errorCode, int offset, int length, Message message) {
-    _errorListener.onError(AnalysisError.forValues(
-        _source, offset, length, errorCode, message.message, message.tip));
+    _errorListener.onError(AnalysisError.withNamedArguments(
+        _source, offset, length, errorCode, message.arguments));
   }
 
   /// Report an error with the given [errorCode] and [arguments]. The [node] is
diff --git a/pkg/analyzer/lib/src/error/codes.dart b/pkg/analyzer/lib/src/error/codes.dart
index 84018fc..db09ca0 100644
--- a/pkg/analyzer/lib/src/error/codes.dart
+++ b/pkg/analyzer/lib/src/error/codes.dart
@@ -3445,7 +3445,7 @@
   // ```dart
   // void f(int a, int b) {}
   // void g() {
-  //   f[!(1, 2, 3)!];
+  //   f(1, 2, [!3!]);
   // }
   // ```
   //
@@ -3486,7 +3486,7 @@
   // %language=2.9
   // void f(int a, int b, {int c}) {}
   // void g() {
-  //   f[!(1, 2, 3)!];
+  //   f(1, 2, [!3!]);
   // }
   // ```
   //
diff --git a/pkg/analyzer/lib/src/fasta/error_converter.dart b/pkg/analyzer/lib/src/fasta/error_converter.dart
index 2fd3549..bfc91e0 100644
--- a/pkg/analyzer/lib/src/fasta/error_converter.dart
+++ b/pkg/analyzer/lib/src/fasta/error_converter.dart
@@ -23,7 +23,7 @@
       String analyzerCode, int offset, int length, Message message) {
     Map<String, dynamic> arguments = message.arguments;
 
-    String lexeme() => (arguments['token'] as Token).lexeme;
+    String lexeme() => (arguments['lexeme'] as Token).lexeme;
 
     switch (analyzerCode) {
       case "ASYNC_FOR_IN_WRONG_CONTEXT":
@@ -350,8 +350,12 @@
     if (index != null && index > 0 && index < fastaAnalyzerErrorCodes.length) {
       ErrorCode errorCode = fastaAnalyzerErrorCodes[index];
       if (errorCode != null) {
-        errorReporter.reportError(AnalysisError.forValues(errorReporter.source,
-            offset, length, errorCode, message.message, message.tip));
+        errorReporter.reportError(AnalysisError.withNamedArguments(
+            errorReporter.source,
+            offset,
+            length,
+            errorCode,
+            message.arguments));
         return;
       }
     }
@@ -368,8 +372,8 @@
   void _reportByCode(
       ErrorCode errorCode, Message message, int offset, int length) {
     if (errorReporter != null) {
-      errorReporter.reportError(AnalysisError.forValues(errorReporter.source,
-          offset, length, errorCode, message.message, null));
+      errorReporter.reportError(AnalysisError.withNamedArguments(
+          errorReporter.source, offset, length, errorCode, message.arguments));
     }
   }
 }
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 4ffeb7e..2112e2d 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -2215,7 +2215,8 @@
   /// correspond to the list of arguments.
   ///
   /// An error will be reported to [onError] if any of the arguments cannot be
-  /// matched to a parameter. onError can be null to ignore the error.
+  /// matched to a parameter. onError will be provided the node of the first
+  /// argument that is not matched. onError can be null to ignore the error.
   ///
   /// Returns the parameters that correspond to the arguments. If no parameter
   /// matched an argument, that position will be `null` in the list.
@@ -2254,6 +2255,7 @@
     int positionalArgumentCount = 0;
     HashSet<String> usedNames;
     bool noBlankArguments = true;
+    Expression firstUnresolvedArgument;
     for (int i = 0; i < argumentCount; i++) {
       Expression argument = arguments[i];
       if (argument is NamedExpression) {
@@ -2284,6 +2286,8 @@
         positionalArgumentCount++;
         if (unnamedIndex < unnamedParameterCount) {
           resolvedParameters[i] = unnamedParameters[unnamedIndex++];
+        } else {
+          firstUnresolvedArgument ??= argument;
         }
       }
     }
@@ -2304,7 +2308,7 @@
         errorCode = CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS;
       }
       if (onError != null) {
-        onError(errorCode, argumentList,
+        onError(errorCode, firstUnresolvedArgument,
             [unnamedParameterCount, positionalArgumentCount]);
       }
     }
diff --git a/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
index 7ed306d..bf3ee80 100644
--- a/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
@@ -1039,7 +1039,7 @@
           CompileTimeErrorCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER,
           71,
           3),
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 74, 3),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 75, 1),
     ]);
 
     assertMethodInvocation2(
@@ -1348,7 +1348,7 @@
 }
 ''', [
       error(HintCode.UNUSED_IMPORT, 7, 11),
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 65, 7),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 66, 5),
     ]);
 
     var import = findElement.importFind('dart:math');
diff --git a/pkg/analyzer/test/src/diagnostics/extra_positional_arguments_test.dart b/pkg/analyzer/test/src/diagnostics/extra_positional_arguments_test.dart
index 8bb30fb..6e73263 100644
--- a/pkg/analyzer/test/src/diagnostics/extra_positional_arguments_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/extra_positional_arguments_test.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'package:analyzer/src/error/codes.dart';
+import 'package:analyzer/src/generated/parser.dart' show ParserErrorCode;
 import 'package:test_reflective_loader/test_reflective_loader.dart';
 
 import '../dart/resolution/context_collection_resolution.dart';
@@ -26,8 +27,8 @@
   const A(0);
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 50,
-          3),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 51,
+          1),
     ]);
   }
 
@@ -40,8 +41,8 @@
   const B() : super(0);
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 71,
-          3),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 72,
+          1),
     ]);
   }
 
@@ -51,8 +52,8 @@
   (int x, {int y}) {} (0, 1);
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 31,
-          6),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 35,
+          1),
     ]);
   }
 
@@ -63,8 +64,23 @@
   f(0, 1, '2');
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 25,
-          11),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 26,
+          1),
+    ]);
+  }
+
+  test_partiallyTypedName() async {
+    await assertErrorsInCode(r'''
+f({int xx, int yy, int zz}) {}
+
+main() {
+  f(xx: 1, yy: 2, z);
+}
+''', [
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED, 59,
+          1),
+      error(ParserErrorCode.POSITIONAL_AFTER_NAMED_ARGUMENT, 59, 1),
+      error(CompileTimeErrorCode.UNDEFINED_IDENTIFIER, 59, 1),
     ]);
   }
 }
@@ -80,7 +96,7 @@
   const A(0);
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 43, 3),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 44, 1),
     ]);
   }
 
@@ -93,7 +109,7 @@
   const B() : super(0);
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 64, 3),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 65, 1),
     ]);
   }
 
@@ -103,7 +119,7 @@
   (int x) {} (0, 1);
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 22, 6),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 26, 1),
     ]);
   }
 
@@ -114,7 +130,7 @@
   f(0, 1, '2');
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 19, 11),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 20, 1),
     ]);
   }
 }
diff --git a/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart b/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart
index 1bb51ac..a5c4ffc 100644
--- a/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/receiver_of_type_never_test.dart
@@ -324,7 +324,7 @@
   x.toString(1 + 2);
 }
 ''', [
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 31, 7),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 32, 5),
     ]);
 
     assertMethodInvocation(
diff --git a/pkg/analyzer/test/src/task/strong/checker_test.dart b/pkg/analyzer/test/src/task/strong/checker_test.dart
index c8fda9d..256431b 100644
--- a/pkg/analyzer/test/src/task/strong/checker_test.dart
+++ b/pkg/analyzer/test/src/task/strong/checker_test.dart
@@ -2278,11 +2278,11 @@
 }
 ''', [
       error(HintCode.UNUSED_LOCAL_VARIABLE, 71, 1),
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 117, 9),
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 137, 15),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 124, 1),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 148, 3),
       error(CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS, 159, 3),
       error(CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS, 173, 5),
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 189, 9),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 196, 1),
       error(CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, 190, 1),
       error(CompileTimeErrorCode.ARGUMENT_TYPE_NOT_ASSIGNABLE, 193, 1),
       error(CompileTimeErrorCode.NOT_ENOUGH_POSITIONAL_ARGUMENTS, 209, 3),
diff --git a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
index b7e1600..b182fa7 100644
--- a/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
+++ b/pkg/analyzer/test/src/task/strong/inferred_type_test.dart
@@ -689,7 +689,7 @@
 }
 ''', [
       error(HintCode.UNUSED_LOCAL_VARIABLE, 29, 1),
-      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 38, 4),
+      error(CompileTimeErrorCode.EXTRA_POSITIONAL_ARGUMENTS, 39, 2),
     ]);
 
     var a = findLocalVariable(_resultUnit, 'a');
diff --git a/pkg/analyzer/tool/diagnostics/diagnostics.md b/pkg/analyzer/tool/diagnostics/diagnostics.md
index d395869..a4e58e0 100644
--- a/pkg/analyzer/tool/diagnostics/diagnostics.md
+++ b/pkg/analyzer/tool/diagnostics/diagnostics.md
@@ -3149,7 +3149,7 @@
 {% prettify dart tag=pre+code %}
 void f(int a, int b) {}
 void g() {
-  f[!(1, 2, 3)!];
+  f(1, 2, [!3!]);
 }
 {% endprettify %}
 
@@ -3183,7 +3183,7 @@
 {% prettify dart tag=pre+code %}
 void f(int a, int b, {int c}) {}
 void g() {
-  f[!(1, 2, 3)!];
+  f(1, 2, [!3!]);
 }
 {% endprettify %}
 
diff --git a/pkg/dartdev/test/load_from_dill_test.dart b/pkg/dartdev/test/load_from_dill_test.dart
new file mode 100644
index 0000000..6de6c6c
--- /dev/null
+++ b/pkg/dartdev/test/load_from_dill_test.dart
@@ -0,0 +1,29 @@
+// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'dart:io';
+
+import 'package:test/test.dart';
+
+import 'utils.dart';
+
+void main() {
+  TestProject p;
+
+  tearDown(() => p?.dispose());
+
+  test("Fallback to dartdev.dill from dartdev.dart.snapshot for 'Hello World'",
+      () {
+    p = project(mainSrc: "void main() { print('Hello World'); }");
+    // The DartDev snapshot includes the --use-bare-instructions flag. If
+    // --no-use-bare-instructions is passed, the VM will fail to load the
+    // snapshot and should fall back to using the DartDev dill file.
+    ProcessResult result =
+        p.runSync(['--no-use-bare-instructions', 'run', p.relativeFilePath]);
+
+    expect(result.stdout, contains('Hello World'));
+    expect(result.stderr, isEmpty);
+    expect(result.exitCode, 0);
+  });
+}
diff --git a/pkg/front_end/lib/src/fasta/source/source_loader.dart b/pkg/front_end/lib/src/fasta/source/source_loader.dart
index bc880e8..1dbe91f 100644
--- a/pkg/front_end/lib/src/fasta/source/source_loader.dart
+++ b/pkg/front_end/lib/src/fasta/source/source_loader.dart
@@ -1464,10 +1464,18 @@
 }
 
 class _GrowableList<E> {
-  factory _GrowableList() => null;
+  factory _GrowableList(int length) => null;
   factory _GrowableList.empty() => null;
   factory _GrowableList.filled() => null;
   factory _GrowableList.generate(int length, E generator(int index)) => null;
+  factory _GrowableList._literal1(E e0) => null;
+  factory _GrowableList._literal2(E e0, E e1) => null;
+  factory _GrowableList._literal3(E e0, E e1, E e2) => null;
+  factory _GrowableList._literal4(E e0, E e1, E e2, E e3) => null;
+  factory _GrowableList._literal5(E e0, E e1, E e2, E e3, E e4) => null;
+  factory _GrowableList._literal6(E e0, E e1, E e2, E e3, E e4, E e5) => null;
+  factory _GrowableList._literal7(E e0, E e1, E e2, E e3, E e4, E e5, E e6) => null;
+  factory _GrowableList._literal8(E e0, E e1, E e2, E e3, E e4, E e5, E e6, E e7) => null;
 }
 
 class _List<E> {
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect
index 0ec0417..5689179 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.expect
@@ -41,7 +41,7 @@
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
         handleNoTypeArguments([)
-        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
         handleIdentifier(, expression)
         handleNoTypeArguments(])
         handleNoArguments(])
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect
index 923a947..091a47f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_00.dart.intertwined.expect
@@ -113,7 +113,7 @@
                                                       parseSend((, expression)
                                                         ensureIdentifier((, expression)
                                                           reportRecoverableErrorWithToken(], Instance of 'Template<(Token) => Message>')
-                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
                                                           rewriter()
                                                           listener: handleIdentifier(, expression)
                                                         listener: handleNoTypeArguments(])
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect
index 7cd89f8..75b5105 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.expect
@@ -199,7 +199,7 @@
                     endArguments(0, (, ))
                     handleSend(D, ,)
                     handleRecoverableError(PositionalAfterNamedArgument, ], ])
-                    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+                    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
                     handleIdentifier(, expression)
                     handleNoTypeArguments(])
                     handleNoArguments(])
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
index 19fb2c9..a41ebf5 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_01.dart.intertwined.expect
@@ -449,7 +449,7 @@
                                                                               parseSend(,, expression)
                                                                                 ensureIdentifier(,, expression)
                                                                                   reportRecoverableErrorWithToken(], Instance of 'Template<(Token) => Message>')
-                                                                                    listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+                                                                                    listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
                                                                                   rewriter()
                                                                                   listener: handleIdentifier(, expression)
                                                                                 listener: handleNoTypeArguments(])
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect
index 8031306..9598908 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.expect
@@ -31,5 +31,5 @@
     endTopLevelMethod(void, null, })
   endTopLevelDeclaration()
   handleErrorToken(UnmatchedToken([))
-  handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], token: [}], UnmatchedToken([), UnmatchedToken([))
+  handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], lexeme: [}], UnmatchedToken([), UnmatchedToken([))
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect
index e1b6a96..a83baa2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_02.dart.intertwined.expect
@@ -63,5 +63,5 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(UnmatchedToken([))
     listener: handleErrorToken(UnmatchedToken([))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], token: [}], UnmatchedToken([), UnmatchedToken([))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], lexeme: [}], UnmatchedToken([), UnmatchedToken([))
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect
index cd7549e..e053cfc 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.expect
@@ -36,14 +36,14 @@
           handleSend(foo, ))
           handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
           handleExpressionStatement(;)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
           handleIdentifier(, expression)
           handleNoTypeArguments())
           handleNoArguments())
           handleSend(, ))
           handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
           handleExpressionStatement(;)
-          handleRecoverableError(Message[UnexpectedToken, Unexpected token ')'., null, {token: )}], ), ))
+          handleRecoverableError(Message[UnexpectedToken, Unexpected token ')'., null, {lexeme: )}], ), ))
           handleEmptyStatement(;)
         endBlock(3, {, }, BlockKind(statement))
       endBlockFunctionBody(1, {, })
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect
index 29aa2f0..787bbaa 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_03.dart.intertwined.expect
@@ -72,7 +72,7 @@
                                   parseSend(;, expression)
                                     ensureIdentifier(;, expression)
                                       reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                       rewriter()
                                       listener: handleIdentifier(, expression)
                                     listener: handleNoTypeArguments())
@@ -84,8 +84,8 @@
                               listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                             rewriter()
                           listener: handleExpressionStatement(;)
-                reportRecoverableError(), Message[UnexpectedToken, Unexpected token ')'., null, {token: )}])
-                  listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ')'., null, {token: )}], ), ))
+                reportRecoverableError(), Message[UnexpectedToken, Unexpected token ')'., null, {lexeme: )}])
+                  listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ')'., null, {lexeme: )}], ), ))
                 notEofOrValue(}, ;)
                 parseStatement())
                   parseStatementX())
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect
index 1afd0ff..d4b6a44 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.expect
@@ -44,14 +44,14 @@
               handleSend(bar, ))
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
               handleExpressionStatement(;)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
               handleIdentifier(, expression)
               handleNoTypeArguments())
               handleNoArguments())
               handleSend(, ))
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
               handleExpressionStatement(;)
-              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
               handleEmptyStatement(;)
             endBlockFunctionBody(3, {, })
           endFunctionExpression((, ))
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect
index 16e5973..a3b498e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_04.dart.intertwined.expect
@@ -104,7 +104,7 @@
                                                                       parseSend(;, expression)
                                                                         ensureIdentifier(;, expression)
                                                                           reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                                                           rewriter()
                                                                           listener: handleIdentifier(, expression)
                                                                         listener: handleNoTypeArguments())
@@ -116,8 +116,8 @@
                                                                   listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                                                                 rewriter()
                                                               listener: handleExpressionStatement(;)
-                                                    reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-                                                      listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+                                                    reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+                                                      listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
                                                     notEofOrValue(}, ;)
                                                     parseStatement())
                                                       parseStatementX())
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect
index cbe4515..aeaa26a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.expect
@@ -32,5 +32,5 @@
     endTopLevelMethod(void, null, })
   endTopLevelDeclaration()
   handleErrorToken(UnmatchedToken([))
-  handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], token: [}], UnmatchedToken([), UnmatchedToken([))
+  handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], lexeme: [}], UnmatchedToken([), UnmatchedToken([))
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect
index 3bc07e7..3e561c0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_05.dart.intertwined.expect
@@ -69,5 +69,5 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(UnmatchedToken([))
     listener: handleErrorToken(UnmatchedToken([))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], token: [}], UnmatchedToken([), UnmatchedToken([))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ']' to match '['., null, {string: ], lexeme: [}], UnmatchedToken([), UnmatchedToken([))
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect
index 9e03ffc..38d9d89 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.expect
@@ -27,7 +27,7 @@
             handleNoConstructorReferenceContinuationAfterTypeArguments(()
           endConstructorReference(C, null, ()
           beginArguments(()
-            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {token: ;}], ;, ;)
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {lexeme: ;}], ;, ;)
             handleIdentifier(, expression)
             handleNoTypeArguments(;)
             handleNoArguments(;)
@@ -39,5 +39,5 @@
     endTopLevelMethod(main, null, })
   endTopLevelDeclaration()
   handleErrorToken(UnmatchedToken(())
-  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect
index b87515d..0964dbc 100644
--- a/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/bracket_mismatch_06.dart.intertwined.expect
@@ -57,7 +57,7 @@
                                           parseSend((, expression)
                                             ensureIdentifier((, expression)
                                               reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
-                                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {token: ;}], ;, ;)
+                                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {lexeme: ;}], ;, ;)
                                               rewriter()
                                               listener: handleIdentifier(, expression)
                                             listener: handleNoTypeArguments(;)
@@ -76,5 +76,5 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken(())
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect
index d241e52..f1f56f6 100644
--- a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.expect
@@ -101,11 +101,11 @@
     endTopLevelMethod(main, null, })
   endTopLevelDeclaration()
   handleErrorToken(NonAsciiIdentifierToken(230))
-  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, codePoint: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
+  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, unicode: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
   handleErrorToken(NonAsciiIdentifierToken(198))
-  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, codePoint: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
+  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, unicode: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
   handleErrorToken(NonAsciiIdentifierToken(230))
-  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, codePoint: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
+  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, unicode: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
   handleErrorToken(NonAsciiIdentifierToken(198))
-  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, codePoint: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
+  handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, unicode: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect
index 7413d26..4c19be1 100644
--- a/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/comment_on_non_ascii_identifier.dart.intertwined.expect
@@ -224,11 +224,11 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(NonAsciiIdentifierToken(230))
     listener: handleErrorToken(NonAsciiIdentifierToken(230))
-    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, codePoint: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
+    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, unicode: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
     listener: handleErrorToken(NonAsciiIdentifierToken(198))
-    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, codePoint: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
+    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, unicode: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
     listener: handleErrorToken(NonAsciiIdentifierToken(230))
-    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, codePoint: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
+    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'æ' (U+00E6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: æ, unicode: 230}], NonAsciiIdentifierToken(230), NonAsciiIdentifierToken(230))
     listener: handleErrorToken(NonAsciiIdentifierToken(198))
-    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, codePoint: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
+    listener: handleRecoverableError(Message[NonAsciiIdentifier, The non-ASCII character 'Æ' (U+00C6) can't be used in identifiers, only in strings and comments., Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)., {character: Æ, unicode: 198}], NonAsciiIdentifierToken(198), NonAsciiIdentifierToken(198))
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect
index 91ce6a3..4a792a7 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.expect
@@ -96,7 +96,7 @@
             endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
             handleNoInitializers()
             handleAsyncModifier(null, null)
-            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}], /, /)
+            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}], /, /)
             handleInvalidFunctionBody({)
           endClassConstructor(null, Foo, (, null, })
         endMember()
@@ -137,14 +137,14 @@
             endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
             handleNoInitializers()
             handleAsyncModifier(null, null)
-            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             handleInvalidFunctionBody({)
           endClassConstructor(null, Foo, (, null, })
         endMember()
         beginMetadataStar(.)
         endMetadataStar(0)
         beginMember()
-          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {token: .}], ., .)
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {lexeme: .}], ., .)
           handleInvalidMember(.)
         endMember()
         beginMetadataStar(/)
@@ -184,7 +184,7 @@
             endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
             handleNoInitializers()
             handleAsyncModifier(null, null)
-            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}], /, /)
+            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}], /, /)
             handleInvalidFunctionBody({)
           endClassMethod(null, foo, (, null, })
         endMember()
@@ -225,14 +225,14 @@
             endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
             handleNoInitializers()
             handleAsyncModifier(null, null)
-            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             handleInvalidFunctionBody({)
           endClassMethod(null, foo, (, null, })
         endMember()
         beginMetadataStar(.)
         endMetadataStar(0)
         beginMember()
-          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {token: .}], ., .)
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {lexeme: .}], ., .)
           handleInvalidMember(.)
         endMember()
         beginMetadataStar(/)
diff --git a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
index 99def95..3c1d1d2 100644
--- a/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/constructor_recovery_operator.crash_dart.intertwined.expect
@@ -54,8 +54,8 @@
                 inPlainSync()
                 parseFunctionBody(), false, true)
                   ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-                    reportRecoverableError(/, Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}])
-                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}], /, /)
+                    reportRecoverableError(/, Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}])
+                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}], /, /)
                     insertBlock())
                       rewriter()
                       rewriter()
@@ -149,8 +149,8 @@
                 inPlainSync()
                 parseFunctionBody(), false, true)
                   ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-                    reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+                    reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
                     insertBlock())
                       rewriter()
                       rewriter()
@@ -165,7 +165,7 @@
               listener: beginMember()
               recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {token: .}], ., .)
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {lexeme: .}], ., .)
                 listener: handleInvalidMember(.)
                 listener: endMember()
             notEofOrValue(}, /)
@@ -255,8 +255,8 @@
                 inPlainSync()
                 parseFunctionBody(), false, true)
                   ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-                    reportRecoverableError(/, Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}])
-                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}], /, /)
+                    reportRecoverableError(/, Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}])
+                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}], /, /)
                     insertBlock())
                       rewriter()
                       rewriter()
@@ -350,8 +350,8 @@
                 inPlainSync()
                 parseFunctionBody(), false, true)
                   ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-                    reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+                    reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
                     insertBlock())
                       rewriter()
                       rewriter()
@@ -366,7 +366,7 @@
               listener: beginMember()
               recoverFromInvalidMember(}, }, null, null, null, null, null, null, }, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {token: .}], ., .)
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got '.'., null, {lexeme: .}], ., .)
                 listener: handleInvalidMember(.)
                 listener: endMember()
             notEofOrValue(}, /)
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect
index ed0f16b..5d938b3 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.expect
@@ -29,16 +29,16 @@
       handleAsyncModifier(async, null)
       beginBlockFunctionBody({)
         beginForStatement(for)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
           handleIdentifier(, expression)
           handleNoTypeArguments())
           handleNoArguments())
           handleSend(, ))
           handleForInitializerExpressionStatement(, true)
           handleRecoverableError(Message[ExpectedButGot, Expected 'in' before this., null, {string: in}], ), ))
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
           beginForInExpression())
-            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
             handleIdentifier(, expression)
             handleNoTypeArguments())
             handleNoArguments())
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect
index e1a476f..cdf3a58 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_await_for.dart.intertwined.expect
@@ -42,7 +42,7 @@
                           parseSend((, expression)
                             ensureIdentifier((, expression)
                               reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                               rewriter()
                               listener: handleIdentifier(, expression)
                             listener: handleNoTypeArguments())
@@ -55,7 +55,7 @@
                 parseForInRest(, await, for, ))
                   parseForInLoopPartsRest(, await, for, ))
                     reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                     listener: beginForInExpression())
                     parseExpression(in)
                       parsePrecedenceExpression(in, 1, true)
@@ -64,7 +64,7 @@
                             parseSend(in, expression)
                               ensureIdentifier(in, expression)
                                 reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                 rewriter()
                                 listener: handleIdentifier(, expression)
                               listener: handleNoTypeArguments())
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect
index 3a5b7b2..0affd02 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.expect
@@ -29,14 +29,14 @@
       handleAsyncModifier(null, null)
       beginBlockFunctionBody({)
         beginForStatement(for)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
           handleIdentifier(, expression)
           handleNoTypeArguments())
           handleNoArguments())
           handleSend(, ))
           handleForInitializerExpressionStatement(, false)
           handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
           handleIdentifier(, expression)
           handleNoTypeArguments())
           handleNoArguments())
diff --git a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect
index 55ccd48..5b5f651 100644
--- a/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/empty_for.dart.intertwined.expect
@@ -42,7 +42,7 @@
                           parseSend((, expression)
                             ensureIdentifier((, expression)
                               reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                               rewriter()
                               listener: handleIdentifier(, expression)
                             listener: handleNoTypeArguments())
@@ -64,7 +64,7 @@
                               parseSend(;, expression)
                                 ensureIdentifier(;, expression)
                                   reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                    listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                    listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                   rewriter()
                                   listener: handleIdentifier(, expression)
                                 listener: handleNoTypeArguments())
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect
index 177e4b3..0b3a014 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.expect
@@ -71,11 +71,11 @@
     endTopLevelMethod(f, null, })
   endTopLevelDeclaration()
   handleErrorToken(UnmatchedToken(())
-  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
   handleErrorToken(UnmatchedToken(<))
-  handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, token: <}], UnmatchedToken(<), UnmatchedToken(<))
+  handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, lexeme: <}], UnmatchedToken(<), UnmatchedToken(<))
   handleErrorToken(UnmatchedToken(())
-  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
   handleErrorToken(UnmatchedToken({))
-  handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, token: {}], UnmatchedToken({), UnmatchedToken({))
+  handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, lexeme: {}], UnmatchedToken({), UnmatchedToken({))
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect
index 76915c7..117af04 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_38415.crash_dart.intertwined.expect
@@ -110,11 +110,11 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken(())
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken(<))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, token: <}], UnmatchedToken(<), UnmatchedToken(<))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, lexeme: <}], UnmatchedToken(<), UnmatchedToken(<))
     listener: handleErrorToken(UnmatchedToken(())
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken({))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, token: {}], UnmatchedToken({), UnmatchedToken({))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, lexeme: {}], UnmatchedToken({), UnmatchedToken({))
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect
index c392105..33f3de8 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.expect
@@ -43,7 +43,7 @@
         handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], S, S)
       endTypeArguments(1, <, >)
       handleType(n, null)
-      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
       // WARNING: Reporting at eof for .
       handleIdentifier(, topLevelFunctionDeclaration)
       handleNoTypeVariables()
@@ -52,13 +52,13 @@
       beginFormalParameters((, MemberKind.TopLevelMethod)
       endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
-      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got ''., null, {token: }], , )
+      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got ''., null, {lexeme: }], , )
       // WARNING: Reporting at eof for .
       handleInvalidFunctionBody({)
     endTopLevelMethod(n, null, })
   endTopLevelDeclaration()
   handleErrorToken(UnmatchedToken(())
-  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
   handleErrorToken(UnmatchedToken(<))
-  handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, token: <}], UnmatchedToken(<), UnmatchedToken(<))
+  handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, lexeme: <}], UnmatchedToken(<), UnmatchedToken(<))
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect
index e84daf8..cc9940e 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39024.crash_dart.intertwined.expect
@@ -21,9 +21,9 @@
         listener: endTypeArguments(1, <, >)
         listener: handleType(n, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelFunctionDeclaration, false)
-          insertSyntheticIdentifier(>, topLevelFunctionDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], messageOnToken: null)
-            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+          insertSyntheticIdentifier(>, topLevelFunctionDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], messageOnToken: null)
+            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelFunctionDeclaration)
@@ -43,8 +43,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(, Message[ExpectedFunctionBody, Expected a function body, but got ''., null, {token: }])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got ''., null, {token: }], , )
+            reportRecoverableError(, Message[ExpectedFunctionBody, Expected a function body, but got ''., null, {lexeme: }])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got ''., null, {lexeme: }], , )
               listener: // WARNING: Reporting at eof for .
             insertBlock())
               rewriter()
@@ -54,7 +54,7 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken(())
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken(<))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, token: <}], UnmatchedToken(<), UnmatchedToken(<))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, lexeme: <}], UnmatchedToken(<), UnmatchedToken(<))
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect
index d27aa77..6b960ce 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.expect
@@ -32,7 +32,7 @@
         endTypeVariable(., 0, null, null)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], Glib, Glib)
       endTypeVariables(<, >)
-      handleRecoverableError(Message[ExpectedType, Expected a type, but got ''., null, {token: }], , )
+      handleRecoverableError(Message[ExpectedType, Expected a type, but got ''., null, {lexeme: }], , )
       // WARNING: Reporting at eof for .
       handleIdentifier(, typeReference)
       handleNoTypeArguments()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect
index f0295b4..c85f9e8 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39033.crash_dart.intertwined.expect
@@ -27,7 +27,7 @@
           listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], Glib, Glib)
         listener: endTypeVariables(<, >)
         reportRecoverableErrorWithToken(, Instance of 'Template<(Token) => Message>')
-          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got ''., null, {token: }], , )
+          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got ''., null, {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
         listener: handleIdentifier(, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.expect
index 431957c..11497d9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.expect
@@ -20,7 +20,7 @@
   beginMetadataStar({)
   endMetadataStar(0)
   beginTopLevelMember({)
-    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {lexeme: {}], {, {)
     beginBlock({, BlockKind(invalid))
       beginTypeArguments(<)
         handleIdentifier(, typeReference)
@@ -34,9 +34,9 @@
     handleInvalidTopLevelDeclaration(})
   endTopLevelDeclaration()
   handleErrorToken(UnmatchedToken(())
-  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+  handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
   handleErrorToken(UnmatchedToken(<))
-  handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, token: <}], UnmatchedToken(<), UnmatchedToken(<))
+  handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, lexeme: <}], UnmatchedToken(<), UnmatchedToken(<))
   handleErrorToken(UnmatchedToken({))
-  handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, token: {}], UnmatchedToken({), UnmatchedToken({))
+  handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, lexeme: {}], UnmatchedToken({), UnmatchedToken({))
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.intertwined.expect
index feb6d9d..c386263 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39058.crash_dart.intertwined.expect
@@ -9,7 +9,7 @@
     listener: beginTopLevelMember({)
     parseInvalidTopLevelDeclaration(UnmatchedToken({))
       reportRecoverableErrorWithToken({, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {lexeme: {}], {, {)
       parseInvalidBlock(UnmatchedToken({))
         parseBlock(UnmatchedToken({), BlockKind(invalid))
           ensureBlock(UnmatchedToken({), null, null)
@@ -51,9 +51,9 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken(())
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), token: (}], UnmatchedToken((), UnmatchedToken(())
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find ')' to match '('., null, {string: ), lexeme: (}], UnmatchedToken((), UnmatchedToken(())
     listener: handleErrorToken(UnmatchedToken(<))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, token: <}], UnmatchedToken(<), UnmatchedToken(<))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '>' to match '<'., null, {string: >, lexeme: <}], UnmatchedToken(<), UnmatchedToken(<))
     listener: handleErrorToken(UnmatchedToken({))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, token: {}], UnmatchedToken({), UnmatchedToken({))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, lexeme: {}], UnmatchedToken({), UnmatchedToken({))
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.expect
index b249f5c..e04d438 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar({)
   endMetadataStar(0)
   beginTopLevelMember({)
-    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {lexeme: {}], {, {)
     beginBlock({, BlockKind(invalid))
       beginTypeArguments(<)
         handleIdentifier(, typeReference)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.intertwined.expect
index 41508be..caab7bd 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39058_prime.crash_dart.intertwined.expect
@@ -9,7 +9,7 @@
     listener: beginTopLevelMember({)
     parseInvalidTopLevelDeclaration()
       reportRecoverableErrorWithToken({, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {token: {}], {, {)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '{'., null, {lexeme: {}], {, {)
       parseInvalidBlock()
         parseBlock(, BlockKind(invalid))
           ensureBlock(, null, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect
index 9d88a31..f1b7c51 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.expect
@@ -42,7 +42,7 @@
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], A, A)
           endVariablesDeclaration(1, ;)
           beginTypeArguments(<)
-            handleRecoverableError(Message[ExpectedType, Expected a type, but got '}'., null, {token: }}], }, })
+            handleRecoverableError(Message[ExpectedType, Expected a type, but got '}'., null, {lexeme: }}], }, })
             handleIdentifier(, typeReference)
             handleNoTypeArguments(})
             handleType(, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect
index 5c0352c..c6ddd9b 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39060.dart.intertwined.expect
@@ -70,7 +70,7 @@
                                   parseLiteralListSetMapOrFunction(;, null)
                                     listener: beginTypeArguments(<)
                                     reportRecoverableErrorWithToken(}, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '}'., null, {token: }}], }, })
+                                      listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '}'., null, {lexeme: }}], }, })
                                     rewriter()
                                     listener: handleIdentifier(, typeReference)
                                     listener: handleNoTypeArguments(})
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect
index fff362e..43a90df 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.expect
@@ -36,13 +36,13 @@
   beginMetadataStar(()
   endMetadataStar(0)
   beginTopLevelMember(()
-    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '('., null, {token: (}], (, ()
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '('., null, {lexeme: (}], (, ()
     handleInvalidTopLevelDeclaration(()
   endTopLevelDeclaration())
   beginMetadataStar())
   endMetadataStar(0)
   beginTopLevelMember())
-    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {lexeme: )}], ), ))
     handleInvalidTopLevelDeclaration())
   endTopLevelDeclaration(async)
   beginMetadataStar(async)
@@ -76,7 +76,7 @@
         handleRecoverableError(Message[ExpectedAfterButGot, Expected '>' after this., null, {string: >}], c, c)
       endTypeArguments(1, <, >)
       handleType(b, null)
-      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
       // WARNING: Reporting at eof for .
       handleIdentifier(, topLevelVariableDeclaration)
       handleNoFieldInitializer()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect
index 4eab8e2..9d7c575 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39202.crash_dart.intertwined.expect
@@ -9,7 +9,7 @@
     listener: beginTopLevelMember(()
     parseInvalidTopLevelDeclaration()
       reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '('., null, {token: (}], (, ()
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '('., null, {lexeme: (}], (, ()
       listener: handleInvalidTopLevelDeclaration(()
   listener: endTopLevelDeclaration())
   parseTopLevelDeclarationImpl((, Instance of 'DirectiveContext')
@@ -19,7 +19,7 @@
     listener: beginTopLevelMember())
     parseInvalidTopLevelDeclaration(()
       reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {token: )}], ), ))
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ')'., null, {lexeme: )}], ), ))
       listener: handleInvalidTopLevelDeclaration())
   listener: endTopLevelDeclaration(async)
   parseTopLevelDeclarationImpl(), Instance of 'DirectiveContext')
@@ -88,9 +88,9 @@
         listener: endTypeArguments(1, <, >)
         listener: handleType(b, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
-          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], messageOnToken: null)
-            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], messageOnToken: null)
+            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect
index ee6d967..dd50f65 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.expect
@@ -40,7 +40,7 @@
             endFormalParameters(0, (, ), MemberKind.NonStaticMethod)
             handleNoInitializers()
             handleAsyncModifier(null, null)
-            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}], /, /)
+            handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}], /, /)
             handleInvalidFunctionBody({)
           endClassConstructor(null, C, (, null, })
         endMember()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
index f3f8e88..e8df55f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_39230.crash_dart.intertwined.expect
@@ -54,8 +54,8 @@
                 inPlainSync()
                 parseFunctionBody(), false, true)
                   ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-                    reportRecoverableError(/, Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}])
-                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {token: /}], /, /)
+                    reportRecoverableError(/, Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}])
+                      listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '/'., null, {lexeme: /}], /, /)
                     insertBlock())
                       rewriter()
                       rewriter()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect
index fe48acf..e4aa63a 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.expect
@@ -76,7 +76,7 @@
       handleClassWithClause(with)
       handleClassOrMixinImplements(null, 0)
       handleClassHeader(class, class, null)
-      handleRecoverableError(Message[UnexpectedToken, Unexpected token '>'., null, {token: >}], >, >)
+      handleRecoverableError(Message[UnexpectedToken, Unexpected token '>'., null, {lexeme: >}], >, >)
       handleNoType(>)
       handleClassExtends(null, 1)
       handleClassNoWithClause()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect
index ae6d79e..6f4bbfe9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_41265.crash_dart.intertwined.expect
@@ -123,7 +123,7 @@
               parseClassOrMixinImplementsOpt())
             skipUnexpectedTokenOpt(), [extends, with, implements, {])
               reportRecoverableErrorWithToken(>, Instance of 'Template<(Token) => Message>')
-                listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token '>'., null, {token: >}], >, >)
+                listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token '>'., null, {lexeme: >}], >, >)
             parseClassExtendsOpt(>)
               listener: handleNoType(>)
               listener: handleClassExtends(null, 1)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect
index 206203b..c04b45f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.expect
@@ -26,14 +26,14 @@
   beginMetadataStar(Stream)
   endMetadataStar(0)
   beginTopLevelMember(Stream)
-    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
     beginFields()
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
         beginTypeArguments(<)
-          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {token: >>}], >>, >>)
+          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {lexeme: >>}], >>, >>)
           handleIdentifier(, typeReference)
           handleNoTypeArguments(>>)
           handleType(, null)
@@ -41,7 +41,7 @@
         handleType(List, null)
       endTypeArguments(1, <, >)
       handleType(Stream, null)
-      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
       // WARNING: Reporting at eof for .
       handleIdentifier(, topLevelVariableDeclaration)
       handleNoFieldInitializer()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect
index d645359..25548f5 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Stream)
       insertSyntheticIdentifier(>, methodDeclaration, message: null, messageOnToken: null)
-        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
       parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
@@ -22,7 +22,7 @@
           listener: handleIdentifier(List, typeReference)
         listener: beginTypeArguments(<)
         reportRecoverableErrorWithToken(>>, Instance of 'Template<(Token) => Message>')
-          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {token: >>}], >>, >>)
+          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {lexeme: >>}], >>, >>)
         rewriter()
         listener: handleIdentifier(, typeReference)
         listener: handleNoTypeArguments(>>)
@@ -32,9 +32,9 @@
         listener: endTypeArguments(1, <, >)
         listener: handleType(Stream, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
-          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], messageOnToken: null)
-            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], messageOnToken: null)
+            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect
index 20973c0..308e34f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.expect
@@ -20,14 +20,14 @@
   beginMetadataStar(Stream)
   endMetadataStar(0)
   beginTopLevelMember(Stream)
-    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
     beginFields()
       handleIdentifier(Stream, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
         beginTypeArguments(<)
-          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>'., null, {token: >}], >, >)
+          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>'., null, {lexeme: >}], >, >)
           handleIdentifier(, typeReference)
           handleNoTypeArguments(>)
           handleType(, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect
index f21362a..3aface3 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Stream)
       insertSyntheticIdentifier(>, methodDeclaration, message: null, messageOnToken: null)
-        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
       parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
@@ -22,7 +22,7 @@
           listener: handleIdentifier(List, typeReference)
         listener: beginTypeArguments(<)
         reportRecoverableErrorWithToken(>, Instance of 'Template<(Token) => Message>')
-          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>'., null, {token: >}], >, >)
+          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>'., null, {lexeme: >}], >, >)
         rewriter()
         listener: handleIdentifier(, typeReference)
         listener: handleNoTypeArguments(>)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect
index 7dd3706c..2d08e02 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.expect
@@ -13,7 +13,7 @@
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
         beginTypeArguments(<)
-          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {token: >>}], >>, >>)
+          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {lexeme: >>}], >>, >>)
           handleIdentifier(, typeReference)
           handleNoTypeArguments(>>)
           handleType(, null)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect
index 695a462..485e5a0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_2.crash_dart.intertwined.expect
@@ -17,7 +17,7 @@
           listener: handleIdentifier(List, typeReference)
         listener: beginTypeArguments(<)
         reportRecoverableErrorWithToken(>>, Instance of 'Template<(Token) => Message>')
-          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {token: >>}], >>, >>)
+          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {lexeme: >>}], >>, >>)
         rewriter()
         listener: handleIdentifier(, typeReference)
         listener: handleNoTypeArguments(>>)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect
index 6f86b60..b9194da 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.expect
@@ -22,7 +22,7 @@
   beginMetadataStar(Stream)
   endMetadataStar(0)
   beginTopLevelMember(Stream)
-    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
     beginFields()
       handleIdentifier(Stream, typeReference)
@@ -36,7 +36,7 @@
         handleType(List, null)
       endTypeArguments(1, <, >)
       handleType(Stream, null)
-      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
       // WARNING: Reporting at eof for .
       handleIdentifier(, topLevelVariableDeclaration)
       handleNoFieldInitializer()
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect
index b0dde00..69d438c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42229_prime_3.crash_dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Stream)
       insertSyntheticIdentifier(>, methodDeclaration, message: null, messageOnToken: null)
-        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
       parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
@@ -28,9 +28,9 @@
         listener: endTypeArguments(1, <, >)
         listener: handleType(Stream, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
-          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], messageOnToken: null)
-            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], messageOnToken: null)
+            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect
index 705b02f..26b7c41 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.expect
@@ -91,7 +91,7 @@
           handleNoArguments([])
           handleSend(foo, [])
           handleEndingBinaryExpression(..)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
           handleIdentifier(, expression)
           handleNoTypeArguments(])
           handleNoArguments(])
@@ -124,7 +124,7 @@
               handleNoArguments([])
               handleSend(foo, [])
               handleEndingBinaryExpression(..)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
               handleIdentifier(, expression)
               handleNoTypeArguments(])
               handleNoArguments(])
@@ -146,7 +146,7 @@
           handleNoArguments([)
           handleSend(foo, [)
           handleEndingBinaryExpression(..)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
           handleIdentifier(, expression)
           handleNoTypeArguments(])
           handleNoArguments(])
@@ -179,7 +179,7 @@
               handleNoArguments([)
               handleSend(foo, [)
               handleEndingBinaryExpression(..)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
               handleIdentifier(, expression)
               handleNoTypeArguments(])
               handleNoArguments(])
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect
index 9b81d3a..988b4a5 100644
--- a/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_42267.dart.intertwined.expect
@@ -203,7 +203,7 @@
                                   parseSend([, expression)
                                     ensureIdentifier([, expression)
                                       reportRecoverableErrorWithToken(], Instance of 'Template<(Token) => Message>')
-                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
                                       rewriter()
                                       listener: handleIdentifier(, expression)
                                     listener: handleNoTypeArguments(])
@@ -296,7 +296,7 @@
                                                                       parseSend([, expression)
                                                                         ensureIdentifier([, expression)
                                                                           reportRecoverableErrorWithToken(], Instance of 'Template<(Token) => Message>')
-                                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+                                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
                                                                           rewriter()
                                                                           listener: handleIdentifier(, expression)
                                                                         listener: handleNoTypeArguments(])
@@ -349,7 +349,7 @@
                                   parseSend([, expression)
                                     ensureIdentifier([, expression)
                                       reportRecoverableErrorWithToken(], Instance of 'Template<(Token) => Message>')
-                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
                                       rewriter()
                                       listener: handleIdentifier(, expression)
                                     listener: handleNoTypeArguments(])
@@ -439,7 +439,7 @@
                                                                       parseSend([, expression)
                                                                         ensureIdentifier([, expression)
                                                                           reportRecoverableErrorWithToken(], Instance of 'Template<(Token) => Message>')
-                                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {token: ]}], ], ])
+                                                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ']'., Try inserting an identifier before ']'., {lexeme: ]}], ], ])
                                                                           rewriter()
                                                                           listener: handleIdentifier(, expression)
                                                                         listener: handleNoTypeArguments(])
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect
index 9919798..07ee768 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.expect
@@ -178,7 +178,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(assert)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
             handleIdentifier(assert, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -218,7 +218,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(break)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
             handleIdentifier(break, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -232,7 +232,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(case)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
             handleIdentifier(case, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -246,7 +246,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(catch)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
             handleIdentifier(catch, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -260,7 +260,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(class)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
             handleIdentifier(class, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -274,7 +274,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(const)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
             handleIdentifier(const, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -288,7 +288,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(continue)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
             handleIdentifier(continue, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -315,7 +315,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(default)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
             handleIdentifier(default, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -342,7 +342,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(do)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
             handleIdentifier(do, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -369,7 +369,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(else)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
             handleIdentifier(else, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -383,7 +383,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(enum)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
             handleIdentifier(enum, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -410,7 +410,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(extends)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
             handleIdentifier(extends, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -463,7 +463,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(false)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
             handleIdentifier(false, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -477,7 +477,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(final)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
             handleIdentifier(final, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -491,7 +491,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(finally)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
             handleIdentifier(finally, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -505,7 +505,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(for)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
             handleIdentifier(for, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -558,7 +558,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(if)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
             handleIdentifier(if, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -598,7 +598,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(in)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
             handleIdentifier(in, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -638,7 +638,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(is)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
             handleIdentifier(is, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -704,7 +704,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(new)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
             handleIdentifier(new, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -718,7 +718,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(null)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
             handleIdentifier(null, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -823,7 +823,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(rethrow)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
             handleIdentifier(rethrow, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -837,7 +837,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(return)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
             handleIdentifier(return, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -903,7 +903,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(super)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
             handleIdentifier(super, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -917,7 +917,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(switch)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
             handleIdentifier(switch, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -944,7 +944,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(this)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
             handleIdentifier(this, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -958,7 +958,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(throw)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
             handleIdentifier(throw, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -972,7 +972,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(true)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
             handleIdentifier(true, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -986,7 +986,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(try)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
             handleIdentifier(try, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -1013,7 +1013,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(var)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
             handleIdentifier(var, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -1027,7 +1027,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(void)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
             handleIdentifier(void, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -1041,7 +1041,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(while)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
             handleIdentifier(while, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
@@ -1055,7 +1055,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(with)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
             handleIdentifier(with, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(42)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect
index ef8682d..6b24bf7 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_fields.dart.intertwined.expect
@@ -89,7 +89,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
                   listener: handleIdentifier(assert, fieldDeclaration)
                 parseFieldInitializerOpt(assert, assert, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -165,7 +165,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
                   listener: handleIdentifier(break, fieldDeclaration)
                 parseFieldInitializerOpt(break, break, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -193,7 +193,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
                   listener: handleIdentifier(case, fieldDeclaration)
                 parseFieldInitializerOpt(case, case, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -221,7 +221,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
                   listener: handleIdentifier(catch, fieldDeclaration)
                 parseFieldInitializerOpt(catch, catch, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -249,7 +249,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
                   listener: handleIdentifier(class, fieldDeclaration)
                 parseFieldInitializerOpt(class, class, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -277,7 +277,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
                   listener: handleIdentifier(const, fieldDeclaration)
                 parseFieldInitializerOpt(const, const, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -305,7 +305,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
                   listener: handleIdentifier(continue, fieldDeclaration)
                 parseFieldInitializerOpt(continue, continue, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -357,7 +357,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
                   listener: handleIdentifier(default, fieldDeclaration)
                 parseFieldInitializerOpt(default, default, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -409,7 +409,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
                   listener: handleIdentifier(do, fieldDeclaration)
                 parseFieldInitializerOpt(do, do, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -461,7 +461,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
                   listener: handleIdentifier(else, fieldDeclaration)
                 parseFieldInitializerOpt(else, else, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -489,7 +489,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
                   listener: handleIdentifier(enum, fieldDeclaration)
                 parseFieldInitializerOpt(enum, enum, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -541,7 +541,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
                   listener: handleIdentifier(extends, fieldDeclaration)
                 parseFieldInitializerOpt(extends, extends, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -641,7 +641,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
                   listener: handleIdentifier(false, fieldDeclaration)
                 parseFieldInitializerOpt(false, false, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -669,7 +669,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
                   listener: handleIdentifier(final, fieldDeclaration)
                 parseFieldInitializerOpt(final, final, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -697,7 +697,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
                   listener: handleIdentifier(finally, fieldDeclaration)
                 parseFieldInitializerOpt(finally, finally, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -725,7 +725,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
                   listener: handleIdentifier(for, fieldDeclaration)
                 parseFieldInitializerOpt(for, for, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -826,7 +826,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
                   listener: handleIdentifier(if, fieldDeclaration)
                 parseFieldInitializerOpt(if, if, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -902,7 +902,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
                   listener: handleIdentifier(in, fieldDeclaration)
                 parseFieldInitializerOpt(in, in, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -978,7 +978,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
                   listener: handleIdentifier(is, fieldDeclaration)
                 parseFieldInitializerOpt(is, is, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1102,7 +1102,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
                   listener: handleIdentifier(new, fieldDeclaration)
                 parseFieldInitializerOpt(new, new, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1130,7 +1130,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
                   listener: handleIdentifier(null, fieldDeclaration)
                 parseFieldInitializerOpt(null, null, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1327,7 +1327,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
                   listener: handleIdentifier(rethrow, fieldDeclaration)
                 parseFieldInitializerOpt(rethrow, rethrow, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1355,7 +1355,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
                   listener: handleIdentifier(return, fieldDeclaration)
                 parseFieldInitializerOpt(return, return, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1480,7 +1480,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
                   listener: handleIdentifier(super, fieldDeclaration)
                 parseFieldInitializerOpt(super, super, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1508,7 +1508,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
                   listener: handleIdentifier(switch, fieldDeclaration)
                 parseFieldInitializerOpt(switch, switch, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1559,7 +1559,7 @@
                   listener: handleType(int, null)
                   ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                     reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
-                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
                     listener: handleIdentifier(this, fieldDeclaration)
                   parseFieldInitializerOpt(this, this, null, null, null, null, DeclarationKind.Class, WrapperClass)
                     listener: beginFieldInitializer(=)
@@ -1587,7 +1587,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
                   listener: handleIdentifier(throw, fieldDeclaration)
                 parseFieldInitializerOpt(throw, throw, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1615,7 +1615,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
                   listener: handleIdentifier(true, fieldDeclaration)
                 parseFieldInitializerOpt(true, true, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1643,7 +1643,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
                   listener: handleIdentifier(try, fieldDeclaration)
                 parseFieldInitializerOpt(try, try, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1695,7 +1695,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
                   listener: handleIdentifier(var, fieldDeclaration)
                 parseFieldInitializerOpt(var, var, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1723,7 +1723,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
                   listener: handleIdentifier(void, fieldDeclaration)
                 parseFieldInitializerOpt(void, void, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1751,7 +1751,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
                   listener: handleIdentifier(while, fieldDeclaration)
                 parseFieldInitializerOpt(while, while, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
@@ -1779,7 +1779,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, fieldDeclaration)
                 parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.Class, WrapperClass)
                   listener: beginFieldInitializer(=)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect
index c3ffe0e..8fcefc7 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.expect
@@ -608,7 +608,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(assert)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
             handleIdentifier(assert, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -781,7 +781,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(break)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
             handleIdentifier(break, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -814,7 +814,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {token: break}], break, break)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {lexeme: break}], break, break)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(break)
                 handleNoArguments(break)
@@ -846,7 +846,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(case)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
             handleIdentifier(case, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -879,7 +879,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
                 handleIdentifier(case, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -906,7 +906,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(catch)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
             handleIdentifier(catch, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -939,7 +939,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
                 handleIdentifier(catch, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -966,7 +966,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(class)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
             handleIdentifier(class, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -999,7 +999,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
                 handleIdentifier(class, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -1026,7 +1026,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(const)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
             handleIdentifier(const, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1060,7 +1060,7 @@
               endIfStatement(if, null)
               beginReturnStatement(return)
                 beginConstExpression(const)
-                  handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                  handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                   handleIdentifier(, constructorReference)
                   beginConstructorReference()
                     handleNoTypeArguments(()
@@ -1090,7 +1090,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(continue)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
             handleIdentifier(continue, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1123,7 +1123,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {token: continue}], continue, continue)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {lexeme: continue}], continue, continue)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(continue)
                 handleNoArguments(continue)
@@ -1213,7 +1213,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(default)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
             handleIdentifier(default, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1246,7 +1246,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
                 handleIdentifier(default, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -1331,7 +1331,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(do)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
             handleIdentifier(do, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1364,7 +1364,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {token: do}], do, do)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {lexeme: do}], do, do)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(do)
                 handleNoArguments(do)
@@ -1388,7 +1388,7 @@
                 endDoWhileStatementBody(;)
                 handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
                 handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {token: }}], }, })
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                 handleIdentifier(, expression)
                 handleNoTypeArguments())
                 handleNoArguments())
@@ -1464,7 +1464,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(else)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
             handleIdentifier(else, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1497,21 +1497,21 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(else)
                 handleNoArguments(else)
                 handleSend(, else)
                 handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
               endReturnStatement(true, return, ;)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
               handleIdentifier(, expression)
               handleNoTypeArguments(else)
               handleNoArguments(else)
               handleSend(, else)
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
               handleExpressionStatement(;)
-              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], else, else)
               handleIdentifier(x, expression)
               handleNoTypeArguments(-)
               handleNoArguments(-)
@@ -1534,7 +1534,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(enum)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
             handleIdentifier(enum, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1567,7 +1567,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
                 handleIdentifier(enum, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -1652,7 +1652,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(extends)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
             handleIdentifier(extends, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1685,7 +1685,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
                 handleIdentifier(extends, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -1886,7 +1886,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(false)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
             handleIdentifier(false, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1945,7 +1945,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(final)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
             handleIdentifier(final, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -1978,7 +1978,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {token: final}], final, final)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {lexeme: final}], final, final)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(final)
                 handleNoArguments(final)
@@ -1989,7 +1989,7 @@
               endMetadataStar(0)
               handleNoType(final)
               beginVariablesDeclaration((, null, final)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                 handleIdentifier(, localVariableDeclaration)
                 beginInitializedIdentifier()
                   handleNoVariableInitializer()
@@ -2005,14 +2005,14 @@
               endBinaryExpression(-)
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
               handleExpressionStatement(;)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
               handleIdentifier(, expression)
               handleNoTypeArguments())
               handleNoArguments())
               handleSend(, ))
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
               handleExpressionStatement(;)
-              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
               handleRecoverableError(UnsupportedPrefixPlus, +, +)
               handleIdentifier(, expression)
               handleNoTypeArguments(+)
@@ -2032,7 +2032,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(finally)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
             handleIdentifier(finally, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -2065,7 +2065,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
                 handleIdentifier(finally, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -2092,7 +2092,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(for)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
             handleIdentifier(for, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -2125,7 +2125,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {token: for}], for, for)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {lexeme: for}], for, for)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(for)
                 handleNoArguments(for)
@@ -2142,7 +2142,7 @@
                 endBinaryExpression(-)
                 handleForInitializerExpressionStatement(1, false)
                 handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                 handleIdentifier(, expression)
                 handleNoTypeArguments())
                 handleNoArguments())
@@ -2346,7 +2346,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(if)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
             handleIdentifier(if, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -2379,7 +2379,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {token: if}], if, if)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {lexeme: if}], if, if)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(if)
                 handleNoArguments(if)
@@ -2533,7 +2533,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(in)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
             handleIdentifier(in, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -2566,7 +2566,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
                 handleIdentifier(in, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -2709,7 +2709,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(is)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
             handleIdentifier(is, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -2742,13 +2742,13 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {token: is}], is, is)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {lexeme: is}], is, is)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(is)
                 handleNoArguments(is)
                 handleSend(, is)
                 beginIsOperatorType(is)
-                  handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+                  handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {lexeme: (}], (, ()
                   handleIdentifier(, typeReference)
                   handleNoTypeArguments(()
                   handleType(, null)
@@ -3010,7 +3010,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(new)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
             handleIdentifier(new, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -3044,7 +3044,7 @@
               endIfStatement(if, null)
               beginReturnStatement(return)
                 beginNewExpression(new)
-                  handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                  handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                   handleIdentifier(, constructorReference)
                   beginConstructorReference()
                     handleNoTypeArguments(()
@@ -3074,7 +3074,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(null)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
             handleIdentifier(null, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -3539,7 +3539,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(rethrow)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
             handleIdentifier(rethrow, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -3572,7 +3572,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
                 handleIdentifier(rethrow, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
@@ -3599,7 +3599,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(return)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
             handleIdentifier(return, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -3632,7 +3632,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+                handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {lexeme: return}], return, return)
                 handleIdentifier(x, expression)
                 handleNoTypeArguments(-)
                 handleNoArguments(-)
@@ -3887,7 +3887,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(super)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
             handleIdentifier(super, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -3946,7 +3946,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(switch)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
             handleIdentifier(switch, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -3979,7 +3979,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {token: switch}], switch, switch)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {lexeme: switch}], switch, switch)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(switch)
                 handleNoArguments(switch)
@@ -4076,7 +4076,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(this)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
             handleIdentifier(this, fieldDeclaration)
             handleNoFieldInitializer(()
             handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], this, this)
@@ -4087,7 +4087,7 @@
         beginMember()
           beginMethod(null, null, null, null, null, ()
             handleNoType(;)
-            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
             handleIdentifier(, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4146,7 +4146,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(throw)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
             handleIdentifier(throw, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4202,7 +4202,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(true)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
             handleIdentifier(true, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4261,7 +4261,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(try)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
             handleIdentifier(try, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4294,7 +4294,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {token: try}], try, try)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {lexeme: try}], try, try)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(try)
                 handleNoArguments(try)
@@ -4387,7 +4387,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(var)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
             handleIdentifier(var, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4420,7 +4420,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {token: var}], var, var)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {lexeme: var}], var, var)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(var)
                 handleNoArguments(var)
@@ -4431,7 +4431,7 @@
               endMetadataStar(0)
               handleNoType(var)
               beginVariablesDeclaration((, null, var)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                 handleIdentifier(, localVariableDeclaration)
                 beginInitializedIdentifier()
                   handleNoVariableInitializer()
@@ -4447,14 +4447,14 @@
               endBinaryExpression(-)
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
               handleExpressionStatement(;)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
               handleIdentifier(, expression)
               handleNoTypeArguments())
               handleNoArguments())
               handleSend(, ))
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
               handleExpressionStatement(;)
-              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
               handleRecoverableError(UnsupportedPrefixPlus, +, +)
               handleIdentifier(, expression)
               handleNoTypeArguments(+)
@@ -4474,7 +4474,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(void)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
             handleIdentifier(void, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4507,7 +4507,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {token: void}], void, void)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {lexeme: void}], void, void)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(void)
                 handleNoArguments(void)
@@ -4518,7 +4518,7 @@
               endMetadataStar(0)
               handleVoidKeyword(void)
               beginVariablesDeclaration((, null, null)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                 handleIdentifier(, localVariableDeclaration)
                 beginInitializedIdentifier()
                   handleNoVariableInitializer()
@@ -4534,14 +4534,14 @@
               endBinaryExpression(-)
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
               handleExpressionStatement(;)
-              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+              handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
               handleIdentifier(, expression)
               handleNoTypeArguments())
               handleNoArguments())
               handleSend(, ))
               handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
               handleExpressionStatement(;)
-              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+              handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
               handleRecoverableError(UnsupportedPrefixPlus, +, +)
               handleIdentifier(, expression)
               handleNoTypeArguments(+)
@@ -4561,7 +4561,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(while)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
             handleIdentifier(while, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4594,7 +4594,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {token: while}], while, while)
+                handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {lexeme: while}], while, while)
                 handleIdentifier(, expression)
                 handleNoTypeArguments(while)
                 handleNoArguments(while)
@@ -4632,7 +4632,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(with)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
             handleIdentifier(with, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -4665,7 +4665,7 @@
                 endThenStatement(;)
               endIfStatement(if, null)
               beginReturnStatement(return)
-                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                 handleIdentifier(with, expression)
                 handleNoTypeArguments(()
                 beginArguments(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect
index bfd0eb21..a05d812 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_class_methods.dart.intertwined.expect
@@ -323,7 +323,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
                   listener: handleIdentifier(assert, methodDeclaration)
                 parseQualifiedRestOpt(assert, methodDeclarationContinuation)
                 parseMethodTypeVar(assert)
@@ -745,7 +745,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
                   listener: handleIdentifier(break, methodDeclaration)
                 parseQualifiedRestOpt(break, methodDeclarationContinuation)
                 parseMethodTypeVar(break)
@@ -832,7 +832,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {token: break}], break, break)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {lexeme: break}], break, break)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(break)
@@ -921,7 +921,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
                   listener: handleIdentifier(case, methodDeclaration)
                 parseQualifiedRestOpt(case, methodDeclarationContinuation)
                 parseMethodTypeVar(case)
@@ -1008,7 +1008,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
                                     listener: handleIdentifier(case, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(case)
@@ -1065,7 +1065,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
                   listener: handleIdentifier(catch, methodDeclaration)
                 parseQualifiedRestOpt(catch, methodDeclarationContinuation)
                 parseMethodTypeVar(catch)
@@ -1152,7 +1152,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
                                     listener: handleIdentifier(catch, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(catch)
@@ -1209,7 +1209,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
                   listener: handleIdentifier(class, methodDeclaration)
                 parseQualifiedRestOpt(class, methodDeclarationContinuation)
                 parseMethodTypeVar(class)
@@ -1296,7 +1296,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
                                     listener: handleIdentifier(class, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(class)
@@ -1353,7 +1353,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
                   listener: handleIdentifier(const, methodDeclaration)
                 parseQualifiedRestOpt(const, methodDeclarationContinuation)
                 parseMethodTypeVar(const)
@@ -1440,9 +1440,9 @@
                                   listener: beginConstExpression(const)
                                   parseConstructorReference(const, null)
                                     ensureIdentifier(const, constructorReference)
-                                      insertSyntheticIdentifier(const, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], messageOnToken: null)
-                                        reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}])
-                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                                      insertSyntheticIdentifier(const, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], messageOnToken: null)
+                                        reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}])
+                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                                         rewriter()
                                       listener: handleIdentifier(, constructorReference)
                                     listener: beginConstructorReference()
@@ -1503,7 +1503,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
                   listener: handleIdentifier(continue, methodDeclaration)
                 parseQualifiedRestOpt(continue, methodDeclarationContinuation)
                 parseMethodTypeVar(continue)
@@ -1590,7 +1590,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {token: continue}], continue, continue)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {lexeme: continue}], continue, continue)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(continue)
@@ -1820,7 +1820,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
                   listener: handleIdentifier(default, methodDeclaration)
                 parseQualifiedRestOpt(default, methodDeclarationContinuation)
                 parseMethodTypeVar(default)
@@ -1907,7 +1907,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
                                     listener: handleIdentifier(default, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(default)
@@ -2105,7 +2105,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
                   listener: handleIdentifier(do, methodDeclaration)
                 parseQualifiedRestOpt(do, methodDeclarationContinuation)
                 parseMethodTypeVar(do)
@@ -2192,7 +2192,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {token: do}], do, do)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {lexeme: do}], do, do)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(do)
@@ -2271,7 +2271,7 @@
                                     parseSend((, expression)
                                       ensureIdentifier((, expression)
                                         reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {token: }}], }, })
+                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                                         rewriter()
                                         listener: handleIdentifier(, expression)
                                       listener: handleNoTypeArguments())
@@ -2445,7 +2445,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
                   listener: handleIdentifier(else, methodDeclaration)
                 parseQualifiedRestOpt(else, methodDeclarationContinuation)
                 parseMethodTypeVar(else)
@@ -2532,7 +2532,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(else)
@@ -2560,7 +2560,7 @@
                                     parseSend(;, expression)
                                       ensureIdentifier(;, expression)
                                         reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
                                         rewriter()
                                         listener: handleIdentifier(, expression)
                                       listener: handleNoTypeArguments(else)
@@ -2572,8 +2572,8 @@
                                 listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
                               rewriter()
                             listener: handleExpressionStatement(;)
-                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], else, else)
                   notEofOrValue(}, ()
                   parseStatement(else)
                     parseStatementX(else)
@@ -2638,7 +2638,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
                   listener: handleIdentifier(enum, methodDeclaration)
                 parseQualifiedRestOpt(enum, methodDeclarationContinuation)
                 parseMethodTypeVar(enum)
@@ -2725,7 +2725,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
                                     listener: handleIdentifier(enum, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(enum)
@@ -2923,7 +2923,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
                   listener: handleIdentifier(extends, methodDeclaration)
                 parseQualifiedRestOpt(extends, methodDeclarationContinuation)
                 parseMethodTypeVar(extends)
@@ -3010,7 +3010,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
                                     listener: handleIdentifier(extends, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(extends)
@@ -3490,7 +3490,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
                   listener: handleIdentifier(false, methodDeclaration)
                 parseQualifiedRestOpt(false, methodDeclarationContinuation)
                 parseMethodTypeVar(false)
@@ -3630,7 +3630,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
                   listener: handleIdentifier(final, methodDeclaration)
                 parseQualifiedRestOpt(final, methodDeclarationContinuation)
                 parseMethodTypeVar(final)
@@ -3717,7 +3717,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {token: final}], final, final)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {lexeme: final}], final, final)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(final)
@@ -3743,7 +3743,7 @@
                           parseOptionallyInitializedIdentifier(final)
                             ensureIdentifier(final, localVariableDeclaration)
                               reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                               rewriter()
                               listener: handleIdentifier(, localVariableDeclaration)
                             listener: beginInitializedIdentifier()
@@ -3799,7 +3799,7 @@
                                     parseSend(;, expression)
                                       ensureIdentifier(;, expression)
                                         reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                         rewriter()
                                         listener: handleIdentifier(, expression)
                                       listener: handleNoTypeArguments())
@@ -3811,8 +3811,8 @@
                                 listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                               rewriter()
                             listener: handleExpressionStatement(;)
-                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
                   notEofOrValue(}, +)
                   parseStatement())
                     parseStatementX())
@@ -3864,7 +3864,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
                   listener: handleIdentifier(finally, methodDeclaration)
                 parseQualifiedRestOpt(finally, methodDeclarationContinuation)
                 parseMethodTypeVar(finally)
@@ -3951,7 +3951,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
                                     listener: handleIdentifier(finally, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(finally)
@@ -4008,7 +4008,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
                   listener: handleIdentifier(for, methodDeclaration)
                 parseQualifiedRestOpt(for, methodDeclarationContinuation)
                 parseMethodTypeVar(for)
@@ -4095,7 +4095,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {token: for}], for, for)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {lexeme: for}], for, for)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(for)
@@ -4151,7 +4151,7 @@
                                       parseSend(;, expression)
                                         ensureIdentifier(;, expression)
                                           reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                            listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                           rewriter()
                                           listener: handleIdentifier(, expression)
                                         listener: handleNoTypeArguments())
@@ -4641,7 +4641,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
                   listener: handleIdentifier(if, methodDeclaration)
                 parseQualifiedRestOpt(if, methodDeclarationContinuation)
                 parseMethodTypeVar(if)
@@ -4728,7 +4728,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {token: if}], if, if)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {lexeme: if}], if, if)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(if)
@@ -5104,7 +5104,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
                   listener: handleIdentifier(in, methodDeclaration)
                 parseQualifiedRestOpt(in, methodDeclarationContinuation)
                 parseMethodTypeVar(in)
@@ -5191,7 +5191,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
                                     listener: handleIdentifier(in, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(in)
@@ -5530,7 +5530,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
                   listener: handleIdentifier(is, methodDeclaration)
                 parseQualifiedRestOpt(is, methodDeclarationContinuation)
                 parseMethodTypeVar(is)
@@ -5617,7 +5617,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {token: is}], is, is)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {lexeme: is}], is, is)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(is)
@@ -5628,7 +5628,7 @@
                               listener: beginIsOperatorType(is)
                               computeTypeAfterIsOrAs(is)
                               reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                                listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+                                listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {lexeme: (}], (, ()
                               rewriter()
                               listener: handleIdentifier(, typeReference)
                               listener: handleNoTypeArguments(()
@@ -6270,7 +6270,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
                   listener: handleIdentifier(new, methodDeclaration)
                 parseQualifiedRestOpt(new, methodDeclarationContinuation)
                 parseMethodTypeVar(new)
@@ -6357,9 +6357,9 @@
                                   listener: beginNewExpression(new)
                                   parseConstructorReference(new, null)
                                     ensureIdentifier(new, constructorReference)
-                                      insertSyntheticIdentifier(new, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], messageOnToken: null)
-                                        reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}])
-                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                                      insertSyntheticIdentifier(new, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], messageOnToken: null)
+                                        reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}])
+                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                                         rewriter()
                                       listener: handleIdentifier(, constructorReference)
                                     listener: beginConstructorReference()
@@ -6420,7 +6420,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
                   listener: handleIdentifier(null, methodDeclaration)
                 parseQualifiedRestOpt(null, methodDeclarationContinuation)
                 parseMethodTypeVar(null)
@@ -7549,7 +7549,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
                   listener: handleIdentifier(rethrow, methodDeclaration)
                 parseQualifiedRestOpt(rethrow, methodDeclarationContinuation)
                 parseMethodTypeVar(rethrow)
@@ -7636,7 +7636,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
                                     listener: handleIdentifier(rethrow, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(rethrow)
@@ -7693,7 +7693,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
                   listener: handleIdentifier(return, methodDeclaration)
                 parseQualifiedRestOpt(return, methodDeclarationContinuation)
                 parseMethodTypeVar(return)
@@ -7778,7 +7778,7 @@
                               parsePrimary(return, expression)
                                 inPlainSync()
                                 reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+                                  listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {lexeme: return}], return, return)
                                 parsePrimary(return, expression)
                                   parseParenthesizedExpressionOrFunctionLiteral(return)
                                     parseParenthesizedExpression(return)
@@ -8399,7 +8399,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
                   listener: handleIdentifier(super, methodDeclaration)
                 parseQualifiedRestOpt(super, methodDeclarationContinuation)
                 parseMethodTypeVar(super)
@@ -8538,7 +8538,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
                   listener: handleIdentifier(switch, methodDeclaration)
                 parseQualifiedRestOpt(switch, methodDeclarationContinuation)
                 parseMethodTypeVar(switch)
@@ -8625,7 +8625,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {token: switch}], switch, switch)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {lexeme: switch}], switch, switch)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(switch)
@@ -8868,7 +8868,7 @@
                   listener: handleType(int, null)
                   ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, false)
                     reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
-                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
                     listener: handleIdentifier(this, fieldDeclaration)
                   parseFieldInitializerOpt(this, this, null, null, null, null, DeclarationKind.Class, WrapperClass)
                     listener: handleNoFieldInitializer(()
@@ -8890,8 +8890,8 @@
                   listener: handleNoType(;)
                   ensureIdentifierPotentiallyRecovered(;, methodDeclaration, false)
                     insertSyntheticIdentifier(;, methodDeclaration, message: null, messageOnToken: null)
-                      reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}])
-                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                      reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}])
+                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                       rewriter()
                     listener: handleIdentifier(, methodDeclaration)
                   parseQualifiedRestOpt(, methodDeclarationContinuation)
@@ -9031,7 +9031,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
                   listener: handleIdentifier(throw, methodDeclaration)
                 parseQualifiedRestOpt(throw, methodDeclarationContinuation)
                 parseMethodTypeVar(throw)
@@ -9171,7 +9171,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
                   listener: handleIdentifier(true, methodDeclaration)
                 parseQualifiedRestOpt(true, methodDeclarationContinuation)
                 parseMethodTypeVar(true)
@@ -9311,7 +9311,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
                   listener: handleIdentifier(try, methodDeclaration)
                 parseQualifiedRestOpt(try, methodDeclarationContinuation)
                 parseMethodTypeVar(try)
@@ -9398,7 +9398,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {token: try}], try, try)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {lexeme: try}], try, try)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(try)
@@ -9634,7 +9634,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
                   listener: handleIdentifier(var, methodDeclaration)
                 parseQualifiedRestOpt(var, methodDeclarationContinuation)
                 parseMethodTypeVar(var)
@@ -9721,7 +9721,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {token: var}], var, var)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {lexeme: var}], var, var)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(var)
@@ -9747,7 +9747,7 @@
                           parseOptionallyInitializedIdentifier(var)
                             ensureIdentifier(var, localVariableDeclaration)
                               reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                               rewriter()
                               listener: handleIdentifier(, localVariableDeclaration)
                             listener: beginInitializedIdentifier()
@@ -9803,7 +9803,7 @@
                                     parseSend(;, expression)
                                       ensureIdentifier(;, expression)
                                         reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                         rewriter()
                                         listener: handleIdentifier(, expression)
                                       listener: handleNoTypeArguments())
@@ -9815,8 +9815,8 @@
                                 listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                               rewriter()
                             listener: handleExpressionStatement(;)
-                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
                   notEofOrValue(}, +)
                   parseStatement())
                     parseStatementX())
@@ -9868,7 +9868,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
                   listener: handleIdentifier(void, methodDeclaration)
                 parseQualifiedRestOpt(void, methodDeclarationContinuation)
                 parseMethodTypeVar(void)
@@ -9955,7 +9955,7 @@
                                   parseSend(return, expression)
                                     ensureIdentifier(return, expression)
                                       reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
-                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {token: void}], void, void)
+                                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {lexeme: void}], void, void)
                                       rewriter()
                                       listener: handleIdentifier(, expression)
                                     listener: handleNoTypeArguments(void)
@@ -9982,7 +9982,7 @@
                             parseOptionallyInitializedIdentifier(void)
                               ensureIdentifier(void, localVariableDeclaration)
                                 reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                                 rewriter()
                                 listener: handleIdentifier(, localVariableDeclaration)
                               listener: beginInitializedIdentifier()
@@ -10038,7 +10038,7 @@
                                     parseSend(;, expression)
                                       ensureIdentifier(;, expression)
                                         reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                         rewriter()
                                         listener: handleIdentifier(, expression)
                                       listener: handleNoTypeArguments())
@@ -10050,8 +10050,8 @@
                                 listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                               rewriter()
                             listener: handleExpressionStatement(;)
-                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+                  reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+                    listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
                   notEofOrValue(}, +)
                   parseStatement())
                     parseStatementX())
@@ -10103,7 +10103,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
                   listener: handleIdentifier(while, methodDeclaration)
                 parseQualifiedRestOpt(while, methodDeclarationContinuation)
                 parseMethodTypeVar(while)
@@ -10190,7 +10190,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {token: while}], while, while)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {lexeme: while}], while, while)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(while)
@@ -10284,7 +10284,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, methodDeclaration)
                 parseQualifiedRestOpt(with, methodDeclarationContinuation)
                 parseMethodTypeVar(with)
@@ -10371,7 +10371,7 @@
                                 parseSend(return, expression)
                                   ensureIdentifier(return, expression)
                                     reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                                     listener: handleIdentifier(with, expression)
                                   listener: handleNoTypeArguments(()
                                   parseArgumentsOpt(with)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect
index c634476..acdbaf9 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.expect
@@ -166,7 +166,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(assert)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
       handleIdentifier(assert, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -206,7 +206,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(break)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
       handleIdentifier(break, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -220,7 +220,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(case)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
       handleIdentifier(case, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -234,7 +234,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(catch)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
       handleIdentifier(catch, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -248,7 +248,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(class)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
       handleIdentifier(class, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -262,7 +262,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(const)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
       handleIdentifier(const, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -276,7 +276,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(continue)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
       handleIdentifier(continue, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -303,7 +303,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(default)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
       handleIdentifier(default, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -330,7 +330,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(do)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
       handleIdentifier(do, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -357,7 +357,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(else)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
       handleIdentifier(else, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -371,7 +371,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(enum)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
       handleIdentifier(enum, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -398,7 +398,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(extends)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
       handleIdentifier(extends, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -451,7 +451,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(false)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
       handleIdentifier(false, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -465,7 +465,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(final)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
       handleIdentifier(final, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -479,7 +479,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(finally)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
       handleIdentifier(finally, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -493,7 +493,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(for)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
       handleIdentifier(for, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -546,7 +546,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(if)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
       handleIdentifier(if, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -586,7 +586,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(in)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
       handleIdentifier(in, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -626,7 +626,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(is)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
       handleIdentifier(is, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -692,7 +692,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(new)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
       handleIdentifier(new, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -706,7 +706,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(null)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
       handleIdentifier(null, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -811,7 +811,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(rethrow)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
       handleIdentifier(rethrow, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -825,7 +825,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(return)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
       handleIdentifier(return, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -891,7 +891,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(super)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
       handleIdentifier(super, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -905,7 +905,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(switch)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
       handleIdentifier(switch, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -932,7 +932,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(this)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
       handleIdentifier(this, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -946,7 +946,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(throw)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
       handleIdentifier(throw, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -960,7 +960,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(true)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
       handleIdentifier(true, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -974,7 +974,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(try)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
       handleIdentifier(try, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -1001,7 +1001,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(var)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
       handleIdentifier(var, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -1015,7 +1015,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(void)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
       handleIdentifier(void, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -1029,7 +1029,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(while)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
       handleIdentifier(while, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
@@ -1043,7 +1043,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
       handleIdentifier(with, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(42)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect
index b6db767..3177f42 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_fields.dart.intertwined.expect
@@ -65,7 +65,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
           listener: handleIdentifier(assert, topLevelVariableDeclaration)
         parseFieldInitializerOpt(assert, assert, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -141,7 +141,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
           listener: handleIdentifier(break, topLevelVariableDeclaration)
         parseFieldInitializerOpt(break, break, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -169,7 +169,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
           listener: handleIdentifier(case, topLevelVariableDeclaration)
         parseFieldInitializerOpt(case, case, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -197,7 +197,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
           listener: handleIdentifier(catch, topLevelVariableDeclaration)
         parseFieldInitializerOpt(catch, catch, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -225,7 +225,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
           listener: handleIdentifier(class, topLevelVariableDeclaration)
         parseFieldInitializerOpt(class, class, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -253,7 +253,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
           listener: handleIdentifier(const, topLevelVariableDeclaration)
         parseFieldInitializerOpt(const, const, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -281,7 +281,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
           listener: handleIdentifier(continue, topLevelVariableDeclaration)
         parseFieldInitializerOpt(continue, continue, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -333,7 +333,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
           listener: handleIdentifier(default, topLevelVariableDeclaration)
         parseFieldInitializerOpt(default, default, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -385,7 +385,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
           listener: handleIdentifier(do, topLevelVariableDeclaration)
         parseFieldInitializerOpt(do, do, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -437,7 +437,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
           listener: handleIdentifier(else, topLevelVariableDeclaration)
         parseFieldInitializerOpt(else, else, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -465,7 +465,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
           listener: handleIdentifier(enum, topLevelVariableDeclaration)
         parseFieldInitializerOpt(enum, enum, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -517,7 +517,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
           listener: handleIdentifier(extends, topLevelVariableDeclaration)
         parseFieldInitializerOpt(extends, extends, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -617,7 +617,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
           listener: handleIdentifier(false, topLevelVariableDeclaration)
         parseFieldInitializerOpt(false, false, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -645,7 +645,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
           listener: handleIdentifier(final, topLevelVariableDeclaration)
         parseFieldInitializerOpt(final, final, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -673,7 +673,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
           listener: handleIdentifier(finally, topLevelVariableDeclaration)
         parseFieldInitializerOpt(finally, finally, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -701,7 +701,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
           listener: handleIdentifier(for, topLevelVariableDeclaration)
         parseFieldInitializerOpt(for, for, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -801,7 +801,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
           listener: handleIdentifier(if, topLevelVariableDeclaration)
         parseFieldInitializerOpt(if, if, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -877,7 +877,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
           listener: handleIdentifier(in, topLevelVariableDeclaration)
         parseFieldInitializerOpt(in, in, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -953,7 +953,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
           listener: handleIdentifier(is, topLevelVariableDeclaration)
         parseFieldInitializerOpt(is, is, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1077,7 +1077,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
           listener: handleIdentifier(new, topLevelVariableDeclaration)
         parseFieldInitializerOpt(new, new, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1105,7 +1105,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
           listener: handleIdentifier(null, topLevelVariableDeclaration)
         parseFieldInitializerOpt(null, null, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1301,7 +1301,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
           listener: handleIdentifier(rethrow, topLevelVariableDeclaration)
         parseFieldInitializerOpt(rethrow, rethrow, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1329,7 +1329,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
           listener: handleIdentifier(return, topLevelVariableDeclaration)
         parseFieldInitializerOpt(return, return, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1453,7 +1453,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
           listener: handleIdentifier(super, topLevelVariableDeclaration)
         parseFieldInitializerOpt(super, super, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1481,7 +1481,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
           listener: handleIdentifier(switch, topLevelVariableDeclaration)
         parseFieldInitializerOpt(switch, switch, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1531,7 +1531,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, false)
           reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
           listener: handleIdentifier(this, topLevelVariableDeclaration)
         parseFieldInitializerOpt(this, this, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1559,7 +1559,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
           listener: handleIdentifier(throw, topLevelVariableDeclaration)
         parseFieldInitializerOpt(throw, throw, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1587,7 +1587,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
           listener: handleIdentifier(true, topLevelVariableDeclaration)
         parseFieldInitializerOpt(true, true, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1615,7 +1615,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
           listener: handleIdentifier(try, topLevelVariableDeclaration)
         parseFieldInitializerOpt(try, try, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1667,7 +1667,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
           listener: handleIdentifier(var, topLevelVariableDeclaration)
         parseFieldInitializerOpt(var, var, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1695,7 +1695,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
           listener: handleIdentifier(void, topLevelVariableDeclaration)
         parseFieldInitializerOpt(void, void, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1723,7 +1723,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
           listener: handleIdentifier(while, topLevelVariableDeclaration)
         parseFieldInitializerOpt(while, while, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
@@ -1751,7 +1751,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, topLevelVariableDeclaration)
         parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect
index ab9b7d5..0c446fc 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.expect
@@ -586,7 +586,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(assert)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
       handleIdentifier(assert, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -756,7 +756,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(break)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
       handleIdentifier(break, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -788,7 +788,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {token: break}], break, break)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {lexeme: break}], break, break)
           handleIdentifier(, expression)
           handleNoTypeArguments(break)
           handleNoArguments(break)
@@ -820,7 +820,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(case)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
       handleIdentifier(case, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -852,7 +852,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
           handleIdentifier(case, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -879,7 +879,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(catch)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
       handleIdentifier(catch, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -911,7 +911,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
           handleIdentifier(catch, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -938,7 +938,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(class)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
       handleIdentifier(class, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -970,7 +970,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
           handleIdentifier(class, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -997,7 +997,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(const)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
       handleIdentifier(const, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1030,7 +1030,7 @@
         endIfStatement(if, null)
         beginReturnStatement(return)
           beginConstExpression(const)
-            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
             handleIdentifier(, constructorReference)
             beginConstructorReference()
               handleNoTypeArguments(()
@@ -1060,7 +1060,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(continue)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
       handleIdentifier(continue, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1092,7 +1092,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {token: continue}], continue, continue)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {lexeme: continue}], continue, continue)
           handleIdentifier(, expression)
           handleNoTypeArguments(continue)
           handleNoArguments(continue)
@@ -1181,7 +1181,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(default)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
       handleIdentifier(default, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1213,7 +1213,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
           handleIdentifier(default, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -1297,7 +1297,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(do)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
       handleIdentifier(do, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1329,7 +1329,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {token: do}], do, do)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {lexeme: do}], do, do)
           handleIdentifier(, expression)
           handleNoTypeArguments(do)
           handleNoArguments(do)
@@ -1353,7 +1353,7 @@
           endDoWhileStatementBody(;)
           handleRecoverableError(Message[ExpectedButGot, Expected 'while' before this., null, {string: while}], }, })
           handleRecoverableError(Message[ExpectedToken, Expected to find '('., null, {string: (}], }, })
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {token: }}], }, })
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
           handleIdentifier(, expression)
           handleNoTypeArguments())
           handleNoArguments())
@@ -1428,7 +1428,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(else)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
       handleIdentifier(else, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1460,21 +1460,21 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
           handleIdentifier(, expression)
           handleNoTypeArguments(else)
           handleNoArguments(else)
           handleSend(, else)
           handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
         endReturnStatement(true, return, ;)
-        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
         handleIdentifier(, expression)
         handleNoTypeArguments(else)
         handleNoArguments(else)
         handleSend(, else)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
         handleExpressionStatement(;)
-        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], else, else)
         handleIdentifier(x, expression)
         handleNoTypeArguments(-)
         handleNoArguments(-)
@@ -1497,7 +1497,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(enum)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
       handleIdentifier(enum, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1529,7 +1529,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
           handleIdentifier(enum, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -1613,7 +1613,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(extends)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
       handleIdentifier(extends, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1645,7 +1645,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
           handleIdentifier(extends, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -1843,7 +1843,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(false)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
       handleIdentifier(false, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1901,7 +1901,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(final)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
       handleIdentifier(final, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -1933,7 +1933,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {token: final}], final, final)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {lexeme: final}], final, final)
           handleIdentifier(, expression)
           handleNoTypeArguments(final)
           handleNoArguments(final)
@@ -1944,7 +1944,7 @@
         endMetadataStar(0)
         handleNoType(final)
         beginVariablesDeclaration((, null, final)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
           handleIdentifier(, localVariableDeclaration)
           beginInitializedIdentifier()
             handleNoVariableInitializer()
@@ -1960,14 +1960,14 @@
         endBinaryExpression(-)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
         handleExpressionStatement(;)
-        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
         handleIdentifier(, expression)
         handleNoTypeArguments())
         handleNoArguments())
         handleSend(, ))
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
         handleExpressionStatement(;)
-        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
         handleRecoverableError(UnsupportedPrefixPlus, +, +)
         handleIdentifier(, expression)
         handleNoTypeArguments(+)
@@ -1987,7 +1987,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(finally)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
       handleIdentifier(finally, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -2019,7 +2019,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
           handleIdentifier(finally, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -2046,7 +2046,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(for)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
       handleIdentifier(for, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -2078,7 +2078,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {token: for}], for, for)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {lexeme: for}], for, for)
           handleIdentifier(, expression)
           handleNoTypeArguments(for)
           handleNoArguments(for)
@@ -2095,7 +2095,7 @@
           endBinaryExpression(-)
           handleForInitializerExpressionStatement(1, false)
           handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
           handleIdentifier(, expression)
           handleNoTypeArguments())
           handleNoArguments())
@@ -2296,7 +2296,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(if)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
       handleIdentifier(if, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -2328,7 +2328,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {token: if}], if, if)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {lexeme: if}], if, if)
           handleIdentifier(, expression)
           handleNoTypeArguments(if)
           handleNoArguments(if)
@@ -2480,7 +2480,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(in)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
       handleIdentifier(in, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -2512,7 +2512,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
           handleIdentifier(in, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -2653,7 +2653,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(is)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
       handleIdentifier(is, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -2685,13 +2685,13 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {token: is}], is, is)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {lexeme: is}], is, is)
           handleIdentifier(, expression)
           handleNoTypeArguments(is)
           handleNoArguments(is)
           handleSend(, is)
           beginIsOperatorType(is)
-            handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+            handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {lexeme: (}], (, ()
             handleIdentifier(, typeReference)
             handleNoTypeArguments(()
             handleType(, null)
@@ -2949,7 +2949,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(new)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
       handleIdentifier(new, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -2982,7 +2982,7 @@
         endIfStatement(if, null)
         beginReturnStatement(return)
           beginNewExpression(new)
-            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+            handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
             handleIdentifier(, constructorReference)
             beginConstructorReference()
               handleNoTypeArguments(()
@@ -3012,7 +3012,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(null)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
       handleIdentifier(null, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -3469,7 +3469,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(rethrow)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
       handleIdentifier(rethrow, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -3501,7 +3501,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
           handleIdentifier(rethrow, expression)
           handleNoTypeArguments(()
           beginArguments(()
@@ -3528,7 +3528,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(return)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
       handleIdentifier(return, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -3560,7 +3560,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+          handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {lexeme: return}], return, return)
           handleIdentifier(x, expression)
           handleNoTypeArguments(-)
           handleNoArguments(-)
@@ -3811,7 +3811,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(super)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
       handleIdentifier(super, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -3869,7 +3869,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(switch)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
       handleIdentifier(switch, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -3901,7 +3901,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {token: switch}], switch, switch)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {lexeme: switch}], switch, switch)
           handleIdentifier(, expression)
           handleNoTypeArguments(switch)
           handleNoArguments(switch)
@@ -3997,7 +3997,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(this)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
       handleIdentifier(this, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4055,7 +4055,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(throw)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
       handleIdentifier(throw, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4110,7 +4110,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(true)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
       handleIdentifier(true, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4168,7 +4168,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(try)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
       handleIdentifier(try, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4200,7 +4200,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {token: try}], try, try)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {lexeme: try}], try, try)
           handleIdentifier(, expression)
           handleNoTypeArguments(try)
           handleNoArguments(try)
@@ -4292,7 +4292,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(var)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
       handleIdentifier(var, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4324,7 +4324,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {token: var}], var, var)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {lexeme: var}], var, var)
           handleIdentifier(, expression)
           handleNoTypeArguments(var)
           handleNoArguments(var)
@@ -4335,7 +4335,7 @@
         endMetadataStar(0)
         handleNoType(var)
         beginVariablesDeclaration((, null, var)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
           handleIdentifier(, localVariableDeclaration)
           beginInitializedIdentifier()
             handleNoVariableInitializer()
@@ -4351,14 +4351,14 @@
         endBinaryExpression(-)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
         handleExpressionStatement(;)
-        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
         handleIdentifier(, expression)
         handleNoTypeArguments())
         handleNoArguments())
         handleSend(, ))
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
         handleExpressionStatement(;)
-        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
         handleRecoverableError(UnsupportedPrefixPlus, +, +)
         handleIdentifier(, expression)
         handleNoTypeArguments(+)
@@ -4378,7 +4378,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(void)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
       handleIdentifier(void, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4410,7 +4410,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {token: void}], void, void)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {lexeme: void}], void, void)
           handleIdentifier(, expression)
           handleNoTypeArguments(void)
           handleNoArguments(void)
@@ -4421,7 +4421,7 @@
         endMetadataStar(0)
         handleVoidKeyword(void)
         beginVariablesDeclaration((, null, null)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
           handleIdentifier(, localVariableDeclaration)
           beginInitializedIdentifier()
             handleNoVariableInitializer()
@@ -4437,14 +4437,14 @@
         endBinaryExpression(-)
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], 1, 1)
         handleExpressionStatement(;)
-        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+        handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
         handleIdentifier(, expression)
         handleNoTypeArguments())
         handleNoArguments())
         handleSend(, ))
         handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
         handleExpressionStatement(;)
-        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+        handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
         handleRecoverableError(UnsupportedPrefixPlus, +, +)
         handleIdentifier(, expression)
         handleNoTypeArguments(+)
@@ -4464,7 +4464,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(while)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
       handleIdentifier(while, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4496,7 +4496,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {token: while}], while, while)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {lexeme: while}], while, while)
           handleIdentifier(, expression)
           handleNoTypeArguments(while)
           handleNoArguments(while)
@@ -4534,7 +4534,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
       handleIdentifier(with, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -4566,7 +4566,7 @@
           endThenStatement(;)
         endIfStatement(if, null)
         beginReturnStatement(return)
-          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+          handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           handleIdentifier(with, expression)
           handleNoTypeArguments(()
           beginArguments(()
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect
index 1ce425d..9328908 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_top_level_methods.dart.intertwined.expect
@@ -291,7 +291,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
           listener: handleIdentifier(assert, topLevelFunctionDeclaration)
         parseMethodTypeVar(assert)
           listener: handleNoTypeVariables(()
@@ -701,7 +701,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
           listener: handleIdentifier(break, topLevelFunctionDeclaration)
         parseMethodTypeVar(break)
           listener: handleNoTypeVariables(()
@@ -784,7 +784,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {token: break}], break, break)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'break'., Try inserting an identifier before 'break'., {lexeme: break}], break, break)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(break)
@@ -873,7 +873,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
           listener: handleIdentifier(case, topLevelFunctionDeclaration)
         parseMethodTypeVar(case)
           listener: handleNoTypeVariables(()
@@ -956,7 +956,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
                             listener: handleIdentifier(case, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(case)
@@ -1013,7 +1013,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
           listener: handleIdentifier(catch, topLevelFunctionDeclaration)
         parseMethodTypeVar(catch)
           listener: handleNoTypeVariables(()
@@ -1096,7 +1096,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
                             listener: handleIdentifier(catch, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(catch)
@@ -1153,7 +1153,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
           listener: handleIdentifier(class, topLevelFunctionDeclaration)
         parseMethodTypeVar(class)
           listener: handleNoTypeVariables(()
@@ -1236,7 +1236,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
                             listener: handleIdentifier(class, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(class)
@@ -1293,7 +1293,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
           listener: handleIdentifier(const, topLevelFunctionDeclaration)
         parseMethodTypeVar(const)
           listener: handleNoTypeVariables(()
@@ -1376,9 +1376,9 @@
                           listener: beginConstExpression(const)
                           parseConstructorReference(const, null)
                             ensureIdentifier(const, constructorReference)
-                              insertSyntheticIdentifier(const, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], messageOnToken: null)
-                                reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}])
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                              insertSyntheticIdentifier(const, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], messageOnToken: null)
+                                reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}])
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                                 rewriter()
                               listener: handleIdentifier(, constructorReference)
                             listener: beginConstructorReference()
@@ -1439,7 +1439,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
           listener: handleIdentifier(continue, topLevelFunctionDeclaration)
         parseMethodTypeVar(continue)
           listener: handleNoTypeVariables(()
@@ -1522,7 +1522,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {token: continue}], continue, continue)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'continue'., Try inserting an identifier before 'continue'., {lexeme: continue}], continue, continue)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(continue)
@@ -1748,7 +1748,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
           listener: handleIdentifier(default, topLevelFunctionDeclaration)
         parseMethodTypeVar(default)
           listener: handleNoTypeVariables(()
@@ -1831,7 +1831,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
                             listener: handleIdentifier(default, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(default)
@@ -2025,7 +2025,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
           listener: handleIdentifier(do, topLevelFunctionDeclaration)
         parseMethodTypeVar(do)
           listener: handleNoTypeVariables(()
@@ -2108,7 +2108,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {token: do}], do, do)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'do'., Try inserting an identifier before 'do'., {lexeme: do}], do, do)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(do)
@@ -2187,7 +2187,7 @@
                             parseSend((, expression)
                               ensureIdentifier((, expression)
                                 reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {token: }}], }, })
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                                 rewriter()
                                 listener: handleIdentifier(, expression)
                               listener: handleNoTypeArguments())
@@ -2357,7 +2357,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
           listener: handleIdentifier(else, topLevelFunctionDeclaration)
         parseMethodTypeVar(else)
           listener: handleNoTypeVariables(()
@@ -2440,7 +2440,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(else)
@@ -2468,7 +2468,7 @@
                             parseSend(;, expression)
                               ensureIdentifier(;, expression)
                                 reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {token: else}], else, else)
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'else'., Try inserting an identifier before 'else'., {lexeme: else}], else, else)
                                 rewriter()
                                 listener: handleIdentifier(, expression)
                               listener: handleNoTypeArguments(else)
@@ -2480,8 +2480,8 @@
                         listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], else, else)
                       rewriter()
                     listener: handleExpressionStatement(;)
-          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], else, else)
+          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], else, else)
           notEofOrValue(}, ()
           parseStatement(else)
             parseStatementX(else)
@@ -2546,7 +2546,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
           listener: handleIdentifier(enum, topLevelFunctionDeclaration)
         parseMethodTypeVar(enum)
           listener: handleNoTypeVariables(()
@@ -2629,7 +2629,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
                             listener: handleIdentifier(enum, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(enum)
@@ -2823,7 +2823,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
           listener: handleIdentifier(extends, topLevelFunctionDeclaration)
         parseMethodTypeVar(extends)
           listener: handleNoTypeVariables(()
@@ -2906,7 +2906,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
                             listener: handleIdentifier(extends, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(extends)
@@ -3374,7 +3374,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
           listener: handleIdentifier(false, topLevelFunctionDeclaration)
         parseMethodTypeVar(false)
           listener: handleNoTypeVariables(()
@@ -3510,7 +3510,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
           listener: handleIdentifier(final, topLevelFunctionDeclaration)
         parseMethodTypeVar(final)
           listener: handleNoTypeVariables(()
@@ -3593,7 +3593,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {token: final}], final, final)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'final'., Try inserting an identifier before 'final'., {lexeme: final}], final, final)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(final)
@@ -3619,7 +3619,7 @@
                   parseOptionallyInitializedIdentifier(final)
                     ensureIdentifier(final, localVariableDeclaration)
                       reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                       rewriter()
                       listener: handleIdentifier(, localVariableDeclaration)
                     listener: beginInitializedIdentifier()
@@ -3675,7 +3675,7 @@
                             parseSend(;, expression)
                               ensureIdentifier(;, expression)
                                 reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                 rewriter()
                                 listener: handleIdentifier(, expression)
                               listener: handleNoTypeArguments())
@@ -3687,8 +3687,8 @@
                         listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                       rewriter()
                     listener: handleExpressionStatement(;)
-          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
           notEofOrValue(}, +)
           parseStatement())
             parseStatementX())
@@ -3740,7 +3740,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
           listener: handleIdentifier(finally, topLevelFunctionDeclaration)
         parseMethodTypeVar(finally)
           listener: handleNoTypeVariables(()
@@ -3823,7 +3823,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
                             listener: handleIdentifier(finally, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(finally)
@@ -3880,7 +3880,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
           listener: handleIdentifier(for, topLevelFunctionDeclaration)
         parseMethodTypeVar(for)
           listener: handleNoTypeVariables(()
@@ -3963,7 +3963,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {token: for}], for, for)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'for'., Try inserting an identifier before 'for'., {lexeme: for}], for, for)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(for)
@@ -4019,7 +4019,7 @@
                               parseSend(;, expression)
                                 ensureIdentifier(;, expression)
                                   reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                    listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                    listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                   rewriter()
                                   listener: handleIdentifier(, expression)
                                 listener: handleNoTypeArguments())
@@ -4496,7 +4496,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
           listener: handleIdentifier(if, topLevelFunctionDeclaration)
         parseMethodTypeVar(if)
           listener: handleNoTypeVariables(()
@@ -4579,7 +4579,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {token: if}], if, if)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'if'., Try inserting an identifier before 'if'., {lexeme: if}], if, if)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(if)
@@ -4947,7 +4947,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
           listener: handleIdentifier(in, topLevelFunctionDeclaration)
         parseMethodTypeVar(in)
           listener: handleNoTypeVariables(()
@@ -5030,7 +5030,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
                             listener: handleIdentifier(in, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(in)
@@ -5361,7 +5361,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
           listener: handleIdentifier(is, topLevelFunctionDeclaration)
         parseMethodTypeVar(is)
           listener: handleNoTypeVariables(()
@@ -5444,7 +5444,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {token: is}], is, is)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'is'., Try inserting an identifier before 'is'., {lexeme: is}], is, is)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(is)
@@ -5455,7 +5455,7 @@
                       listener: beginIsOperatorType(is)
                       computeTypeAfterIsOrAs(is)
                       reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                        listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {token: (}], (, ()
+                        listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '('., null, {lexeme: (}], (, ()
                       rewriter()
                       listener: handleIdentifier(, typeReference)
                       listener: handleNoTypeArguments(()
@@ -6081,7 +6081,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
           listener: handleIdentifier(new, topLevelFunctionDeclaration)
         parseMethodTypeVar(new)
           listener: handleNoTypeVariables(()
@@ -6164,9 +6164,9 @@
                           listener: beginNewExpression(new)
                           parseConstructorReference(new, null)
                             ensureIdentifier(new, constructorReference)
-                              insertSyntheticIdentifier(new, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], messageOnToken: null)
-                                reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}])
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                              insertSyntheticIdentifier(new, constructorReference, message: Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], messageOnToken: null)
+                                reportRecoverableError((, Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}])
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                                 rewriter()
                               listener: handleIdentifier(, constructorReference)
                             listener: beginConstructorReference()
@@ -6227,7 +6227,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
           listener: handleIdentifier(null, topLevelFunctionDeclaration)
         parseMethodTypeVar(null)
           listener: handleNoTypeVariables(()
@@ -7322,7 +7322,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
           listener: handleIdentifier(rethrow, topLevelFunctionDeclaration)
         parseMethodTypeVar(rethrow)
           listener: handleNoTypeVariables(()
@@ -7405,7 +7405,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
                             listener: handleIdentifier(rethrow, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(rethrow)
@@ -7462,7 +7462,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
           listener: handleIdentifier(return, topLevelFunctionDeclaration)
         parseMethodTypeVar(return)
           listener: handleNoTypeVariables(()
@@ -7543,7 +7543,7 @@
                       parsePrimary(return, expression)
                         inPlainSync()
                         reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-                          listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {token: return}], return, return)
+                          listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token 'return'., null, {lexeme: return}], return, return)
                         parsePrimary(return, expression)
                           parseParenthesizedExpressionOrFunctionLiteral(return)
                             parseParenthesizedExpression(return)
@@ -8147,7 +8147,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
           listener: handleIdentifier(super, topLevelFunctionDeclaration)
         parseMethodTypeVar(super)
           listener: handleNoTypeVariables(()
@@ -8282,7 +8282,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
           listener: handleIdentifier(switch, topLevelFunctionDeclaration)
         parseMethodTypeVar(switch)
           listener: handleNoTypeVariables(()
@@ -8365,7 +8365,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {token: switch}], switch, switch)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'switch'., Try inserting an identifier before 'switch'., {lexeme: switch}], switch, switch)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(switch)
@@ -8603,7 +8603,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, false)
           reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
           listener: handleIdentifier(this, topLevelFunctionDeclaration)
         parseMethodTypeVar(this)
           listener: handleNoTypeVariables(()
@@ -8738,7 +8738,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
           listener: handleIdentifier(throw, topLevelFunctionDeclaration)
         parseMethodTypeVar(throw)
           listener: handleNoTypeVariables(()
@@ -8874,7 +8874,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
           listener: handleIdentifier(true, topLevelFunctionDeclaration)
         parseMethodTypeVar(true)
           listener: handleNoTypeVariables(()
@@ -9010,7 +9010,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
           listener: handleIdentifier(try, topLevelFunctionDeclaration)
         parseMethodTypeVar(try)
           listener: handleNoTypeVariables(()
@@ -9093,7 +9093,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {token: try}], try, try)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'try'., Try inserting an identifier before 'try'., {lexeme: try}], try, try)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(try)
@@ -9325,7 +9325,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
           listener: handleIdentifier(var, topLevelFunctionDeclaration)
         parseMethodTypeVar(var)
           listener: handleNoTypeVariables(()
@@ -9408,7 +9408,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {token: var}], var, var)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'var'., Try inserting an identifier before 'var'., {lexeme: var}], var, var)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(var)
@@ -9434,7 +9434,7 @@
                   parseOptionallyInitializedIdentifier(var)
                     ensureIdentifier(var, localVariableDeclaration)
                       reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                        listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                       rewriter()
                       listener: handleIdentifier(, localVariableDeclaration)
                     listener: beginInitializedIdentifier()
@@ -9490,7 +9490,7 @@
                             parseSend(;, expression)
                               ensureIdentifier(;, expression)
                                 reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                 rewriter()
                                 listener: handleIdentifier(, expression)
                               listener: handleNoTypeArguments())
@@ -9502,8 +9502,8 @@
                         listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                       rewriter()
                     listener: handleExpressionStatement(;)
-          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
           notEofOrValue(}, +)
           parseStatement())
             parseStatementX())
@@ -9555,7 +9555,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
           listener: handleIdentifier(void, topLevelFunctionDeclaration)
         parseMethodTypeVar(void)
           listener: handleNoTypeVariables(()
@@ -9638,7 +9638,7 @@
                           parseSend(return, expression)
                             ensureIdentifier(return, expression)
                               reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
-                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {token: void}], void, void)
+                                listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'void'., Try inserting an identifier before 'void'., {lexeme: void}], void, void)
                               rewriter()
                               listener: handleIdentifier(, expression)
                             listener: handleNoTypeArguments(void)
@@ -9665,7 +9665,7 @@
                     parseOptionallyInitializedIdentifier(void)
                       ensureIdentifier(void, localVariableDeclaration)
                         reportRecoverableErrorWithToken((, Instance of 'Template<(Token) => Message>')
-                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {token: (}], (, ()
+                          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '('., Try inserting an identifier before '('., {lexeme: (}], (, ()
                         rewriter()
                         listener: handleIdentifier(, localVariableDeclaration)
                       listener: beginInitializedIdentifier()
@@ -9721,7 +9721,7 @@
                             parseSend(;, expression)
                               ensureIdentifier(;, expression)
                                 reportRecoverableErrorWithToken(), Instance of 'Template<(Token) => Message>')
-                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {token: )}], ), ))
+                                  listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ')'., Try inserting an identifier before ')'., {lexeme: )}], ), ))
                                 rewriter()
                                 listener: handleIdentifier(, expression)
                               listener: handleNoTypeArguments())
@@ -9733,8 +9733,8 @@
                         listener: handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], ), ))
                       rewriter()
                     listener: handleExpressionStatement(;)
-          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}])
-            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ), ))
+          reportRecoverableError(;, Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}])
+            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ), ))
           notEofOrValue(}, +)
           parseStatement())
             parseStatementX())
@@ -9786,7 +9786,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
           listener: handleIdentifier(while, topLevelFunctionDeclaration)
         parseMethodTypeVar(while)
           listener: handleNoTypeVariables(()
@@ -9869,7 +9869,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {token: while}], while, while)
+                              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got 'while'., Try inserting an identifier before 'while'., {lexeme: while}], while, while)
                             rewriter()
                             listener: handleIdentifier(, expression)
                           listener: handleNoTypeArguments(while)
@@ -9963,7 +9963,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, topLevelFunctionDeclaration)
         parseMethodTypeVar(with)
           listener: handleNoTypeVariables(()
@@ -10046,7 +10046,7 @@
                         parseSend(return, expression)
                           ensureIdentifier(return, expression)
                             reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                              listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                             listener: handleIdentifier(with, expression)
                           listener: handleNoTypeArguments(()
                           parseArgumentsOpt(with)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect
index f7f2800..d218353 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.expect
@@ -470,7 +470,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: abstract}], abstract, abstract)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: abstract}], abstract, abstract)
       handleIdentifier(abstract, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -481,7 +481,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: abstract}], abstract, abstract)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: abstract}], abstract, abstract)
       handleIdentifier(abstract, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -497,7 +497,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: as}], as, as)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: as}], as, as)
       handleIdentifier(as, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -508,7 +508,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: as}], as, as)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: as}], as, as)
       handleIdentifier(as, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -524,7 +524,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
       handleIdentifier(assert, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -535,7 +535,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
       handleIdentifier(assert, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -601,7 +601,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
       handleIdentifier(break, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -612,7 +612,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
       handleIdentifier(break, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -628,7 +628,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
       handleIdentifier(case, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -639,7 +639,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
       handleIdentifier(case, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -655,7 +655,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
       handleIdentifier(catch, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -666,7 +666,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
       handleIdentifier(catch, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -682,7 +682,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
       handleIdentifier(class, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -693,7 +693,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
       handleIdentifier(class, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -709,7 +709,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
       handleIdentifier(const, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -720,7 +720,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
       handleIdentifier(const, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -736,7 +736,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
       handleIdentifier(continue, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -747,7 +747,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
       handleIdentifier(continue, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -763,7 +763,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: covariant}], covariant, covariant)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: covariant}], covariant, covariant)
       handleIdentifier(covariant, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -774,7 +774,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: covariant}], covariant, covariant)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: covariant}], covariant, covariant)
       handleIdentifier(covariant, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -790,7 +790,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
       handleIdentifier(default, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -801,7 +801,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
       handleIdentifier(default, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -817,7 +817,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: deferred}], deferred, deferred)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: deferred}], deferred, deferred)
       handleIdentifier(deferred, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -828,7 +828,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: deferred}], deferred, deferred)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: deferred}], deferred, deferred)
       handleIdentifier(deferred, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -844,7 +844,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
       handleIdentifier(do, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -855,7 +855,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
       handleIdentifier(do, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -871,7 +871,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: dynamic}], dynamic, dynamic)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: dynamic}], dynamic, dynamic)
       handleIdentifier(dynamic, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -882,7 +882,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: dynamic}], dynamic, dynamic)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: dynamic}], dynamic, dynamic)
       handleIdentifier(dynamic, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -898,7 +898,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
       handleIdentifier(else, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -909,7 +909,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
       handleIdentifier(else, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -925,7 +925,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
       handleIdentifier(enum, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -936,7 +936,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
       handleIdentifier(enum, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -952,7 +952,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: export}], export, export)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: export}], export, export)
       handleIdentifier(export, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -963,7 +963,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: export}], export, export)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: export}], export, export)
       handleIdentifier(export, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -979,7 +979,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
       handleIdentifier(extends, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -990,7 +990,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
       handleIdentifier(extends, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1006,7 +1006,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extension}], extension, extension)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extension}], extension, extension)
       handleIdentifier(extension, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1017,7 +1017,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extension}], extension, extension)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extension}], extension, extension)
       handleIdentifier(extension, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1033,7 +1033,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: external}], external, external)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: external}], external, external)
       handleIdentifier(external, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1044,7 +1044,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: external}], external, external)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: external}], external, external)
       handleIdentifier(external, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1060,7 +1060,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: factory}], factory, factory)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: factory}], factory, factory)
       handleIdentifier(factory, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1071,7 +1071,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: factory}], factory, factory)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: factory}], factory, factory)
       handleIdentifier(factory, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1087,7 +1087,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
       handleIdentifier(false, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1098,7 +1098,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
       handleIdentifier(false, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1114,7 +1114,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
       handleIdentifier(final, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1125,7 +1125,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
       handleIdentifier(final, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1141,7 +1141,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
       handleIdentifier(finally, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1152,7 +1152,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
       handleIdentifier(finally, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1168,7 +1168,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
       handleIdentifier(for, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1179,7 +1179,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
       handleIdentifier(for, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1195,7 +1195,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: Function}], Function, Function)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: Function}], Function, Function)
       handleIdentifier(Function, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1206,7 +1206,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: Function}], Function, Function)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: Function}], Function, Function)
       handleIdentifier(Function, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1222,7 +1222,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: get}], get, get)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: get}], get, get)
       handleIdentifier(get, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1233,7 +1233,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: get}], get, get)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: get}], get, get)
       handleIdentifier(get, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1274,7 +1274,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
       handleIdentifier(if, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1285,7 +1285,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
       handleIdentifier(if, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1301,7 +1301,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: implements}], implements, implements)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: implements}], implements, implements)
       handleIdentifier(implements, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1312,7 +1312,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: implements}], implements, implements)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: implements}], implements, implements)
       handleIdentifier(implements, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1328,7 +1328,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: import}], import, import)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: import}], import, import)
       handleIdentifier(import, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1339,7 +1339,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: import}], import, import)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: import}], import, import)
       handleIdentifier(import, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1355,7 +1355,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
       handleIdentifier(in, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1366,7 +1366,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
       handleIdentifier(in, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1407,7 +1407,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: interface}], interface, interface)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: interface}], interface, interface)
       handleIdentifier(interface, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1418,7 +1418,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: interface}], interface, interface)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: interface}], interface, interface)
       handleIdentifier(interface, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1434,7 +1434,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
       handleIdentifier(is, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1445,7 +1445,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
       handleIdentifier(is, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1461,7 +1461,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: late}], late, late)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: late}], late, late)
       handleIdentifier(late, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1472,7 +1472,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: late}], late, late)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: late}], late, late)
       handleIdentifier(late, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1488,7 +1488,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: library}], library, library)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: library}], library, library)
       handleIdentifier(library, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1499,7 +1499,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: library}], library, library)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: library}], library, library)
       handleIdentifier(library, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1515,7 +1515,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: mixin}], mixin, mixin)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: mixin}], mixin, mixin)
       handleIdentifier(mixin, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1526,7 +1526,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: mixin}], mixin, mixin)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: mixin}], mixin, mixin)
       handleIdentifier(mixin, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1567,7 +1567,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
       handleIdentifier(new, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1578,7 +1578,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
       handleIdentifier(new, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1594,7 +1594,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
       handleIdentifier(null, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1605,7 +1605,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
       handleIdentifier(null, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1671,7 +1671,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: operator}], operator, operator)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: operator}], operator, operator)
       handleIdentifier(operator, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1682,7 +1682,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: operator}], operator, operator)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: operator}], operator, operator)
       handleIdentifier(operator, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1723,7 +1723,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: part}], part, part)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: part}], part, part)
       handleIdentifier(part, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1734,7 +1734,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: part}], part, part)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: part}], part, part)
       handleIdentifier(part, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1775,7 +1775,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: required}], required, required)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: required}], required, required)
       handleIdentifier(required, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1786,7 +1786,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: required}], required, required)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: required}], required, required)
       handleIdentifier(required, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1802,7 +1802,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
       handleIdentifier(rethrow, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1813,7 +1813,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
       handleIdentifier(rethrow, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1829,7 +1829,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
       handleIdentifier(return, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1840,7 +1840,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
       handleIdentifier(return, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1856,7 +1856,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: set}], set, set)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: set}], set, set)
       handleIdentifier(set, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1867,7 +1867,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: set}], set, set)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: set}], set, set)
       handleIdentifier(set, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1933,7 +1933,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: static}], static, static)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: static}], static, static)
       handleIdentifier(static, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1944,7 +1944,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: static}], static, static)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: static}], static, static)
       handleIdentifier(static, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1960,7 +1960,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
       handleIdentifier(super, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1971,7 +1971,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
       handleIdentifier(super, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -1987,7 +1987,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
       handleIdentifier(switch, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -1998,7 +1998,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
       handleIdentifier(switch, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2039,7 +2039,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
       handleIdentifier(this, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2050,7 +2050,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
       handleIdentifier(this, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2066,7 +2066,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
       handleIdentifier(throw, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2077,7 +2077,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
       handleIdentifier(throw, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2093,7 +2093,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
       handleIdentifier(true, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2104,7 +2104,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
       handleIdentifier(true, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2120,7 +2120,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
       handleIdentifier(try, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2131,7 +2131,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
       handleIdentifier(try, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2147,7 +2147,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: typedef}], typedef, typedef)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: typedef}], typedef, typedef)
       handleIdentifier(typedef, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2158,7 +2158,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: typedef}], typedef, typedef)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: typedef}], typedef, typedef)
       handleIdentifier(typedef, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2174,7 +2174,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
       handleIdentifier(var, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2185,7 +2185,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
       handleIdentifier(var, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2201,7 +2201,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
       handleIdentifier(void, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2213,7 +2213,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {token: =}], =, =)
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {lexeme: =}], =, =)
       handleIdentifier(, typedefDeclaration)
       handleNoTypeVariables(=)
       handleRecoverableError(MissingTypedefParameters, =, =)
@@ -2225,7 +2225,7 @@
   beginMetadataStar(=)
   endMetadataStar(0)
   beginTopLevelMember(=)
-    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '='., null, {token: =}], =, =)
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '='., null, {lexeme: =}], =, =)
     handleInvalidTopLevelDeclaration(=)
   endTopLevelDeclaration(void)
   beginMetadataStar(void)
@@ -2247,7 +2247,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
       handleIdentifier(while, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2258,7 +2258,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
       handleIdentifier(while, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
@@ -2274,7 +2274,7 @@
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
       handleVoidKeyword(void)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
       handleIdentifier(with, typedefDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.FunctionTypeAlias)
@@ -2285,7 +2285,7 @@
   endMetadataStar(0)
   beginUncategorizedTopLevelDeclaration(typedef)
     beginFunctionTypeAlias(typedef)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
       handleIdentifier(with, typedefDeclaration)
       handleNoTypeVariables(=)
       beginFunctionType(void)
diff --git a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect
index cc71477..45f76b0 100644
--- a/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/keyword_named_typedefs.dart.intertwined.expect
@@ -14,7 +14,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(abstract, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: abstract}], abstract, abstract)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: abstract}], abstract, abstract)
           listener: handleIdentifier(abstract, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(abstract, MemberKind.FunctionTypeAlias)
@@ -35,7 +35,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(abstract, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: abstract}], abstract, abstract)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'abstract' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: abstract}], abstract, abstract)
           listener: handleIdentifier(abstract, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -61,7 +61,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(as, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: as}], as, as)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: as}], as, as)
           listener: handleIdentifier(as, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(as, MemberKind.FunctionTypeAlias)
@@ -82,7 +82,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(as, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: as}], as, as)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'as' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: as}], as, as)
           listener: handleIdentifier(as, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -108,7 +108,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
           listener: handleIdentifier(assert, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(assert, MemberKind.FunctionTypeAlias)
@@ -129,7 +129,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(assert, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: assert}], assert, assert)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'assert' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: assert}], assert, assert)
           listener: handleIdentifier(assert, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -241,7 +241,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
           listener: handleIdentifier(break, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(break, MemberKind.FunctionTypeAlias)
@@ -262,7 +262,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(break, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: break}], break, break)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'break' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: break}], break, break)
           listener: handleIdentifier(break, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -288,7 +288,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
           listener: handleIdentifier(case, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(case, MemberKind.FunctionTypeAlias)
@@ -309,7 +309,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(case, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: case}], case, case)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'case' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: case}], case, case)
           listener: handleIdentifier(case, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -335,7 +335,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
           listener: handleIdentifier(catch, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(catch, MemberKind.FunctionTypeAlias)
@@ -356,7 +356,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(catch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: catch}], catch, catch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'catch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: catch}], catch, catch)
           listener: handleIdentifier(catch, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -382,7 +382,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
           listener: handleIdentifier(class, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(class, MemberKind.FunctionTypeAlias)
@@ -403,7 +403,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(class, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: class}], class, class)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'class' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: class}], class, class)
           listener: handleIdentifier(class, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -429,7 +429,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
           listener: handleIdentifier(const, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(const, MemberKind.FunctionTypeAlias)
@@ -450,7 +450,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(const, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: const}], const, const)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'const' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: const}], const, const)
           listener: handleIdentifier(const, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -476,7 +476,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
           listener: handleIdentifier(continue, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(continue, MemberKind.FunctionTypeAlias)
@@ -497,7 +497,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(continue, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: continue}], continue, continue)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'continue' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: continue}], continue, continue)
           listener: handleIdentifier(continue, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -523,7 +523,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(covariant, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: covariant}], covariant, covariant)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: covariant}], covariant, covariant)
           listener: handleIdentifier(covariant, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(covariant, MemberKind.FunctionTypeAlias)
@@ -544,7 +544,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(covariant, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: covariant}], covariant, covariant)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'covariant' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: covariant}], covariant, covariant)
           listener: handleIdentifier(covariant, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -570,7 +570,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
           listener: handleIdentifier(default, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(default, MemberKind.FunctionTypeAlias)
@@ -591,7 +591,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(default, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: default}], default, default)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'default' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: default}], default, default)
           listener: handleIdentifier(default, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -617,7 +617,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(deferred, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: deferred}], deferred, deferred)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: deferred}], deferred, deferred)
           listener: handleIdentifier(deferred, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(deferred, MemberKind.FunctionTypeAlias)
@@ -638,7 +638,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(deferred, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: deferred}], deferred, deferred)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'deferred' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: deferred}], deferred, deferred)
           listener: handleIdentifier(deferred, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -664,7 +664,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
           listener: handleIdentifier(do, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(do, MemberKind.FunctionTypeAlias)
@@ -685,7 +685,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(do, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: do}], do, do)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'do' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: do}], do, do)
           listener: handleIdentifier(do, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -711,7 +711,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(dynamic, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: dynamic}], dynamic, dynamic)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: dynamic}], dynamic, dynamic)
           listener: handleIdentifier(dynamic, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(dynamic, MemberKind.FunctionTypeAlias)
@@ -732,7 +732,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(dynamic, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: dynamic}], dynamic, dynamic)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'dynamic' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: dynamic}], dynamic, dynamic)
           listener: handleIdentifier(dynamic, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -758,7 +758,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
           listener: handleIdentifier(else, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(else, MemberKind.FunctionTypeAlias)
@@ -779,7 +779,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(else, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: else}], else, else)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'else' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: else}], else, else)
           listener: handleIdentifier(else, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -805,7 +805,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
           listener: handleIdentifier(enum, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(enum, MemberKind.FunctionTypeAlias)
@@ -826,7 +826,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(enum, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: enum}], enum, enum)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'enum' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: enum}], enum, enum)
           listener: handleIdentifier(enum, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -852,7 +852,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(export, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: export}], export, export)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: export}], export, export)
           listener: handleIdentifier(export, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(export, MemberKind.FunctionTypeAlias)
@@ -873,7 +873,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(export, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: export}], export, export)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'export' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: export}], export, export)
           listener: handleIdentifier(export, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -899,7 +899,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
           listener: handleIdentifier(extends, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(extends, MemberKind.FunctionTypeAlias)
@@ -920,7 +920,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(extends, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extends}], extends, extends)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extends' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extends}], extends, extends)
           listener: handleIdentifier(extends, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -946,7 +946,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(extension, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extension}], extension, extension)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extension}], extension, extension)
           listener: handleIdentifier(extension, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(extension, MemberKind.FunctionTypeAlias)
@@ -967,7 +967,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(extension, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: extension}], extension, extension)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'extension' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: extension}], extension, extension)
           listener: handleIdentifier(extension, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -993,7 +993,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(external, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: external}], external, external)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: external}], external, external)
           listener: handleIdentifier(external, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(external, MemberKind.FunctionTypeAlias)
@@ -1014,7 +1014,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(external, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: external}], external, external)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'external' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: external}], external, external)
           listener: handleIdentifier(external, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1040,7 +1040,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(factory, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: factory}], factory, factory)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: factory}], factory, factory)
           listener: handleIdentifier(factory, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(factory, MemberKind.FunctionTypeAlias)
@@ -1061,7 +1061,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(factory, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: factory}], factory, factory)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'factory' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: factory}], factory, factory)
           listener: handleIdentifier(factory, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1087,7 +1087,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
           listener: handleIdentifier(false, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(false, MemberKind.FunctionTypeAlias)
@@ -1108,7 +1108,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(false, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: false}], false, false)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'false' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: false}], false, false)
           listener: handleIdentifier(false, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1134,7 +1134,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
           listener: handleIdentifier(final, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(final, MemberKind.FunctionTypeAlias)
@@ -1155,7 +1155,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(final, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: final}], final, final)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'final' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: final}], final, final)
           listener: handleIdentifier(final, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1181,7 +1181,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
           listener: handleIdentifier(finally, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(finally, MemberKind.FunctionTypeAlias)
@@ -1202,7 +1202,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(finally, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: finally}], finally, finally)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'finally' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: finally}], finally, finally)
           listener: handleIdentifier(finally, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1228,7 +1228,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
           listener: handleIdentifier(for, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(for, MemberKind.FunctionTypeAlias)
@@ -1249,7 +1249,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(for, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: for}], for, for)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'for' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: for}], for, for)
           listener: handleIdentifier(for, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1275,7 +1275,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(Function, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: Function}], Function, Function)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: Function}], Function, Function)
           listener: handleIdentifier(Function, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(Function, MemberKind.FunctionTypeAlias)
@@ -1296,7 +1296,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(Function, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: Function}], Function, Function)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'Function' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: Function}], Function, Function)
           listener: handleIdentifier(Function, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1322,7 +1322,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(get, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: get}], get, get)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: get}], get, get)
           listener: handleIdentifier(get, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(get, MemberKind.FunctionTypeAlias)
@@ -1343,7 +1343,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(get, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: get}], get, get)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'get' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: get}], get, get)
           listener: handleIdentifier(get, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1412,7 +1412,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
           listener: handleIdentifier(if, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(if, MemberKind.FunctionTypeAlias)
@@ -1433,7 +1433,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(if, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: if}], if, if)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'if' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: if}], if, if)
           listener: handleIdentifier(if, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1459,7 +1459,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(implements, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: implements}], implements, implements)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: implements}], implements, implements)
           listener: handleIdentifier(implements, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(implements, MemberKind.FunctionTypeAlias)
@@ -1480,7 +1480,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(implements, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: implements}], implements, implements)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'implements' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: implements}], implements, implements)
           listener: handleIdentifier(implements, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1506,7 +1506,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(import, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: import}], import, import)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: import}], import, import)
           listener: handleIdentifier(import, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(import, MemberKind.FunctionTypeAlias)
@@ -1527,7 +1527,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(import, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: import}], import, import)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'import' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: import}], import, import)
           listener: handleIdentifier(import, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1553,7 +1553,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
           listener: handleIdentifier(in, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(in, MemberKind.FunctionTypeAlias)
@@ -1574,7 +1574,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(in, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: in}], in, in)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'in' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: in}], in, in)
           listener: handleIdentifier(in, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1643,7 +1643,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(interface, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: interface}], interface, interface)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: interface}], interface, interface)
           listener: handleIdentifier(interface, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(interface, MemberKind.FunctionTypeAlias)
@@ -1664,7 +1664,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(interface, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: interface}], interface, interface)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'interface' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: interface}], interface, interface)
           listener: handleIdentifier(interface, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1690,7 +1690,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
           listener: handleIdentifier(is, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(is, MemberKind.FunctionTypeAlias)
@@ -1711,7 +1711,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(is, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: is}], is, is)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'is' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: is}], is, is)
           listener: handleIdentifier(is, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1737,7 +1737,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: late}], late, late)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: late}], late, late)
           listener: handleIdentifier(late, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(late, MemberKind.FunctionTypeAlias)
@@ -1758,7 +1758,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: late}], late, late)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'late' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: late}], late, late)
           listener: handleIdentifier(late, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1784,7 +1784,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(library, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: library}], library, library)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: library}], library, library)
           listener: handleIdentifier(library, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(library, MemberKind.FunctionTypeAlias)
@@ -1805,7 +1805,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(library, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: library}], library, library)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'library' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: library}], library, library)
           listener: handleIdentifier(library, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1831,7 +1831,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(mixin, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: mixin}], mixin, mixin)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: mixin}], mixin, mixin)
           listener: handleIdentifier(mixin, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(mixin, MemberKind.FunctionTypeAlias)
@@ -1852,7 +1852,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(mixin, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: mixin}], mixin, mixin)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'mixin' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: mixin}], mixin, mixin)
           listener: handleIdentifier(mixin, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1921,7 +1921,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
           listener: handleIdentifier(new, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(new, MemberKind.FunctionTypeAlias)
@@ -1942,7 +1942,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(new, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: new}], new, new)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'new' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: new}], new, new)
           listener: handleIdentifier(new, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -1968,7 +1968,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
           listener: handleIdentifier(null, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(null, MemberKind.FunctionTypeAlias)
@@ -1989,7 +1989,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(null, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: null}], null, null)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'null' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: null}], null, null)
           listener: handleIdentifier(null, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2101,7 +2101,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(operator, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: operator}], operator, operator)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: operator}], operator, operator)
           listener: handleIdentifier(operator, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(operator, MemberKind.FunctionTypeAlias)
@@ -2122,7 +2122,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(operator, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: operator}], operator, operator)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'operator' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: operator}], operator, operator)
           listener: handleIdentifier(operator, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2191,7 +2191,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(part, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: part}], part, part)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: part}], part, part)
           listener: handleIdentifier(part, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(part, MemberKind.FunctionTypeAlias)
@@ -2212,7 +2212,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(part, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: part}], part, part)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'part' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: part}], part, part)
           listener: handleIdentifier(part, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2281,7 +2281,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(required, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: required}], required, required)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: required}], required, required)
           listener: handleIdentifier(required, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(required, MemberKind.FunctionTypeAlias)
@@ -2302,7 +2302,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(required, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: required}], required, required)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'required' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: required}], required, required)
           listener: handleIdentifier(required, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2328,7 +2328,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
           listener: handleIdentifier(rethrow, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(rethrow, MemberKind.FunctionTypeAlias)
@@ -2349,7 +2349,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(rethrow, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: rethrow}], rethrow, rethrow)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'rethrow' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: rethrow}], rethrow, rethrow)
           listener: handleIdentifier(rethrow, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2375,7 +2375,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
           listener: handleIdentifier(return, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(return, MemberKind.FunctionTypeAlias)
@@ -2396,7 +2396,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(return, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: return}], return, return)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'return' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: return}], return, return)
           listener: handleIdentifier(return, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2422,7 +2422,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(set, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: set}], set, set)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: set}], set, set)
           listener: handleIdentifier(set, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(set, MemberKind.FunctionTypeAlias)
@@ -2443,7 +2443,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(set, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: set}], set, set)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'set' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: set}], set, set)
           listener: handleIdentifier(set, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2555,7 +2555,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(static, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: static}], static, static)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: static}], static, static)
           listener: handleIdentifier(static, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(static, MemberKind.FunctionTypeAlias)
@@ -2576,7 +2576,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(static, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: static}], static, static)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'static' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: static}], static, static)
           listener: handleIdentifier(static, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2602,7 +2602,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
           listener: handleIdentifier(super, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(super, MemberKind.FunctionTypeAlias)
@@ -2623,7 +2623,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(super, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: super}], super, super)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'super' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: super}], super, super)
           listener: handleIdentifier(super, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2649,7 +2649,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
           listener: handleIdentifier(switch, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(switch, MemberKind.FunctionTypeAlias)
@@ -2670,7 +2670,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(switch, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: switch}], switch, switch)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'switch' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: switch}], switch, switch)
           listener: handleIdentifier(switch, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2739,7 +2739,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
           listener: handleIdentifier(this, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(this, MemberKind.FunctionTypeAlias)
@@ -2760,7 +2760,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(this, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: this}], this, this)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'this' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: this}], this, this)
           listener: handleIdentifier(this, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2786,7 +2786,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
           listener: handleIdentifier(throw, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(throw, MemberKind.FunctionTypeAlias)
@@ -2807,7 +2807,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(throw, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: throw}], throw, throw)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'throw' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: throw}], throw, throw)
           listener: handleIdentifier(throw, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2833,7 +2833,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
           listener: handleIdentifier(true, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(true, MemberKind.FunctionTypeAlias)
@@ -2854,7 +2854,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(true, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: true}], true, true)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'true' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: true}], true, true)
           listener: handleIdentifier(true, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2880,7 +2880,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
           listener: handleIdentifier(try, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(try, MemberKind.FunctionTypeAlias)
@@ -2901,7 +2901,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(try, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: try}], try, try)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'try' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: try}], try, try)
           listener: handleIdentifier(try, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2927,7 +2927,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(typedef, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: typedef}], typedef, typedef)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: typedef}], typedef, typedef)
           listener: handleIdentifier(typedef, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(typedef, MemberKind.FunctionTypeAlias)
@@ -2948,7 +2948,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(typedef, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: typedef}], typedef, typedef)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'typedef' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: typedef}], typedef, typedef)
           listener: handleIdentifier(typedef, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -2974,7 +2974,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
           listener: handleIdentifier(var, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(var, MemberKind.FunctionTypeAlias)
@@ -2995,7 +2995,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(var, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: var}], var, var)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'var' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: var}], var, var)
           listener: handleIdentifier(var, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -3021,7 +3021,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(void, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: void}], void, void)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'void' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: void}], void, void)
           listener: handleIdentifier(void, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(void, MemberKind.FunctionTypeAlias)
@@ -3042,9 +3042,9 @@
         listener: beginFunctionTypeAlias(typedef)
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, false)
-          insertSyntheticIdentifier(void, typedefDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {token: =}], messageOnToken: null)
-            reportRecoverableError(=, Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {token: =}])
-              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {token: =}], =, =)
+          insertSyntheticIdentifier(void, typedefDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {lexeme: =}], messageOnToken: null)
+            reportRecoverableError(=, Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {lexeme: =}])
+              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '='., Try inserting an identifier before '='., {lexeme: =}], =, =)
             rewriter()
           listener: handleIdentifier(, typedefDeclaration)
         listener: handleNoTypeVariables(=)
@@ -3069,7 +3069,7 @@
     listener: beginTopLevelMember(=)
     parseInvalidTopLevelDeclaration(;)
       reportRecoverableErrorWithToken(=, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '='., null, {token: =}], =, =)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '='., null, {lexeme: =}], =, =)
       listener: handleInvalidTopLevelDeclaration(=)
   listener: endTopLevelDeclaration(void)
   parseTopLevelDeclarationImpl(=, Instance of 'DirectiveContext')
@@ -3111,7 +3111,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
           listener: handleIdentifier(while, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(while, MemberKind.FunctionTypeAlias)
@@ -3132,7 +3132,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(while, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: while}], while, while)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'while' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: while}], while, while)
           listener: handleIdentifier(while, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
@@ -3158,7 +3158,7 @@
         listener: handleVoidKeyword(void)
         ensureIdentifierPotentiallyRecovered(void, typedefDeclaration, true)
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, typedefDeclaration)
         listener: handleNoTypeVariables(()
         parseFormalParametersRequiredOpt(with, MemberKind.FunctionTypeAlias)
@@ -3179,7 +3179,7 @@
         listener: beginFunctionTypeAlias(typedef)
         ensureIdentifierPotentiallyRecovered(typedef, typedefDeclaration, true)
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, typedefDeclaration)
         listener: handleNoTypeVariables(=)
         listener: beginFunctionType(void)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
index a86e853..486a686 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.expect
@@ -44,7 +44,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(with)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
             handleIdentifier(with, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -62,7 +62,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(with)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
             handleIdentifier(with, fieldDeclaration)
             beginFieldInitializer(=)
               handleLiteralInt(7)
@@ -76,7 +76,7 @@
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(get)
             handleType(int, null)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
             handleIdentifier(with, methodDeclaration)
             handleNoTypeVariables(=>)
             handleNoFormalParameters(=>, MemberKind.NonStaticMethod)
@@ -91,7 +91,7 @@
         beginMember()
           beginMethod(null, null, null, null, set, with)
             handleVoidKeyword(void)
-            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
             handleIdentifier(with, methodDeclaration)
             handleNoTypeVariables(()
             beginFormalParameters((, MemberKind.NonStaticMethod)
@@ -121,7 +121,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
       handleIdentifier(with, topLevelFunctionDeclaration)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
@@ -138,7 +138,7 @@
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(with)
       handleType(int, null)
-      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+      handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
       handleIdentifier(with, topLevelVariableDeclaration)
       beginFieldInitializer(=)
         handleLiteralInt(7)
diff --git a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
index 4c53a03..2b0370c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/method_called_with.dart.intertwined.expect
@@ -41,7 +41,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, methodDeclaration, true)
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, methodDeclaration)
                 parseQualifiedRestOpt(with, methodDeclarationContinuation)
                 parseMethodTypeVar(with)
@@ -85,7 +85,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(int, fieldDeclaration, true)
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, fieldDeclaration)
                 parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.Class, C)
                   listener: beginFieldInitializer(=)
@@ -113,7 +113,7 @@
                 listener: handleType(int, null)
                 ensureIdentifierPotentiallyRecovered(get, methodDeclaration, true)
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, methodDeclaration)
                 parseQualifiedRestOpt(with, methodDeclarationContinuation)
                 listener: handleNoTypeVariables(=>)
@@ -152,7 +152,7 @@
                 listener: handleVoidKeyword(void)
                 ensureIdentifierPotentiallyRecovered(set, methodDeclaration, true)
                   reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+                    listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
                   listener: handleIdentifier(with, methodDeclaration)
                 parseQualifiedRestOpt(with, methodDeclarationContinuation)
                 listener: handleNoTypeVariables(()
@@ -205,7 +205,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelFunctionDeclaration, true)
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, topLevelFunctionDeclaration)
         parseMethodTypeVar(with)
           listener: handleNoTypeVariables(()
@@ -245,7 +245,7 @@
         listener: handleType(int, null)
         ensureIdentifierPotentiallyRecovered(int, topLevelVariableDeclaration, true)
           reportRecoverableErrorWithToken(with, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {token: with}], with, with)
+            listener: handleRecoverableError(Message[ExpectedIdentifierButGotKeyword, 'with' can't be used as an identifier because it's a keyword., Try renaming this to be an identifier that isn't a keyword., {lexeme: with}], with, with)
           listener: handleIdentifier(with, topLevelVariableDeclaration)
         parseFieldInitializerOpt(with, with, null, null, null, null, DeclarationKind.TopLevel, null)
           listener: beginFieldInitializer(=)
diff --git a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect
index 7b27d65..4e6493f 100644
--- a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.expect
Binary files differ
diff --git a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect
index 28afeda..70ee37c 100644
--- a/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/error_recovery/utf_16_le_content.crash_dart.intertwined.expect
@@ -9,7 +9,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(AsciiControlCharacterToken(0))
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(/)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -19,7 +19,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(/)
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(C)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -140,8 +140,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(2, Message[ExpectedFunctionBody, Expected a function body, but got '2'., null, {token: 2}])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '2'., null, {token: 2}], 2, 2)
+            reportRecoverableError(2, Message[ExpectedFunctionBody, Expected a function body, but got '2'., null, {lexeme: 2}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '2'., null, {lexeme: 2}], 2, 2)
             insertBlock())
               rewriter()
               rewriter()
@@ -155,7 +155,7 @@
     listener: beginTopLevelMember(2)
     parseInvalidTopLevelDeclaration(})
       reportRecoverableErrorWithToken(2, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '2'., null, {token: 2}], 2, 2)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '2'., null, {lexeme: 2}], 2, 2)
       listener: handleInvalidTopLevelDeclaration(2)
   listener: endTopLevelDeclaration(0)
   parseTopLevelDeclarationImpl(2, Instance of 'DirectiveContext')
@@ -165,7 +165,7 @@
     listener: beginTopLevelMember(0)
     parseInvalidTopLevelDeclaration(2)
       reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '0'., null, {token: 0}], 0, 0)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '0'., null, {lexeme: 0}], 0, 0)
       listener: handleInvalidTopLevelDeclaration(0)
   listener: endTopLevelDeclaration(2)
   parseTopLevelDeclarationImpl(0, Instance of 'DirectiveContext')
@@ -175,7 +175,7 @@
     listener: beginTopLevelMember(2)
     parseInvalidTopLevelDeclaration(0)
       reportRecoverableErrorWithToken(2, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '2'., null, {token: 2}], 2, 2)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '2'., null, {lexeme: 2}], 2, 2)
       listener: handleInvalidTopLevelDeclaration(2)
   listener: endTopLevelDeclaration(0)
   parseTopLevelDeclarationImpl(2, Instance of 'DirectiveContext')
@@ -185,7 +185,7 @@
     listener: beginTopLevelMember(0)
     parseInvalidTopLevelDeclaration(2)
       reportRecoverableErrorWithToken(0, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '0'., null, {token: 0}], 0, 0)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '0'., null, {lexeme: 0}], 0, 0)
       listener: handleInvalidTopLevelDeclaration(0)
   listener: endTopLevelDeclaration(,)
   parseTopLevelDeclarationImpl(0, Instance of 'DirectiveContext')
@@ -195,7 +195,7 @@
     listener: beginTopLevelMember(,)
     parseInvalidTopLevelDeclaration(0)
       reportRecoverableErrorWithToken(,, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ','., null, {token: ,}], ,, ,)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got ','., null, {lexeme: ,}], ,, ,)
       listener: handleInvalidTopLevelDeclaration(,)
   listener: endTopLevelDeclaration(t)
   parseTopLevelDeclarationImpl(,, Instance of 'DirectiveContext')
@@ -670,7 +670,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(;)
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(/)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -680,7 +680,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(/)
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(f)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -795,8 +795,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             insertBlock())
               rewriter()
               rewriter()
@@ -810,7 +810,7 @@
     listener: beginTopLevelMember(.)
     parseInvalidTopLevelDeclaration(})
       reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
       listener: handleInvalidTopLevelDeclaration(.)
   listener: endTopLevelDeclaration(A)
   parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
@@ -1326,7 +1326,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(;)
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(/)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -1336,7 +1336,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(/)
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(B)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -1389,7 +1389,7 @@
     listener: beginTopLevelMember(-)
     parseInvalidTopLevelDeclaration(;)
       reportRecoverableErrorWithToken(-, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '-'., null, {token: -}], -, -)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '-'., null, {lexeme: -}], -, -)
       listener: handleInvalidTopLevelDeclaration(-)
   listener: endTopLevelDeclaration(s)
   parseTopLevelDeclarationImpl(-, Instance of 'DirectiveContext')
@@ -1798,8 +1798,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             insertBlock())
               rewriter()
               rewriter()
@@ -1813,7 +1813,7 @@
     listener: beginTopLevelMember(.)
     parseInvalidTopLevelDeclaration(})
       reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
       listener: handleInvalidTopLevelDeclaration(.)
   listener: endTopLevelDeclaration(m)
   parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
@@ -1886,8 +1886,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             insertBlock())
               rewriter()
               rewriter()
@@ -1901,7 +1901,7 @@
     listener: beginTopLevelMember(.)
     parseInvalidTopLevelDeclaration(})
       reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
       listener: handleInvalidTopLevelDeclaration(.)
   listener: endTopLevelDeclaration(/)
   parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
@@ -1911,7 +1911,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(.)
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(/)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -1921,7 +1921,7 @@
     listener: beginTopLevelMember(/)
     parseInvalidTopLevelDeclaration(/)
       reportRecoverableErrorWithToken(/, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {token: /}], /, /)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '/'., null, {lexeme: /}], /, /)
       listener: handleInvalidTopLevelDeclaration(/)
   listener: endTopLevelDeclaration(T)
   parseTopLevelDeclarationImpl(/, Instance of 'DirectiveContext')
@@ -2141,7 +2141,7 @@
     listener: beginTopLevelMember(-)
     parseInvalidTopLevelDeclaration(;)
       reportRecoverableErrorWithToken(-, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '-'., null, {token: -}], -, -)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '-'., null, {lexeme: -}], -, -)
       listener: handleInvalidTopLevelDeclaration(-)
   listener: endTopLevelDeclaration(1)
   parseTopLevelDeclarationImpl(-, Instance of 'DirectiveContext')
@@ -2151,7 +2151,7 @@
     listener: beginTopLevelMember(1)
     parseInvalidTopLevelDeclaration(-)
       reportRecoverableErrorWithToken(1, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '1'., null, {token: 1}], 1, 1)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '1'., null, {lexeme: 1}], 1, 1)
       listener: handleInvalidTopLevelDeclaration(1)
   listener: endTopLevelDeclaration(6)
   parseTopLevelDeclarationImpl(1, Instance of 'DirectiveContext')
@@ -2161,7 +2161,7 @@
     listener: beginTopLevelMember(6)
     parseInvalidTopLevelDeclaration(1)
       reportRecoverableErrorWithToken(6, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '6'., null, {token: 6}], 6, 6)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '6'., null, {lexeme: 6}], 6, 6)
       listener: handleInvalidTopLevelDeclaration(6)
   listener: endTopLevelDeclaration(L)
   parseTopLevelDeclarationImpl(6, Instance of 'DirectiveContext')
@@ -2192,8 +2192,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             insertBlock())
               rewriter()
               rewriter()
@@ -2207,7 +2207,7 @@
     listener: beginTopLevelMember(.)
     parseInvalidTopLevelDeclaration(})
       reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
       listener: handleInvalidTopLevelDeclaration(.)
   listener: endTopLevelDeclaration(m)
   parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
@@ -2515,611 +2515,611 @@
     listener: handleErrorToken(EncodingErrorToken())
     listener: handleRecoverableError(Encoding, EncodingErrorToken(), EncodingErrorToken())
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(UnterminatedString("))
     listener: handleRecoverableError(Message[UnterminatedString, String starting with " must end with "., null, {string: ", string2: "}], UnterminatedString("), UnterminatedString("))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(UnterminatedString("))
     listener: handleRecoverableError(Message[UnterminatedString, String starting with " must end with "., null, {string: ", string2: "}], UnterminatedString("), UnterminatedString("))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
     listener: handleErrorToken(AsciiControlCharacterToken(0))
-    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {codePoint: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
+    listener: handleRecoverableError(Message[AsciiControlCharacter, The control character U+0000 can only be used in strings and comments., null, {unicode: 0}], AsciiControlCharacterToken(0), AsciiControlCharacterToken(0))
   listener: endCompilationUnit(114, )
diff --git a/pkg/front_end/parser_testcases/extensions/covariant.dart.expect b/pkg/front_end/parser_testcases/extensions/covariant.dart.expect
index 0b1d80d..9afdfed 100644
--- a/pkg/front_end/parser_testcases/extensions/covariant.dart.expect
+++ b/pkg/front_end/parser_testcases/extensions/covariant.dart.expect
@@ -56,7 +56,7 @@
             beginFormalParameters((, MemberKind.ExtensionNonStaticMethod)
               beginMetadataStar(covariant)
               endMetadataStar(0)
-              handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {token: covariant}], covariant, covariant)
+              handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {lexeme: covariant}], covariant, covariant)
               beginFormalParameter(covariant, MemberKind.ExtensionNonStaticMethod, null, covariant, null)
                 handleIdentifier(A, typeReference)
                 handleNoTypeArguments(child)
diff --git a/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect b/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect
index 2c95ee7..6bd925a 100644
--- a/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extensions/covariant.dart.intertwined.expect
@@ -99,7 +99,7 @@
                         listener: beginMetadataStar(covariant)
                         listener: endMetadataStar(0)
                       reportRecoverableErrorWithToken(covariant, Instance of 'Template<(Token) => Message>')
-                        listener: handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {token: covariant}], covariant, covariant)
+                        listener: handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {lexeme: covariant}], covariant, covariant)
                       listener: beginFormalParameter(covariant, MemberKind.ExtensionNonStaticMethod, null, covariant, null)
                       listener: handleIdentifier(A, typeReference)
                       listener: handleNoTypeArguments(child)
diff --git a/pkg/front_end/parser_testcases/extensions/static_covariant.dart.expect b/pkg/front_end/parser_testcases/extensions/static_covariant.dart.expect
index 160198b..57bc44a 100644
--- a/pkg/front_end/parser_testcases/extensions/static_covariant.dart.expect
+++ b/pkg/front_end/parser_testcases/extensions/static_covariant.dart.expect
@@ -56,7 +56,7 @@
             beginFormalParameters((, MemberKind.ExtensionStaticMethod)
               beginMetadataStar(covariant)
               endMetadataStar(0)
-              handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {token: covariant}], covariant, covariant)
+              handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {lexeme: covariant}], covariant, covariant)
               beginFormalParameter(covariant, MemberKind.ExtensionStaticMethod, null, covariant, null)
                 handleIdentifier(A, typeReference)
                 handleNoTypeArguments(child)
diff --git a/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect b/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect
index 43700a3..d98b093 100644
--- a/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/extensions/static_covariant.dart.intertwined.expect
@@ -99,7 +99,7 @@
                         listener: beginMetadataStar(covariant)
                         listener: endMetadataStar(0)
                       reportRecoverableErrorWithToken(covariant, Instance of 'Template<(Token) => Message>')
-                        listener: handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {token: covariant}], covariant, covariant)
+                        listener: handleRecoverableError(Message[ExtraneousModifierInExtension, Can't have modifier 'covariant' in an extension., Try removing 'covariant'., {lexeme: covariant}], covariant, covariant)
                       listener: beginFormalParameter(covariant, MemberKind.ExtensionStaticMethod, null, covariant, null)
                       listener: handleIdentifier(A, typeReference)
                       listener: handleNoTypeArguments(child)
diff --git a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect
index 5bdec1e..f96c13a 100644
--- a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect
+++ b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.expect
@@ -44,14 +44,14 @@
       beginFormalParameters((, MemberKind.TopLevelMethod)
       endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
-      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
       handleInvalidFunctionBody({)
     endTopLevelMethod(x, null, })
   endTopLevelDeclaration(.)
   beginMetadataStar(.)
   endMetadataStar(0)
   beginTopLevelMember(.)
-    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
     handleInvalidTopLevelDeclaration(.)
   endTopLevelDeclaration(y)
   beginMetadataStar(y)
@@ -77,14 +77,14 @@
       beginFormalParameters((, MemberKind.TopLevelMethod)
       endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
       handleAsyncModifier(null, null)
-      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+      handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
       handleInvalidFunctionBody({)
     endTopLevelMethod(x, null, })
   endTopLevelDeclaration(.)
   beginMetadataStar(.)
   endMetadataStar(0)
   beginTopLevelMember(.)
-    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+    handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
     handleInvalidTopLevelDeclaration(.)
   endTopLevelDeclaration(z)
   beginMetadataStar(z)
diff --git a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect
index ef23755..c9238c0 100644
--- a/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/ambiguous_builder_01.dart.intertwined.expect
@@ -29,8 +29,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             insertBlock())
               rewriter()
               rewriter()
@@ -44,7 +44,7 @@
     listener: beginTopLevelMember(.)
     parseInvalidTopLevelDeclaration(})
       reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
       listener: handleInvalidTopLevelDeclaration(.)
   listener: endTopLevelDeclaration(y)
   parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
@@ -99,8 +99,8 @@
           inPlainSync()
         parseFunctionBody(), false, false)
           ensureBlock(), Instance of 'Template<(Token) => Message>', null)
-            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}])
-              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {token: .}], ., .)
+            reportRecoverableError(., Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}])
+              listener: handleRecoverableError(Message[ExpectedFunctionBody, Expected a function body, but got '.'., null, {lexeme: .}], ., .)
             insertBlock())
               rewriter()
               rewriter()
@@ -114,7 +114,7 @@
     listener: beginTopLevelMember(.)
     parseInvalidTopLevelDeclaration(})
       reportRecoverableErrorWithToken(., Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {token: .}], ., .)
+        listener: handleRecoverableError(Message[ExpectedDeclaration, Expected a declaration, but got '.'., null, {lexeme: .}], ., .)
       listener: handleInvalidTopLevelDeclaration(.)
   listener: endTopLevelDeclaration(z)
   parseTopLevelDeclarationImpl(., Instance of 'DirectiveContext')
diff --git a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect
index 4f4ca4b..0d03eb7 100644
--- a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect
+++ b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.expect
@@ -28,5 +28,5 @@
     endTopLevelMethod(main, null, })
   endTopLevelDeclaration()
   handleErrorToken(UnmatchedToken({))
-  handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, token: {}], UnmatchedToken({), UnmatchedToken({))
+  handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, lexeme: {}], UnmatchedToken({), UnmatchedToken({))
 endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect
index 7a76420..8c28f4cf 100644
--- a/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/missing_end_bracket.dart.intertwined.expect
@@ -64,5 +64,5 @@
   listener: endTopLevelDeclaration()
   reportAllErrorTokens(UnmatchedToken({))
     listener: handleErrorToken(UnmatchedToken({))
-    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, token: {}], UnmatchedToken({), UnmatchedToken({))
+    listener: handleRecoverableError(Message[UnmatchedToken, Can't find '}' to match '{'., null, {string: }, lexeme: {}], UnmatchedToken({), UnmatchedToken({))
   listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect
index d5836cb..3c769e2 100644
--- a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect
+++ b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.expect
@@ -8,7 +8,7 @@
   beginMetadataStar(class)
   endMetadataStar(0)
   beginClassOrNamedMixinApplicationPrelude(class)
-    handleRecoverableError(Message[BuiltInIdentifierInDeclaration, Can't use 'operator' as a name here., null, {token: operator}], operator, operator)
+    handleRecoverableError(Message[BuiltInIdentifierInDeclaration, Can't use 'operator' as a name here., null, {lexeme: operator}], operator, operator)
     handleIdentifier(operator, classOrMixinDeclaration)
     handleNoTypeVariables({)
     beginClassDeclaration(class, null, operator)
diff --git a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
index 5926593..2b3c832 100644
--- a/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/general/operator_hat_class.crash_dart.intertwined.expect
@@ -12,7 +12,7 @@
         listener: beginClassOrNamedMixinApplicationPrelude(class)
         ensureIdentifier(class, classOrMixinDeclaration)
           reportRecoverableErrorWithToken(operator, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[BuiltInIdentifierInDeclaration, Can't use 'operator' as a name here., null, {token: operator}], operator, operator)
+            listener: handleRecoverableError(Message[BuiltInIdentifierInDeclaration, Can't use 'operator' as a name here., null, {lexeme: operator}], operator, operator)
           listener: handleIdentifier(operator, classOrMixinDeclaration)
         listener: handleNoTypeVariables({)
         listener: beginClassDeclaration(class, null, operator)
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect
index 12e6b31..2baf5d9 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.expect
@@ -158,7 +158,7 @@
   endMetadataStar(0)
   beginTopLevelMember(var)
     handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}], abstract, abstract)
-    handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {token: abstract}], abstract, abstract)
+    handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
     beginFields(})
       handleNoType(abstract)
       handleIdentifier(foo, topLevelVariableDeclaration)
@@ -180,7 +180,7 @@
         beginMetadataStar(covariant)
         endMetadataStar(0)
         handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'required' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: required, string2: covariant}], required, required)
-        handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'required' here., Try removing 'required'., {token: required}], required, required)
+        handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'required' here., Try removing 'required'., {lexeme: required}], required, required)
         beginMember()
           beginFields({)
             handleRecoverableError(MissingConstFinalVarOrType, x, x)
diff --git a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect
index 0ce64ff..153ca2c 100644
--- a/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/error_recovery/abstract_placement.dart.intertwined.expect
@@ -185,7 +185,7 @@
       reportRecoverableError(abstract, Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}])
         listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'abstract' should be before the modifier 'var'., Try re-ordering the modifiers., {string: abstract, string2: var}], abstract, abstract)
       reportRecoverableErrorWithToken(abstract, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {token: abstract}], abstract, abstract)
+        listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'abstract' here., Try removing 'abstract'., {lexeme: abstract}], abstract, abstract)
       parseFields(}, null, null, null, null, null, var, abstract, Instance of 'NoType', foo, DeclarationKind.TopLevel, null, false)
         listener: beginFields(})
         listener: handleNoType(abstract)
@@ -228,7 +228,7 @@
               reportRecoverableError(required, Message[ModifierOutOfOrder, The modifier 'required' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: required, string2: covariant}])
                 listener: handleRecoverableError(Message[ModifierOutOfOrder, The modifier 'required' should be before the modifier 'covariant'., Try re-ordering the modifiers., {string: required, string2: covariant}], required, required)
               reportRecoverableErrorWithToken(required, Instance of 'Template<(Token) => Message>')
-                listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'required' here., Try removing 'required'., {token: required}], required, required)
+                listener: handleRecoverableError(Message[ExtraneousModifier, Can't have modifier 'required' here., Try removing 'required'., {lexeme: required}], required, required)
               listener: beginMember()
               isReservedKeyword(;)
               parseFields({, null, null, null, covariant, null, null, required, Instance of 'NoType', x, DeclarationKind.Class, Bar, false)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect
index 3804bfe..f733ac0 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.expect
@@ -15,7 +15,7 @@
     beginTopLevelMethod(, null)
       handleNoType()
       handleIdentifier(foo, topLevelFunctionDeclaration)
-      handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {token: !}], !, !)
+      handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {lexeme: !}], !, !)
       handleNoTypeVariables(()
       beginFormalParameters((, MemberKind.TopLevelMethod)
       endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
@@ -30,7 +30,7 @@
     beginTopLevelMethod(;, null)
       handleNoType(;)
       handleIdentifier(bar, topLevelFunctionDeclaration)
-      handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {token: !}], !, !)
+      handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {lexeme: !}], !, !)
       beginTypeVariables(<)
         beginMetadataStar(T)
         endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect
index 0fef178..468cde8 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_39776_prime5.dart.intertwined.expect
@@ -16,7 +16,7 @@
           listener: handleIdentifier(foo, topLevelFunctionDeclaration)
         parseMethodTypeVar(foo)
           reportRecoverableErrorWithToken(!, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {token: !}], !, !)
+            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {lexeme: !}], !, !)
           listener: handleNoTypeVariables(()
         parseGetterOrFormalParameters(!, foo, false, MemberKind.TopLevelMethod)
           parseFormalParameters(!, MemberKind.TopLevelMethod)
@@ -53,7 +53,7 @@
           listener: handleIdentifier(bar, topLevelFunctionDeclaration)
         parseMethodTypeVar(bar)
           reportRecoverableErrorWithToken(!, Instance of 'Template<(Token) => Message>')
-            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {token: !}], !, !)
+            listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token '!'., null, {lexeme: !}], !, !)
           listener: beginTypeVariables(<)
           listener: beginMetadataStar(T)
           listener: endMetadataStar(0)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect
index 088c5a4..d0ea866 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.expect
@@ -60,7 +60,7 @@
           handleParenthesizedExpression(()
           handleRecoverableError(Message[ExpectedButGot, Expected ':' before this., null, {string: :}], ;, ;)
           handleConditionalExpressionColon()
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {token: ;}], ;, ;)
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {lexeme: ;}], ;, ;)
           handleIdentifier(, expression)
           handleNoTypeArguments(;)
           handleNoArguments(;)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect
index 5573577..707c726 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_no_type_arguments.dart.intertwined.expect
@@ -153,7 +153,7 @@
                                 parseSend(:, expression)
                                   ensureIdentifier(:, expression)
                                     reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {token: ;}], ;, ;)
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ';'., Try inserting an identifier before ';'., {lexeme: ;}], ;, ;)
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(;)
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect
index 1357097..9f72c57 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.expect
@@ -78,7 +78,7 @@
               handleNoType(Foo)
             endTypeVariable(>, 0, null, null)
           endTypeVariables(<, >)
-          handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ;, ;)
+          handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ;, ;)
           beginFunctionExpression(()
             beginFormalParameters((, MemberKind.Local)
               beginMetadataStar(b)
@@ -95,7 +95,7 @@
           endFunctionExpression((, })
           handleRecoverableError(Message[ExpectedButGot, Expected ':' before this., null, {string: :}], }, })
           handleConditionalExpressionColon()
-          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {token: }}], }, })
+          handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
           handleIdentifier(, expression)
           handleNoTypeArguments(})
           handleNoArguments(})
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect
index ee731af..2079800 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_40267_method_call_with_type_arguments.dart.intertwined.expect
@@ -138,7 +138,7 @@
                                   listener: endTypeVariables(<, >)
                                   parseLiteralFunctionSuffix(>)
                                     reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ;, ;)
+                                      listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ;, ;)
                                     parseFunctionExpression(>)
                                       listener: beginFunctionExpression(()
                                       parseFormalParametersRequiredOpt(>, MemberKind.Local)
@@ -177,7 +177,7 @@
                                 parseSend(:, expression)
                                   ensureIdentifier(:, expression)
                                     reportRecoverableErrorWithToken(}, Instance of 'Template<(Token) => Message>')
-                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {token: }}], }, })
+                                      listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got '}'., Try inserting an identifier before '}'., {lexeme: }}], }, })
                                     rewriter()
                                     listener: handleIdentifier(, expression)
                                   listener: handleNoTypeArguments(})
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect
index 5a36aaf..311b6f8 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.expect
@@ -26,14 +26,14 @@
   beginMetadataStar(Future)
   endMetadataStar(0)
   beginTopLevelMember(Future)
-    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
     // WARNING: Reporting at eof for .
     beginFields()
       handleIdentifier(Future, typeReference)
       beginTypeArguments(<)
         handleIdentifier(List, typeReference)
         beginTypeArguments(<)
-          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {token: >>}], >>, >>)
+          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {lexeme: >>}], >>, >>)
           handleIdentifier(, typeReference)
           handleNoTypeArguments(>>)
           handleType(, null)
@@ -41,7 +41,7 @@
         handleType(List, null)
       endTypeArguments(1, <, >)
       handleType(Future, null)
-      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
       // WARNING: Reporting at eof for .
       handleIdentifier(, topLevelVariableDeclaration)
       handleNoFieldInitializer()
diff --git a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect
index 3bb97c6..e90884d 100644
--- a/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/nnbd/issue_44477.dart.intertwined.expect
@@ -9,8 +9,8 @@
     parseTopLevelMemberImpl()
       listener: beginTopLevelMember(Future)
       insertSyntheticIdentifier(>, methodDeclaration, message: null, messageOnToken: null)
-        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+        reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+          listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
           listener: // WARNING: Reporting at eof for .
         rewriter()
       parseFields(, null, null, null, null, null, null, , Instance of 'ComplexTypeInfo', , DeclarationKind.TopLevel, null, false)
@@ -22,7 +22,7 @@
           listener: handleIdentifier(List, typeReference)
         listener: beginTypeArguments(<)
         reportRecoverableErrorWithToken(>>, Instance of 'Template<(Token) => Message>')
-          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {token: >>}], >>, >>)
+          listener: handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {lexeme: >>}], >>, >>)
         rewriter()
         listener: handleIdentifier(, typeReference)
         listener: handleNoTypeArguments(>>)
@@ -32,9 +32,9 @@
         listener: endTypeArguments(1, <, >)
         listener: handleType(Future, null)
         ensureIdentifierPotentiallyRecovered(>, topLevelVariableDeclaration, false)
-          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], messageOnToken: null)
-            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }])
-              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {token: }], , )
+          insertSyntheticIdentifier(>, topLevelVariableDeclaration, message: Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], messageOnToken: null)
+            reportRecoverableError(, Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }])
+              listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
               listener: // WARNING: Reporting at eof for .
             rewriter()
           listener: handleIdentifier(, topLevelVariableDeclaration)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect
index 7abe937..405a6f7 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.expect
@@ -75,7 +75,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+    handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
     beginFields(late)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(x2)
@@ -87,7 +87,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+    handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
     beginFields(late)
       handleIdentifier(List, typeReference)
       beginTypeArguments(<)
@@ -103,7 +103,7 @@
   beginMetadataStar(late)
   endMetadataStar(0)
   beginTopLevelMember(late)
-    handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+    handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
     beginFields(late)
       handleIdentifier(int, typeReference)
       handleNoTypeArguments(x4)
@@ -126,7 +126,7 @@
   beginMetadataStar(;)
   endMetadataStar(0)
   beginTopLevelMember(;)
-    handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ;, ;)
+    handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ;, ;)
     handleInvalidTopLevelDeclaration(;)
   endTopLevelDeclaration(late)
   beginMetadataStar(late)
@@ -142,7 +142,7 @@
   beginMetadataStar(;)
   endMetadataStar(0)
   beginTopLevelMember(;)
-    handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ;, ;)
+    handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ;, ;)
     handleInvalidTopLevelDeclaration(;)
   endTopLevelDeclaration(main)
   beginMetadataStar(main)
@@ -180,7 +180,7 @@
             handleNoVariableInitializer(y1)
           endInitializedIdentifier(y1)
         endVariablesDeclaration(1, ;)
-        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMetadataStar(int)
         endMetadataStar(0)
         handleIdentifier(int, typeReference)
@@ -192,7 +192,7 @@
             handleNoVariableInitializer(y2)
           endInitializedIdentifier(y2)
         endVariablesDeclaration(1, ;)
-        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMetadataStar(List)
         endMetadataStar(0)
         handleIdentifier(List, typeReference)
@@ -208,7 +208,7 @@
             handleNoVariableInitializer(y3)
           endInitializedIdentifier(y3)
         endVariablesDeclaration(1, ;)
-        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMetadataStar(int)
         endMetadataStar(0)
         handleIdentifier(int, typeReference)
@@ -266,7 +266,7 @@
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
-        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMember()
           beginFields(late)
             handleIdentifier(int, typeReference)
@@ -278,7 +278,7 @@
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
-        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMember()
           beginFields(late)
             handleIdentifier(List, typeReference)
@@ -294,7 +294,7 @@
         endMember()
         beginMetadataStar(late)
         endMetadataStar(0)
-        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
         beginMember()
           beginFields(late)
             handleIdentifier(int, typeReference)
@@ -318,7 +318,7 @@
         beginMetadataStar(;)
         endMetadataStar(0)
         beginMember()
-          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
           handleInvalidMember(;)
         endMember()
         beginMetadataStar(late)
@@ -334,7 +334,7 @@
         beginMetadataStar(;)
         endMetadataStar(0)
         beginMember()
-          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+          handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
           handleInvalidMember(;)
         endMember()
       endClassOrMixinBody(DeclarationKind.Class, 8, {, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect
index 10e9d5e..350fa9e 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_late_in_non_nnbd.dart.intertwined.expect
@@ -27,7 +27,7 @@
       listener: beginTopLevelMember(late)
       indicatesMethodOrField(;)
       reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
       parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleType', x2, DeclarationKind.TopLevel, null, false)
         listener: beginFields(late)
         listener: handleIdentifier(int, typeReference)
@@ -47,7 +47,7 @@
       listener: beginTopLevelMember(late)
       indicatesMethodOrField(;)
       reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
       parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleTypeWith1Argument', x3, DeclarationKind.TopLevel, null, false)
         listener: beginFields(late)
         listener: handleIdentifier(List, typeReference)
@@ -71,7 +71,7 @@
       listener: beginTopLevelMember(late)
       indicatesMethodOrField(;)
       reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+        listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
       parseFields(late, null, null, null, null, late, final, final, Instance of 'SimpleType', x4, DeclarationKind.TopLevel, null, false)
         listener: beginFields(late)
         listener: handleIdentifier(int, typeReference)
@@ -107,7 +107,7 @@
     listener: beginTopLevelMember(;)
     parseInvalidTopLevelDeclaration(;)
       reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ;, ;)
+        listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ;, ;)
       listener: handleInvalidTopLevelDeclaration(;)
   listener: endTopLevelDeclaration(late)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
@@ -135,7 +135,7 @@
     listener: beginTopLevelMember(;)
     parseInvalidTopLevelDeclaration(;)
       reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
-        listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {token: ;}], ;, ;)
+        listener: handleRecoverableError(Message[UnexpectedToken, Unexpected token ';'., null, {lexeme: ;}], ;, ;)
       listener: handleInvalidTopLevelDeclaration(;)
   listener: endTopLevelDeclaration(main)
   parseTopLevelDeclarationImpl(;, Instance of 'DirectiveContext')
@@ -205,7 +205,7 @@
               parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
                 indicatesMethodOrField(;)
                 reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-                  listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+                  listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
                 looksLikeLocalFunction(y2)
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
@@ -229,7 +229,7 @@
               parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
                 indicatesMethodOrField(;)
                 reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-                  listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+                  listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
                 looksLikeLocalFunction(y3)
                 listener: beginMetadataStar(List)
                 listener: endMetadataStar(0)
@@ -257,7 +257,7 @@
               parseExpressionStatementOrDeclarationAfterModifiers(;, ;, null, null, null, false)
                 indicatesMethodOrField(;)
                 reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-                  listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+                  listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
                 looksLikeLocalFunction(y4)
                 listener: beginMetadataStar(int)
                 listener: endMetadataStar(0)
@@ -378,7 +378,7 @@
                 listener: endMetadataStar(0)
               indicatesMethodOrField(;)
               reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-                listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+                listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
               listener: beginMember()
               parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleType', z2, DeclarationKind.Class, Foo, false)
                 listener: beginFields(late)
@@ -398,7 +398,7 @@
                 listener: endMetadataStar(0)
               indicatesMethodOrField(;)
               reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-                listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+                listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
               listener: beginMember()
               parseFields(late, null, null, null, null, late, null, late, Instance of 'SimpleTypeWith1Argument', x3, DeclarationKind.Class, Foo, false)
                 listener: beginFields(late)
@@ -422,7 +422,7 @@
                 listener: endMetadataStar(0)
               indicatesMethodOrField(;)
               reportRecoverableErrorWithToken(late, Instance of 'Template<(Token) => Message>')
-                listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {token: late}], late, late)
+                listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'late' is only available in null safe libraries., null, {lexeme: late}], late, late)
               listener: beginMember()
               parseFields(late, null, null, null, null, late, final, final, Instance of 'SimpleType', z4, DeclarationKind.Class, Foo, false)
                 listener: beginFields(late)
@@ -460,7 +460,7 @@
               listener: beginMember()
               recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
-                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
                 listener: handleInvalidMember(;)
                 listener: endMember()
             notEofOrValue(}, late)
@@ -489,7 +489,7 @@
               listener: beginMember()
               recoverFromInvalidMember(;, ;, null, null, null, null, null, null, ;, Instance of 'NoType', null, DeclarationKind.Class, Foo)
                 reportRecoverableErrorWithToken(;, Instance of 'Template<(Token) => Message>')
-                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {token: ;}], ;, ;)
+                  listener: handleRecoverableError(Message[ExpectedClassMember, Expected a class member, but got ';'., null, {lexeme: ;}], ;, ;)
                 listener: handleInvalidMember(;)
                 listener: endMember()
             notEofOrValue(}, })
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect
index 691490c..645cb48 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.expect
@@ -24,7 +24,7 @@
         beginOptionalFormalParameters({)
           beginMetadataStar(required)
           endMetadataStar(0)
-          handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {token: required}], required, required)
+          handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {lexeme: required}], required, required)
           beginFormalParameter(int, MemberKind.TopLevelMethod, required, null, null)
             handleIdentifier(int, typeReference)
             handleNoTypeArguments(x1)
@@ -95,7 +95,7 @@
         beginOptionalFormalParameters({)
           beginMetadataStar(required)
           endMetadataStar(0)
-          handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {token: required}], required, required)
+          handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {lexeme: required}], required, required)
           beginFormalParameter(required, MemberKind.TopLevelMethod, required, null, null)
             handleIdentifier(required, typeReference)
             handleNoTypeArguments(x3)
@@ -143,7 +143,7 @@
               beginOptionalFormalParameters({)
                 beginMetadataStar(required)
                 endMetadataStar(0)
-                handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {token: required}], required, required)
+                handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {lexeme: required}], required, required)
                 beginFormalParameter(covariant, MemberKind.NonStaticMethod, required, covariant, null)
                   handleIdentifier(int, typeReference)
                   handleNoTypeArguments(x4)
diff --git a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect
index 0450aa8..baad9f3 100644
--- a/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/non-nnbd/use_required_in_non_nnbd.dart.intertwined.expect
@@ -26,7 +26,7 @@
                     listener: beginMetadataStar(required)
                     listener: endMetadataStar(0)
                   reportRecoverableErrorWithToken(required, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {token: required}], required, required)
+                    listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {lexeme: required}], required, required)
                   listener: beginFormalParameter(int, MemberKind.TopLevelMethod, required, null, null)
                   listener: handleIdentifier(int, typeReference)
                   listener: handleNoTypeArguments(x1)
@@ -186,7 +186,7 @@
                     listener: beginMetadataStar(required)
                     listener: endMetadataStar(0)
                   reportRecoverableErrorWithToken(required, Instance of 'Template<(Token) => Message>')
-                    listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {token: required}], required, required)
+                    listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {lexeme: required}], required, required)
                   listener: beginFormalParameter(required, MemberKind.TopLevelMethod, required, null, null)
                   listener: handleIdentifier(required, typeReference)
                   listener: handleNoTypeArguments(x3)
@@ -292,7 +292,7 @@
                             listener: beginMetadataStar(required)
                             listener: endMetadataStar(0)
                           reportRecoverableErrorWithToken(required, Instance of 'Template<(Token) => Message>')
-                            listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {token: required}], required, required)
+                            listener: handleRecoverableError(Message[UnexpectedModifierInNonNnbd, The modifier 'required' is only available in null safe libraries., null, {lexeme: required}], required, required)
                           listener: beginFormalParameter(covariant, MemberKind.NonStaticMethod, required, covariant, null)
                           listener: handleIdentifier(int, typeReference)
                           listener: handleNoTypeArguments(x4)
diff --git a/pkg/front_end/testcases/expression/class_static3.expression.yaml.expect b/pkg/front_end/testcases/expression/class_static3.expression.yaml.expect
index b00f945..9fcf6bc 100644
--- a/pkg/front_end/testcases/expression/class_static3.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/class_static3.expression.yaml.expect
@@ -4,7 +4,7 @@
               ^^^^^^^^^
 }
 method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
-  return #lib1::globalVar.{dart.core::num::+}(invalid-expression "org-dartlang-debug:synthetic_debug_expression:1:13: Error: Getter not found: 'staticVar'.\nglobalVar + staticVar + 5\n            ^^^^^^^^^" as{TypeError,ForDynamic} dart.core::num*).{dart.core::num::+}(5);
+  return #lib1::globalVar.{dart.core::num::+}(invalid-expression "org-dartlang-debug:synthetic_debug_expression:1:13: Error: Getter not found: 'staticVar'.\nglobalVar + staticVar + 5\n            ^^^^^^^^^").{dart.core::num::+}(5);
 Errors: {
 }
 static method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
diff --git a/pkg/front_end/testcases/expression/missing_variable_types.expression.yaml.expect b/pkg/front_end/testcases/expression/missing_variable_types.expression.yaml.expect
index 3fed1d3..cbffcf7 100644
--- a/pkg/front_end/testcases/expression/missing_variable_types.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/missing_variable_types.expression.yaml.expect
@@ -1,4 +1,4 @@
 Errors: {
 }
 method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr(dynamic s) → dynamic
-  return this.{main::D::m}(this.{main::D::id}<dart.core::List<main::D::T*>*>((s = <dynamic>[]) as{TypeError} dart.core::List<main::D::T*>*));
+  return this.{main::D::m}(this.{main::D::id}<dart.core::List<main::D::T*>*>((s = dart.core::_GrowableList::•<dynamic>(0)) as{TypeError} dart.core::List<main::D::T*>*));
diff --git a/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect b/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect
index e622baa..88031b2 100644
--- a/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect
+++ b/pkg/front_end/testcases/expression/set_literal.expression.yaml.expect
@@ -2,6 +2,6 @@
 }
 method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
   return block {
-    final dart.core::Set<dart.core::String*>* #t1 = dart.collection::LinkedHashSet::•<dart.core::String*>();
+    final dart.core::Set<dart.core::String*>* #t1 = new dart.collection::_CompactLinkedHashSet::•<dart.core::String*>();
     #t1.{dart.core::Set::add}{Invariant}("a");
   } =>#t1;
diff --git a/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect b/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect
index 724ef26..a04ed8e 100644
--- a/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extensions/issue38755.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
   method myMap = self::A|myMap;
   tearoff myMap = self::A|get#myMap;
 }
-static final field core::List<core::String*>* list = self::A|myMap<core::String*, core::String*>(<core::String*>["a", "b", "c"], (core::String* it) → core::String* => it);
+static final field core::List<core::String*>* list = self::A|myMap<core::String*, core::String*>(core::_GrowableList::_literal3<core::String*>("a", "b", "c"), (core::String* it) → core::String* => it);
 static method A|myMap<T extends core::Object* = dynamic, R extends core::Object* = dynamic>(lowered final core::List<self::A|myMap::T*>* #this, (self::A|myMap::T*) →* self::A|myMap::R* block) → core::List<self::A|myMap::R*>* {
   return #this.{core::Iterable::map}<self::A|myMap::R*>(block).{core::Iterable::toList}();
 }
diff --git a/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect b/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect
index e101f55..d6e2870 100644
--- a/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/DeltaBlue.dart.strong.transformed.expect
@@ -265,7 +265,7 @@
   }
 }
 class Variable extends core::Object {
-  field core::List<self::Constraint*>* constraints = <self::Constraint*>[];
+  field core::List<self::Constraint*>* constraints = core::_GrowableList::•<self::Constraint*>(0);
   field self::Constraint* determinedBy = null;
   field core::int* mark = 0;
   field self::Strength* walkStrength = #C18;
@@ -337,7 +337,7 @@
     return plan;
   }
   method extractPlanFromConstraints(core::List<self::Constraint*>* constraints) → self::Plan* {
-    core::List<self::Constraint*>* sources = <self::Constraint*>[];
+    core::List<self::Constraint*>* sources = core::_GrowableList::•<self::Constraint*>(0);
     for (core::int* i = 0; i.{core::num::<}(constraints.{core::List::length}); i = i.{core::num::+}(1)) {
       self::Constraint* c = constraints.{core::List::[]}(i);
       if(c.{self::Constraint::isInput}() && c.{self::Constraint::isSatisfied}())
@@ -346,7 +346,7 @@
     return this.{self::Planner::makePlan}(sources);
   }
   method addPropagate(self::Constraint* c, core::int* mark) → core::bool* {
-    core::List<self::Constraint*>* todo = <self::Constraint*>[c];
+    core::List<self::Constraint*>* todo = core::_GrowableList::_literal1<self::Constraint*>(c);
     while (todo.{core::List::length}.{core::num::>}(0)) {
       self::Constraint* d = todo.{core::List::removeLast}();
       if(d.{self::Constraint::output}().{self::Variable::mark}.{core::num::==}(mark)) {
@@ -362,8 +362,8 @@
     out.{self::Variable::determinedBy} = null;
     out.{self::Variable::walkStrength} = #C18;
     out.{self::Variable::stay} = true;
-    core::List<self::Constraint*>* unsatisfied = <self::Constraint*>[];
-    core::List<self::Variable*>* todo = <self::Variable*>[out];
+    core::List<self::Constraint*>* unsatisfied = core::_GrowableList::•<self::Constraint*>(0);
+    core::List<self::Variable*>* todo = core::_GrowableList::_literal1<self::Variable*>(out);
     while (todo.{core::List::length}.{core::num::>}(0)) {
       self::Variable* v = todo.{core::List::removeLast}();
       for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}.{core::List::length}); i = i.{core::num::+}(1)) {
@@ -402,7 +402,7 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Plan extends core::Object {
-  field core::List<self::Constraint*>* list = <self::Constraint*>[];
+  field core::List<self::Constraint*>* list = core::_GrowableList::•<self::Constraint*>(0);
   synthetic constructor •() → self::Plan*
     : super core::Object::•()
     ;
@@ -458,7 +458,7 @@
   }
   new self::StayConstraint::•(last, #C9);
   self::EditConstraint* edit = new self::EditConstraint::•(first, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::Constraint*>[edit]);
+  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::Constraint*>(edit));
   for (core::int* i = 0; i.{core::num::<}(100); i = i.{core::num::+}(1)) {
     first.{self::Variable::value} = i;
     plan.{self::Plan::execute}();
@@ -474,7 +474,7 @@
   self::Variable* offset = new self::Variable::•("offset", 1000);
   self::Variable* src = null;
   self::Variable* dst = null;
-  core::List<self::Variable*>* dests = <self::Variable*>[];
+  core::List<self::Variable*>* dests = core::_GrowableList::•<self::Variable*>(0);
   for (core::int* i = 0; i.{core::num::<}(n); i = i.{core::num::+}(1)) {
     src = new self::Variable::•("src", i);
     dst = new self::Variable::•("dst", i);
@@ -501,7 +501,7 @@
 }
 static method change(self::Variable* v, core::int* newValue) → void {
   self::EditConstraint* edit = new self::EditConstraint::•(v, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::EditConstraint*>[edit]);
+  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::EditConstraint*>(edit));
   for (core::int* i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
     v.{self::Variable::value} = newValue;
     plan.{self::Plan::execute}();
diff --git a/pkg/front_end/testcases/general/arithmetic.dart.strong.transformed.expect b/pkg/front_end/testcases/general/arithmetic.dart.strong.transformed.expect
index ed95ed2..0f2a3e1 100644
--- a/pkg/front_end/testcases/general/arithmetic.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/arithmetic.dart.strong.transformed.expect
@@ -14,5 +14,5 @@
 static method main() → dynamic {
   self::foo(4, 5);
   self::foo(6, 7);
-  self::loop(<dynamic>["dfg"]);
+  self::loop(core::_GrowableList::_literal1<dynamic>("dfg"));
 }
diff --git a/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect b/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect
index 33ab33f..2a42c83 100644
--- a/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/async_function.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
 
 import "dart:async";
 
-static field core::List<core::String*>* stringList = <core::String*>["bar"];
+static field core::List<core::String*>* stringList = core::_GrowableList::_literal1<core::String*>("bar");
 static method asyncString() → asy::Future<core::String*>* /* originally async */ {
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
diff --git a/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect b/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect
index 78818d9..760f00e 100644
--- a/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/async_nested.dart.strong.transformed.expect
@@ -44,18 +44,18 @@
       #L1:
       {
         core::String* expected = "1 2 3 4 5 6 7 8 9 10";
-        :async_temporary_2 = new self::Node::•("2", <self::Node*>[]);
-        [yield] let dynamic #t4 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("7", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
-        [yield] let dynamic #t5 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("6", <self::Node*>[_in::unsafeCast<self::Node*>(:result)])), :async_op_then, :async_op_error, :async_op) in null;
+        :async_temporary_2 = new self::Node::•("2", core::_GrowableList::•<self::Node*>(0));
+        [yield] let dynamic #t4 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("7", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t5 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("6", core::_GrowableList::_literal1<self::Node*>(_in::unsafeCast<self::Node*>(:result)))), :async_op_then, :async_op_error, :async_op) in null;
         :async_temporary_1 = _in::unsafeCast<self::Node*>(:result);
-        [yield] let dynamic #t6 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("8", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t6 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("8", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
         :async_temporary_0 = _in::unsafeCast<self::Node*>(:result);
-        [yield] let dynamic #t7 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("9", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
-        [yield] let dynamic #t8 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("4", <self::Node*>[new self::Node::•("5", <self::Node*>[_in::unsafeCast<self::Node*>(:async_temporary_1), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)])])), :async_op_then, :async_op_error, :async_op) in null;
-        [yield] let dynamic #t9 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("3", <self::Node*>[_in::unsafeCast<self::Node*>(:result)])), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t7 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("9", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t8 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("4", core::_GrowableList::_literal1<self::Node*>(new self::Node::•("5", core::_GrowableList::_literal3<self::Node*>(_in::unsafeCast<self::Node*>(:async_temporary_1), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)))))), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t9 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("3", core::_GrowableList::_literal1<self::Node*>(_in::unsafeCast<self::Node*>(:result)))), :async_op_then, :async_op_error, :async_op) in null;
         :async_temporary_0 = _in::unsafeCast<self::Node*>(:result);
-        [yield] let dynamic #t10 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("10", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
-        self::Node* node = new self::Node::•("1", <self::Node*>[_in::unsafeCast<self::Node*>(:async_temporary_2), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)]);
+        [yield] let dynamic #t10 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("10", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
+        self::Node* node = new self::Node::•("1", core::_GrowableList::_literal3<self::Node*>(_in::unsafeCast<self::Node*>(:async_temporary_2), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)));
         core::String* actual = node.{self::Node::toSimpleString}() as{TypeError,ForDynamic} core::String*;
         core::print(actual);
         if(!actual.{core::String::==}(expected)) {
diff --git a/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect b/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect
index 2aaab4d..51ef2df 100644
--- a/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/await_complex.dart.strong.transformed.expect
@@ -244,7 +244,7 @@
         [yield] let dynamic #t19 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error, :async_op) in null;
         core::num* d = _in::unsafeCast<core::int*>(:async_temporary_1).{core::num::+}(:result as{TypeError,ForDynamic} core::num*);
         core::int* cnt = 2;
-        core::List<core::int*>* b = <core::int*>[1, 2, 3];
+        core::List<core::int*>* b = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
         :async_temporary_3 = b;
         :async_temporary_2 = cnt;
         [yield] let dynamic #t20 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error, :async_op) in null;
@@ -354,7 +354,7 @@
       #L6:
       {
         {
-          core::Iterator<core::Function*>* :sync-for-iterator = <core::Function*>[#C1, #C2].{core::Iterable::iterator};
+          core::Iterator<core::Function*>* :sync-for-iterator = core::_GrowableList::_literal2<core::Function*>(#C1, #C2).{core::Iterable::iterator};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
             final core::Function* #t26 = :sync-for-iterator.{core::Iterator::current};
             {
@@ -433,7 +433,7 @@
       #L7:
       {
         {
-          core::Iterator<core::Function*>* :sync-for-iterator = <core::Function*>[#C1, #C2].{core::Iterable::iterator};
+          core::Iterator<core::Function*>* :sync-for-iterator = core::_GrowableList::_literal2<core::Function*>(#C1, #C2).{core::Iterable::iterator};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
             final core::Function* #t33 = :sync-for-iterator.{core::Iterator::current};
             {
@@ -637,7 +637,7 @@
                 :controller_stream = :controller.{asy::_AsyncStarStreamController::stream};
                 return :controller_stream;
               }
-              :async_temporary_0 = <dynamic>[42];
+              :async_temporary_0 = core::_GrowableList::_literal1<dynamic>(42);
               [yield] let dynamic #t55 = asy::_awaitHelper(testStream1.call().{asy::Stream::toList}(), :async_op_then, :async_op_error, :async_op) in null;
               self::expectList(_in::unsafeCast<core::List<dynamic>*>(:async_temporary_0), _in::unsafeCast<core::List<core::int*>>(:result));
               function testStream2() → asy::Stream<core::int*>* /* originally async* */ {
@@ -674,7 +674,7 @@
                 :controller_stream = :controller.{asy::_AsyncStarStreamController::stream};
                 return :controller_stream;
               }
-              :async_temporary_1 = <dynamic>[42];
+              :async_temporary_1 = core::_GrowableList::_literal1<dynamic>(42);
               [yield] let dynamic #t57 = asy::_awaitHelper(testStream2.call().{asy::Stream::toList}(), :async_op_then, :async_op_error, :async_op) in null;
               self::expectList(_in::unsafeCast<core::List<dynamic>*>(:async_temporary_1), _in::unsafeCast<core::List<core::int*>>(:result));
             }
diff --git a/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect b/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect
index e178bdf..c96fec3e 100644
--- a/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/await_in_cascade.dart.strong.transformed.expect
@@ -23,7 +23,7 @@
       try {
         #L1:
         {
-          final core::List<core::int*>* #t1 = <core::int*>[];
+          final core::List<core::int*>* #t1 = core::_GrowableList::•<core::int*>(0);
           [yield] let dynamic #t2 = asy::_awaitHelper(this.{self::C::_m}(), :async_op_then, :async_op_error, :async_op) in null;
           #t1.{core::List::add}(_in::unsafeCast<core::int*>(:result));
           :return_value = block {} =>#t1;
diff --git a/pkg/front_end/testcases/general/bug32414b.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug32414b.dart.strong.transformed.expect
index 1422239..6378088 100644
--- a/pkg/front_end/testcases/general/bug32414b.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug32414b.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 static method test() → void {
-  core::List<dynamic>* l = <dynamic>[1, "hello"];
+  core::List<dynamic>* l = core::_GrowableList::_literal2<dynamic>(1, "hello");
   core::List<core::String*>* l2 = l.{core::Iterable::map}<core::String*>((dynamic element) → core::String* => element.{core::Object::toString}()).{core::Iterable::toList}();
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect
index b800d2a..2ca85ca 100644
--- a/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33206.dart.strong.transformed.expect
@@ -52,7 +52,7 @@
     try {
       #L1:
       {
-        :return_value = <core::Object*>[1];
+        :return_value = core::_GrowableList::_literal1<core::Object*>(1);
         break #L1;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
@@ -68,7 +68,7 @@
   return :async_future;
 }
 static method f2() → core::List<core::Object*>*
-  return <core::Object*>[2];
+  return core::_GrowableList::_literal1<core::Object*>(2);
 static method f3() → asy::Future<core::Object*>* /* originally async */ {
   final asy::_Future<core::Object*>* :async_future = new asy::_Future::•<core::Object*>();
   core::bool* :is_sync = false;
diff --git a/pkg/front_end/testcases/general/bug33298.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug33298.dart.strong.transformed.expect
index dd1be41..4605193 100644
--- a/pkg/front_end/testcases/general/bug33298.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/bug33298.dart.strong.transformed.expect
@@ -62,14 +62,14 @@
 }
 static method test() → dynamic {
   self::A* a = new self::A::•();
-  core::List<core::String*>* list1 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(a.{self::A::call}).{core::Iterable::toList}();
-  core::List<core::String*>* list2 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1.==(null) ?{(core::String*) →* core::String*} null : #t1.{self::A::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list1 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(a.{self::A::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list2 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1.==(null) ?{(core::String*) →* core::String*} null : #t1.{self::A::call}).{core::Iterable::toList}();
   self::B<core::String*>* b = new self::B::•<core::String*>();
-  core::List<core::String*>* list3 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(b.{self::B::call}).{core::Iterable::toList}();
-  core::List<core::String*>* list4 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2.==(null) ?{(core::String*) →* core::String*} null : #t2.{self::B::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list3 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(b.{self::B::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list4 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2.==(null) ?{(core::String*) →* core::String*} null : #t2.{self::B::call}).{core::Iterable::toList}();
   self::C* c = new self::C::•();
-  core::List<core::String*>* list5 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(c.{self::C::call}<core::String*>).{core::Iterable::toList}();
-  core::List<core::String*>* list6 = <core::String*>["a", "b", "c"].{core::Iterable::map}<dynamic>(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+  core::List<core::String*>* list5 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(c.{self::C::call}<core::String*>).{core::Iterable::toList}();
+  core::List<core::String*>* list6 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<dynamic>(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/general/bug33298.dart:28:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
                                            ^" in (let final self::C* #t4 = c in #t4.==(null) ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t4.{self::C::call}) as{TypeError} (core::String*) →* dynamic).{core::Iterable::toList}() as{TypeError} core::List<core::String*>*;
 }
diff --git a/pkg/front_end/testcases/general/cascade.dart.strong.transformed.expect b/pkg/front_end/testcases/general/cascade.dart.strong.transformed.expect
index b2f0be3..d342580 100644
--- a/pkg/front_end/testcases/general/cascade.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/cascade.dart.strong.transformed.expect
@@ -26,10 +26,10 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<core::int*>* list = let final core::List<core::int*>* #t1 = <core::int*>[1] in block {
+  core::List<core::int*>* list = let final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1) in block {
     #t1.{core::List::add}(2);
     #t1.{core::List::add}(3);
-    #t1.{core::List::addAll}(<core::int*>[4, 5]);
+    #t1.{core::List::addAll}(core::_GrowableList::_literal2<core::int*>(4, 5));
   } =>#t1;
   core::print(list);
   let final core::List<core::int*>* #t2 = list in block {
@@ -44,10 +44,10 @@
     #t3.{core::List::[]=}(0, 87);
   } =>#t3;
   core::print(list);
-  list = let final core::List<core::int*>* #t4 = <core::int*>[let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+  list = let final core::List<core::int*>* #t4 = core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/general/cascade.dart:26:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
  - 'List' is from 'dart:core'.
     [1]
-    ^" in <core::int*>[1] as{TypeError} core::int*] in block {
+    ^" in core::_GrowableList::_literal1<core::int*>(1) as{TypeError} core::int*) in block {
     invalid-expression "pkg/front_end/testcases/general/cascade.dart:28:13: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..first.last.toString()
diff --git a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
index 7a1e12e..f26bf33 100644
--- a/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/const_collections.dart.strong.transformed.expect
@@ -224,7 +224,7 @@
     : super col::IterableBase::•()
     ;
   get iterator() → core::Iterator<core::int*>*
-    return <core::int*>[].{core::Iterable::iterator};
+    return core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
   abstract member-signature method cast<R extends core::Object* = dynamic>() → core::Iterable<self::ConstIterable::cast::R*>*; -> core::Iterable::cast
   abstract member-signature method followedBy(generic-covariant-impl core::Iterable<core::int*>* other) → core::Iterable<core::int*>*; -> core::Iterable::followedBy
   abstract member-signature method map<T extends core::Object* = dynamic>((core::int*) →* self::ConstIterable::map::T* f) → core::Iterable<self::ConstIterable::map::T*>*; -> core::Iterable::map
@@ -285,7 +285,7 @@
     : super col::IterableBase::•()
     ;
   get iterator() → core::Iterator<core::String*>*
-    return <core::String*>[].{core::Iterable::iterator};
+    return core::_GrowableList::•<core::String*>(0).{core::Iterable::iterator};
   abstract member-signature method cast<R extends core::Object* = dynamic>() → core::Iterable<self::CustomIterable::cast::R*>*; -> core::Iterable::cast
   abstract member-signature method followedBy(generic-covariant-impl core::Iterable<core::String*>* other) → core::Iterable<core::String*>*; -> core::Iterable::followedBy
   abstract member-signature method map<T extends core::Object* = dynamic>((core::String*) →* self::CustomIterable::map::T* f) → core::Iterable<self::CustomIterable::map::T*>*; -> core::Iterable::map
@@ -329,7 +329,7 @@
     ;
   @#C4
   get entries() → core::Iterable<core::MapEntry<core::String*, core::String*>*>*
-    return <core::MapEntry<core::String*, core::String*>*>[];
+    return core::_GrowableList::•<core::MapEntry<core::String*, core::String*>*>(0);
   @#C4
   operator [](core::Object* key) → core::String*
     return throw new core::UnimplementedError::•();
diff --git a/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect
index 17ab5b6..2e4b07e 100644
--- a/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection.dart.strong.transformed.expect
@@ -5,7 +5,7 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
+    final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(2);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -16,14 +16,14 @@
       if(self::oracle() as{TypeError,ForDynamic} core::bool*)
         #t1.{core::List::add}{Invariant}(4);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[5, 6, 7].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t1.{core::List::add}{Invariant}(i);
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[8, 9, 10].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -46,14 +46,14 @@
       if(self::oracle() as{TypeError,ForDynamic} core::bool*)
         #t2.{core::Set::add}{Invariant}(4);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[5, 6, 7].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t2.{core::Set::add}{Invariant}(i);
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[8, 9, 10].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -76,14 +76,14 @@
       if(self::oracle() as{TypeError,ForDynamic} core::bool*)
         #t3.{core::Map::[]=}{Invariant}(4, 4);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[5, 6, 7].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t3.{core::Map::[]=}{Invariant}(i, i);
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[8, 9, 10].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         if(self::oracle() as{TypeError,ForDynamic} core::bool*)
diff --git a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
index da6a4b7..3cc42c4 100644
--- a/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/control_flow_collection_inference.dart.strong.transformed.expect
@@ -453,7 +453,7 @@
   return true;
 static method testIfElement(dynamic dynVar, core::List<core::int*>* listInt, core::List<core::double*>* listDouble, core::Map<core::String*, core::int*>* mapToInt, core::Map<core::String*, core::double*>* mapToDouble) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t1 = <core::int*>[];
+    final core::List<core::int*>* #t1 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(42);
   } =>#t1;
@@ -470,7 +470,7 @@
     #t3.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t3;
   core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t4 = <dynamic>[];
+    final core::List<dynamic>* #t4 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t4.{core::List::add}{Invariant}(dynVar);
   } =>#t4;
@@ -487,31 +487,31 @@
     #t6.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t6;
   core::List<core::List<core::int*>*>* list12 = block {
-    final core::List<core::List<core::int*>*>* #t7 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t7 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t7.{core::List::add}{Invariant}(<core::int*>[42]);
+      #t7.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t7;
   core::Set<core::List<core::int*>*>* set12 = block {
     final core::Set<core::List<core::int*>*>* #t8 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t8.{core::Set::add}{Invariant}(<core::int*>[42]);
+      #t8.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t8.{core::Set::add}{Invariant}(null);
   } =>#t8;
   core::Map<core::String*, core::List<core::int*>*>* map12 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t9 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t9.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+      #t9.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int*>(42));
     #t9.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t9;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t10 = <core::int*>[];
+    final core::List<core::int*>* #t10 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t10.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      #t10.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t10;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t11 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t11.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+      #t11.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t11.{core::Set::add}{Invariant}(null);
   } =>#t11;
   core::Map<core::String*, core::int*>* map20 = block {
@@ -526,14 +526,14 @@
     #t12.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t12;
   core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t14 = <dynamic>[];
+    final core::List<dynamic>* #t14 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t14.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t14;
   core::Set<dynamic>* set21 = block {
     final core::Set<dynamic>* #t15 = new col::_CompactLinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t15.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t15.{core::Set::add}{Invariant}(null);
   } =>#t15;
   core::Map<core::String*, dynamic>* map21 = block {
@@ -548,20 +548,20 @@
     #t16.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t16;
   core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t18 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t18 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t18.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t18.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t18;
   core::Set<core::List<core::int*>*>* set22 = block {
     final core::Set<core::List<core::int*>*>* #t19 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t19.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t19.{core::Set::add}{Invariant}(null);
   } =>#t19;
   core::Map<core::String*, core::List<core::int*>*>* map22 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t20 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t21 = :sync-for-iterator.{core::Iterator::current};
         #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
@@ -570,16 +570,16 @@
     #t20.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t20;
   core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t22 = <core::int*>[];
+    final core::List<core::int*>* #t22 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t22.{core::List::addAll}{Invariant}(<core::int*>[42]);
+        #t22.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t22;
   core::Set<core::int*>* set30 = block {
     final core::Set<core::int*>* #t23 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t23.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+        #t23.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t23.{core::Set::add}{Invariant}(null);
   } =>#t23;
   core::Map<core::String*, core::int*>* map30 = block {
@@ -595,16 +595,16 @@
     #t24.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t24;
   core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t26 = <dynamic>[];
+    final core::List<dynamic>* #t26 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t26.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t26;
   core::Set<dynamic>* set31 = block {
     final core::Set<dynamic>* #t27 = new col::_CompactLinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t27.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t27.{core::Set::add}{Invariant}(null);
   } =>#t27;
   core::Map<core::String*, dynamic>* map31 = block {
@@ -620,23 +620,23 @@
     #t28.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t28;
   core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t30 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t30 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t30.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t30.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t30;
   core::Set<core::List<core::int*>*>* set33 = block {
     final core::Set<core::List<core::int*>*>* #t31 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t31.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t31.{core::Set::add}{Invariant}(null);
   } =>#t31;
   core::Map<core::String*, core::List<core::int*>*>* map33 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
           #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
@@ -645,25 +645,25 @@
     #t32.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t32;
   core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t34 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t34 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t34.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t34.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t34;
   core::Set<core::List<core::int*>*>* set40 = block {
     final core::Set<core::List<core::int*>*>* #t35 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t35.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t35.{core::Set::add}{Invariant}(null);
   } =>#t35;
   core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:39:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Map<String, List<int>> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
                                  ^";
   core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t36 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t36 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t36.{core::List::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t37 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t37.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t37.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t37);
   } =>#t36;
   core::Set<core::List<core::int*>*>* set41 = block {
@@ -671,28 +671,28 @@
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t38.{core::Set::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t39 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t39.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t39.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t39);
     #t38.{core::Set::add}{Invariant}(null);
   } =>#t38;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t40 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t40.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t40.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t40;
   core::Set<core::List<core::int*>*>* set42 = block {
     final core::Set<core::List<core::int*>*>* #t41 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t41.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t41.{core::Set::add}{Invariant}(null);
   } =>#t41;
   core::Map<core::String*, core::List<core::int*>*>* map42 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 = :sync-for-iterator.{core::Iterator::current};
           #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
@@ -701,14 +701,14 @@
     #t42.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t42;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t44 = <core::int*>[];
+    final core::List<core::int*>* #t44 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t44.{core::List::addAll}{Invariant}(<core::int*>[]);
+      #t44.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t44;
   core::Set<core::int*>* set50 = block {
     final core::Set<core::int*>* #t45 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t45.{core::Set::addAll}{Invariant}(<core::int*>[]);
+      #t45.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t45.{core::Set::add}{Invariant}(null);
   } =>#t45;
   core::Map<core::String*, core::int*>* map50 = block {
@@ -723,7 +723,7 @@
     #t46.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t46;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t48 = <core::int*>[];
+    final core::List<core::int*>* #t48 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t48.{core::List::addAll}{Invariant}( block {
         final core::Set<core::int*>* #t49 = new col::_CompactLinkedHashSet::•<core::int*>();
@@ -738,16 +738,16 @@
     #t50.{core::Set::add}{Invariant}(null);
   } =>#t50;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t52 = <core::int*>[];
+    final core::List<core::int*>* #t52 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t52.{core::List::addAll}{Invariant}(<core::int*>[]);
+        #t52.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t52;
   core::Set<core::int*>* set52 = block {
     final core::Set<core::int*>* #t53 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t53.{core::Set::addAll}{Invariant}(<core::int*>[]);
+        #t53.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t53.{core::Set::add}{Invariant}(null);
   } =>#t53;
   core::Map<core::String*, core::int*>* map52 = block {
@@ -763,20 +763,20 @@
     #t54.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t54;
   core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t56 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t56 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t56.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t56.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t56;
   core::Set<core::List<core::int*>*>* set60 = block {
     final core::Set<core::List<core::int*>*>* #t57 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t57.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t57.{core::Set::add}{Invariant}(null);
   } =>#t57;
   core::Map<core::String*, core::List<core::int*>*>* map60 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t58 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t59 = :sync-for-iterator.{core::Iterator::current};
         #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
@@ -785,23 +785,23 @@
     #t58.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t58;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t60 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t60 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t60.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t60.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t60;
   core::Set<core::List<core::int*>*>* set61 = block {
     final core::Set<core::List<core::int*>*>* #t61 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t61.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t61.{core::Set::add}{Invariant}(null);
   } =>#t61;
   core::Map<core::String*, core::List<core::int*>*>* map61 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t62 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t63 = :sync-for-iterator.{core::Iterator::current};
           #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}, #t63.{core::MapEntry::value});
@@ -810,31 +810,31 @@
     #t62.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t62;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t64 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t64 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t64.{core::List::add}{Invariant}(<core::int*>[]);
+      #t64.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t64;
   core::Set<core::List<core::int*>*>* set70 = block {
     final core::Set<core::List<core::int*>*>* #t65 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t65.{core::Set::add}{Invariant}(<core::int*>[]);
+      #t65.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t65.{core::Set::add}{Invariant}(null);
   } =>#t65;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t66 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t66 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t66.{core::List::add}{Invariant}(<core::int*>[]);
+        #t66.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t66;
   core::Set<core::List<core::int*>*>* set71 = block {
     final core::Set<core::List<core::int*>*>* #t67 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t67.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t67.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t67.{core::Set::add}{Invariant}(null);
   } =>#t67;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t68 = <core::num*>[];
+    final core::List<core::num*>* #t68 = core::_GrowableList::•<core::num*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t68.{core::List::add}{Invariant}(42);
     else
@@ -857,7 +857,7 @@
     #t70.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t70;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t71 = <core::num*>[];
+    final core::List<core::num*>* #t71 = core::_GrowableList::•<core::num*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t71.{core::List::addAll}{Invariant}(listInt);
     else
@@ -890,7 +890,7 @@
     #t73.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t73;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t76 = <dynamic>[];
+    final core::List<dynamic>* #t76 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t76.{core::List::addAll}{Invariant}(listInt);
     else
@@ -916,7 +916,7 @@
     #t78.{core::Set::add}{Invariant}(null);
   } =>#t78;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t79 = <core::num*>[];
+    final core::List<core::num*>* #t79 = core::_GrowableList::•<core::num*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t79.{core::List::add}{Invariant}(42);
     else
@@ -944,7 +944,7 @@
     #t81.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t81;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t83 = <core::int*>[];
+    final core::List<core::int*>* #t83 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
   } =>#t83;
@@ -961,7 +961,7 @@
     #t85.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t85;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t86 = <core::int*>[];
+    final core::List<core::int*>* #t86 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -1003,7 +1003,7 @@
     #t92.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t92;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t96 = <core::int*>[];
+    final core::List<core::int*>* #t96 = core::_GrowableList::•<core::int*>(0);
     if(dynVar as{TypeError,ForDynamic} core::bool*)
       #t96.{core::List::add}{Invariant}(42);
   } =>#t96;
@@ -1020,7 +1020,7 @@
 }
 static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
   block {
-    final core::List<core::int*>* #t99 = <core::int*>[];
+    final core::List<core::int*>* #t99 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t99.{core::List::add}{Invariant}(let final<BottomType> #t100 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:87:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) \"bar\"];
@@ -1043,18 +1043,18 @@
     #t103.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t103;
   block {
-    final core::List<core::int*>* #t105 = <core::int*>[];
+    final core::List<core::int*>* #t105 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t105.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t106 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t105.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t106 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:90:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) ...[\"bar\"]];
-                               ^" in "bar" as{TypeError} core::int*]);
+                               ^" in "bar" as{TypeError} core::int*));
   } =>#t105;
   block {
     final core::Set<core::int*>* #t107 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t107.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t108 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t107.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t108 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:91:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
-                               ^" in "bar" as{TypeError} core::int*]);
+                               ^" in "bar" as{TypeError} core::int*));
     #t107.{core::Set::add}{Invariant}(null);
   } =>#t107;
   block {
@@ -1071,7 +1071,7 @@
     #t109.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t109;
   block {
-    final core::List<core::int*>* #t112 = <core::int*>[];
+    final core::List<core::int*>* #t112 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t112.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:93:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
@@ -1095,7 +1095,7 @@
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::String*>* #t114 = <core::String*>[];
+    final core::List<core::String*>* #t114 = core::_GrowableList::•<core::String*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t114.{core::List::add}{Invariant}(let final<BottomType> #t115 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:96:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
@@ -1130,7 +1130,7 @@
     #t120.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t120;
   block {
-    final core::List<core::int*>* #t123 = <core::int*>[];
+    final core::List<core::int*>* #t123 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t123.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:99:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
@@ -1158,7 +1158,7 @@
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::int*>* #t125 = <core::int*>[];
+    final core::List<core::int*>* #t125 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t125.{core::List::add}{Invariant}(42);
     else
@@ -1204,7 +1204,7 @@
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t127 = <core::int*>[];
+    final core::List<core::int*>* #t127 = core::_GrowableList::•<core::int*>(0);
     if(let final<BottomType> #t128 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:112:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   List<int> list20 = [if (42) 42];
                           ^" in 42 as{TypeError} core::bool*)
@@ -1225,7 +1225,7 @@
       #t131.{core::Map::[]=}{Invariant}(42, 42);
   } =>#t131;
   core::List<core::String*>* list40 = block {
-    final core::List<core::String*>* #t133 = <core::String*>[];
+    final core::List<core::String*>* #t133 = core::_GrowableList::•<core::String*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t133.{core::List::add}{Invariant}(let final<BottomType> #t134 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:115:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
@@ -1271,7 +1271,7 @@
 }
 static method testForElement(dynamic dynVar, core::List<core::int*>* listInt, core::List<core::double*>* listDouble, core::int* index, core::Map<core::String*, core::int*>* mapStringInt, core::Map<core::String*, core::double*>* mapStringDouble) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t145 = <core::int*>[];
+    final core::List<core::int*>* #t145 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t145.{core::List::add}{Invariant}(42);
   } =>#t145;
@@ -1288,7 +1288,7 @@
     #t147.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t147;
   core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t148 = <dynamic>[];
+    final core::List<dynamic>* #t148 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t148.{core::List::add}{Invariant}(dynVar);
   } =>#t148;
@@ -1305,31 +1305,31 @@
     #t150.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t150;
   core::List<core::List<core::int*>*>* list12 = block {
-    final core::List<core::List<core::int*>*>* #t151 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t151 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t151.{core::List::add}{Invariant}(<core::int*>[42]);
+      #t151.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t151;
   core::Set<core::List<core::int*>*>* set12 = block {
     final core::Set<core::List<core::int*>*>* #t152 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t152.{core::Set::add}{Invariant}(<core::int*>[42]);
+      #t152.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t152.{core::Set::add}{Invariant}(null);
   } =>#t152;
   core::Map<core::String*, core::List<core::int*>*>* map12 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t153 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t153.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+      #t153.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int*>(42));
     #t153.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t153;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t154 = <core::int*>[];
+    final core::List<core::int*>* #t154 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t154.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      #t154.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t154;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t155 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t155.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+      #t155.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t155.{core::Set::add}{Invariant}(null);
   } =>#t155;
   core::Map<core::String*, core::int*>* map20 = block {
@@ -1344,14 +1344,14 @@
     #t156.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t156;
   core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t158 = <dynamic>[];
+    final core::List<dynamic>* #t158 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t158.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t158.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t158;
   core::Set<dynamic>* set21 = block {
     final core::Set<dynamic>* #t159 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t159.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t159.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t159.{core::Set::add}{Invariant}(null);
   } =>#t159;
   core::Map<core::String*, dynamic>* map21 = block {
@@ -1366,20 +1366,20 @@
     #t160.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t160;
   core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t162 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t162 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t162.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t162.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t162;
   core::Set<core::List<core::int*>*>* set22 = block {
     final core::Set<core::List<core::int*>*>* #t163 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t163.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t163.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t163.{core::Set::add}{Invariant}(null);
   } =>#t163;
   core::Map<core::String*, core::List<core::int*>*>* map22 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 = :sync-for-iterator.{core::Iterator::current};
         #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}, #t165.{core::MapEntry::value});
@@ -1388,16 +1388,16 @@
     #t164.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t164;
   core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t166 = <core::int*>[];
+    final core::List<core::int*>* #t166 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t166.{core::List::addAll}{Invariant}(<core::int*>[42]);
+        #t166.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t166;
   core::Set<core::int*>* set30 = block {
     final core::Set<core::int*>* #t167 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t167.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+        #t167.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t167.{core::Set::add}{Invariant}(null);
   } =>#t167;
   core::Map<core::String*, core::int*>* map30 = block {
@@ -1413,16 +1413,16 @@
     #t168.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t168;
   core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t170 = <dynamic>[];
+    final core::List<dynamic>* #t170 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t170.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t170.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t170;
   core::Set<dynamic>* set31 = block {
     final core::Set<dynamic>* #t171 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t171.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t171.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t171.{core::Set::add}{Invariant}(null);
   } =>#t171;
   core::Map<core::String*, dynamic>* map31 = block {
@@ -1438,23 +1438,23 @@
     #t172.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t172;
   core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t174 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t174 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t174.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t174.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t174;
   core::Set<core::List<core::int*>*>* set33 = block {
     final core::Set<core::List<core::int*>*>* #t175 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t175.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t175.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t175.{core::Set::add}{Invariant}(null);
   } =>#t175;
   core::Map<core::String*, core::List<core::int*>*>* map33 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 = :sync-for-iterator.{core::Iterator::current};
           #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}, #t177.{core::MapEntry::value});
@@ -1463,20 +1463,20 @@
     #t176.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t176;
   core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t178 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t178 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t178.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t178.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t178;
   core::Set<core::List<core::int*>*>* set40 = block {
     final core::Set<core::List<core::int*>*>* #t179 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t179.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t179.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t179.{core::Set::add}{Invariant}(null);
   } =>#t179;
   core::Map<core::String*, core::List<core::int*>*>* map40 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 = :sync-for-iterator.{core::Iterator::current};
         #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}, #t181.{core::MapEntry::value});
@@ -1485,11 +1485,11 @@
     #t180.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t180;
   core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t182 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t182 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t182.{core::List::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t183 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t183.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t183.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t183);
   } =>#t182;
   core::Set<core::List<core::int*>*>* set41 = block {
@@ -1497,28 +1497,28 @@
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t184.{core::Set::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t185 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t185.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t185.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t185);
     #t184.{core::Set::add}{Invariant}(null);
   } =>#t184;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t186 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t186 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t186.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t186.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t186;
   core::Set<core::List<core::int*>*>* set42 = block {
     final core::Set<core::List<core::int*>*>* #t187 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t187.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t187.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t187.{core::Set::add}{Invariant}(null);
   } =>#t187;
   core::Map<core::String*, core::List<core::int*>*>* map42 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 = :sync-for-iterator.{core::Iterator::current};
           #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}, #t189.{core::MapEntry::value});
@@ -1527,14 +1527,14 @@
     #t188.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t188;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t190 = <core::int*>[];
+    final core::List<core::int*>* #t190 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t190.{core::List::addAll}{Invariant}(<core::int*>[]);
+      #t190.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t190;
   core::Set<core::int*>* set50 = block {
     final core::Set<core::int*>* #t191 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t191.{core::Set::addAll}{Invariant}(<core::int*>[]);
+      #t191.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t191.{core::Set::add}{Invariant}(null);
   } =>#t191;
   core::Map<core::String*, core::int*>* map50 = block {
@@ -1549,7 +1549,7 @@
     #t192.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t192;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t194 = <core::int*>[];
+    final core::List<core::int*>* #t194 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t194.{core::List::addAll}{Invariant}( block {
         final core::Set<core::int*>* #t195 = new col::_CompactLinkedHashSet::•<core::int*>();
@@ -1564,33 +1564,33 @@
     #t196.{core::Set::add}{Invariant}(null);
   } =>#t196;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t198 = <core::int*>[];
+    final core::List<core::int*>* #t198 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t198.{core::List::addAll}{Invariant}(<core::int*>[]);
+        #t198.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t198;
   core::Set<core::int*>* set52 = block {
     final core::Set<core::int*>* #t199 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t199.{core::Set::addAll}{Invariant}(<core::int*>[]);
+        #t199.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t199.{core::Set::add}{Invariant}(null);
   } =>#t199;
   core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t200 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t200 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t200.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t200.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t200;
   core::Set<core::List<core::int*>*>* set60 = block {
     final core::Set<core::List<core::int*>*>* #t201 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t201.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t201.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t201.{core::Set::add}{Invariant}(null);
   } =>#t201;
   core::Map<core::String*, core::List<core::int*>*>* map60 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 = :sync-for-iterator.{core::Iterator::current};
         #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}, #t203.{core::MapEntry::value});
@@ -1599,23 +1599,23 @@
     #t202.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t202;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t204 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t204 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t204.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t204.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t204;
   core::Set<core::List<core::int*>*>* set61 = block {
     final core::Set<core::List<core::int*>*>* #t205 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t205.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t205.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t205.{core::Set::add}{Invariant}(null);
   } =>#t205;
   core::Map<core::String*, core::List<core::int*>*>* map61 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 = :sync-for-iterator.{core::Iterator::current};
           #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}, #t207.{core::MapEntry::value});
@@ -1624,44 +1624,44 @@
     #t206.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t206;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t208 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t208 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t208.{core::List::add}{Invariant}(<core::int*>[]);
+      #t208.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t208;
   core::Set<core::List<core::int*>*>* set70 = block {
     final core::Set<core::List<core::int*>*>* #t209 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t209.{core::Set::add}{Invariant}(<core::int*>[]);
+      #t209.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t209.{core::Set::add}{Invariant}(null);
   } =>#t209;
   core::Map<core::String*, core::List<core::int*>*>* map70 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t210.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+      #t210.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int*>(0));
     #t210.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t210;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t211 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t211 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t211.{core::List::add}{Invariant}(<core::int*>[]);
+        #t211.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t211;
   core::Set<core::List<core::int*>*>* set71 = block {
     final core::Set<core::List<core::int*>*>* #t212 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t212.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t212.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t212.{core::Set::add}{Invariant}(null);
   } =>#t212;
   core::Map<core::String*, core::List<core::int*>*>* map71 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t213.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+        #t213.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int*>(0));
     #t213.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t213;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t214 = <core::num*>[];
+    final core::List<core::num*>* #t214 = core::_GrowableList::•<core::num*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t214.{core::List::add}{Invariant}(42);
@@ -1687,7 +1687,7 @@
     #t216.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t216;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t217 = <core::num*>[];
+    final core::List<core::num*>* #t217 = core::_GrowableList::•<core::num*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t217.{core::List::addAll}{Invariant}(listInt);
@@ -1723,7 +1723,7 @@
     #t219.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t219;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t222 = <dynamic>[];
+    final core::List<dynamic>* #t222 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t222.{core::List::addAll}{Invariant}(listInt);
@@ -1759,7 +1759,7 @@
     #t224.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t224;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t227 = <core::num*>[];
+    final core::List<core::num*>* #t227 = core::_GrowableList::•<core::num*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t227.{core::List::add}{Invariant}(42);
@@ -1790,7 +1790,7 @@
     #t229.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t229;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t231 = <core::int*>[];
+    final core::List<core::int*>* #t231 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
   } =>#t231;
@@ -1807,7 +1807,7 @@
     #t233.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t233;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t234 = <core::int*>[];
+    final core::List<core::int*>* #t234 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -1849,7 +1849,7 @@
     #t240.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t240;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t244 = <core::int*>[];
+    final core::List<core::int*>* #t244 = core::_GrowableList::•<core::int*>(0);
     for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
       #t244.{core::List::add}{Invariant}(42);
   } =>#t244;
@@ -1864,9 +1864,9 @@
       #t248.{core::Map::[]=}{Invariant}("bar", 42);
   } =>#t248;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t250 = <core::int*>[];
+    final core::List<core::int*>* #t250 = core::_GrowableList::•<core::int*>(0);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t250.{core::List::add}{Invariant}(i);
@@ -1876,7 +1876,7 @@
   core::Set<core::int*>* set110 = block {
     final core::Set<core::int*>* #t251 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t251.{core::Set::add}{Invariant}(i);
@@ -1887,7 +1887,7 @@
   core::Map<core::String*, core::int*>* map110 = block {
     final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t252.{core::Map::[]=}{Invariant}("bar", i);
@@ -1896,7 +1896,7 @@
     #t252.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t252;
   core::List<core::int*>* list120 = block {
-    final core::List<core::int*>* #t253 = <core::int*>[];
+    final core::List<core::int*>* #t253 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -1928,7 +1928,7 @@
     #t255.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t255;
   core::List<core::int*>* list130 = block {
-    final core::List<core::int*>* #t256 = <core::int*>[];
+    final core::List<core::int*>* #t256 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
       #t256.{core::List::add}{Invariant}(i);
   } =>#t256;
@@ -1960,7 +1960,7 @@
       #L1:
       {
         block {
-          final core::List<core::int*>* #t259 = <core::int*>[];
+          final core::List<core::int*>* #t259 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             #t259.{core::List::add}{Invariant}(let final<BottomType> #t260 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:210:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
@@ -1987,18 +1987,18 @@
                                                                ^" in "baz" as{TypeError} core::int*, null);
         } =>#t263;
         block {
-          final core::List<core::int*>* #t267 = <core::int*>[];
+          final core::List<core::int*>* #t267 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t267.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t268 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t267.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t268 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:213:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
-                                                ^" in "bar" as{TypeError} core::int*]);
+                                                ^" in "bar" as{TypeError} core::int*));
         } =>#t267;
         block {
           final core::Set<core::int*>* #t269 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t269.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t270 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t269.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t270 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:214:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
-                                                ^" in "bar" as{TypeError} core::int*]);
+                                                ^" in "bar" as{TypeError} core::int*));
           #t269.{core::Set::add}{Invariant}(null);
         } =>#t269;
         block {
@@ -2019,7 +2019,7 @@
                                                                     ^" in "baz" as{TypeError} core::int*, null);
         } =>#t271;
         block {
-          final core::List<core::int*>* #t276 = <core::int*>[];
+          final core::List<core::int*>* #t276 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             #t276.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:216:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
@@ -2043,7 +2043,7 @@
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
         block {
-          final core::List<core::String*>* #t278 = <core::String*>[];
+          final core::List<core::String*>* #t278 = core::_GrowableList::•<core::String*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t278.{core::List::add}{Invariant}(let final<BottomType> #t279 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:219:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
@@ -2081,7 +2081,7 @@
           #t284.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t284;
         block {
-          final core::List<core::int*>* #t287 = <core::int*>[];
+          final core::List<core::int*>* #t287 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t287.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:222:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
@@ -2111,7 +2111,7 @@
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
         block {
-          final core::List<core::int*>* #t289 = <core::int*>[];
+          final core::List<core::int*>* #t289 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t289.{core::List::add}{Invariant}(42);
@@ -2142,9 +2142,9 @@
                                                                                     ^": null};
         final core::int* i = 0;
         block {
-          final core::List<core::int*>* #t291 = <core::int*>[];
+          final core::List<core::int*>* #t291 = core::_GrowableList::•<core::int*>(0);
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(1).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               final core::int* #t292 = :sync-for-iterator.{core::Iterator::current};
               {
@@ -2159,7 +2159,7 @@
         block {
           final core::Set<core::int*>* #t293 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(1).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               final core::int* #t294 = :sync-for-iterator.{core::Iterator::current};
               {
@@ -2175,7 +2175,7 @@
         block {
           final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(1).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               final core::int* #t296 = :sync-for-iterator.{core::Iterator::current};
               {
@@ -2189,7 +2189,7 @@
           #t295.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t295;
         core::List<dynamic>* list10 = block {
-          final core::List<dynamic>* #t297 = <dynamic>[];
+          final core::List<dynamic>* #t297 = core::_GrowableList::•<dynamic>(0);
           {
             core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t298 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:234:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
@@ -2230,13 +2230,13 @@
           #t301.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t301;
         core::List<core::int*>* list20 = block {
-          final core::List<core::int*>* #t303 = <core::int*>[];
+          final core::List<core::int*>* #t303 = core::_GrowableList::•<core::int*>(0);
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t304 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t304 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
                                ^" in "not" as{TypeError} core::int*, let final<BottomType> #t305 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:237:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
-                                      ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
+                                      ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
               #t303.{core::List::add}{Invariant}(i);
@@ -2246,11 +2246,11 @@
         core::Set<core::int*>* set20 = block {
           final core::Set<core::int*>* #t306 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t307 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t307 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t308 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:238:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
-                                     ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
+                                     ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
               #t306.{core::Set::add}{Invariant}(i);
@@ -2261,11 +2261,11 @@
         core::Map<core::String*, core::int*>* map20 = block {
           final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t310 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t310 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t311 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:239:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
-                                     ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
+                                     ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
               #t309.{core::Map::[]=}{Invariant}("bar", i);
@@ -2273,7 +2273,7 @@
           }
           #t309.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t309;
-        final core::List<dynamic>* #t312 = <dynamic>[];
+        final core::List<dynamic>* #t312 = core::_GrowableList::•<dynamic>(0);
         {
           asy::Stream<dynamic>* :stream = let final<BottomType> #t313 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:240:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
@@ -2355,13 +2355,13 @@
         core::Map<core::String*, dynamic>* map30 = block {
           #t322.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t322;
-        final core::List<core::int*>* #t327 = <core::int*>[];
+        final core::List<core::int*>* #t327 = core::_GrowableList::•<core::int*>(0);
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t328 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t328 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
                                                          ^" in "not" as{TypeError} core::int*, let final<BottomType> #t329 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:243:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
-                                                                ^" in "int" as{TypeError} core::int*]);
+                                                                ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
           try
             #L5:
@@ -2384,11 +2384,11 @@
         core::List<core::int*>* list40 = block {} =>#t327;
         final core::Set<core::int*>* #t333 = new col::_CompactLinkedHashSet::•<core::int*>();
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t334 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t334 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t335 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:244:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
-                                                               ^" in "int" as{TypeError} core::int*]);
+                                                               ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
           try
             #L6:
@@ -2413,11 +2413,11 @@
         } =>#t333;
         final core::Map<core::String*, core::int*>* #t339 = <core::String*, core::int*>{};
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t340 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t340 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t341 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:245:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
-                                                               ^" in "int" as{TypeError} core::int*]);
+                                                               ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
           try
             #L7:
@@ -2441,7 +2441,7 @@
           #t339.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t339;
         core::List<core::int*>* list50 = block {
-          final core::List<core::int*>* #t345 = <core::int*>[];
+          final core::List<core::int*>* #t345 = core::_GrowableList::•<core::int*>(0);
           for (; ; )
             #t345.{core::List::add}{Invariant}(42);
         } =>#t345;
@@ -2458,7 +2458,7 @@
           #t347.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t347;
         core::List<core::int*>* list60 = block {
-          final core::List<core::int*>* #t348 = <core::int*>[];
+          final core::List<core::int*>* #t348 = core::_GrowableList::•<core::int*>(0);
           for (; let final<BottomType> #t349 = invalid-expression "pkg/front_end/testcases/general/control_flow_collection_inference.dart:249:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var list60 = [for (; \"not bool\";) 42];
                        ^" in "not bool" as{TypeError} core::bool*; )
@@ -2495,7 +2495,7 @@
 }
 static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
   block {
-    final core::List<core::int*>* #t354 = <core::int*>[];
+    final core::List<core::int*>* #t354 = core::_GrowableList::•<core::int*>(0);
     await for (core::int* i in stream)
       #t354.{core::List::add}{Invariant}(i);
   } =>#t354;
@@ -2512,7 +2512,7 @@
 }
 static method testPromotion(self::A* a) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t357 = <core::int*>[];
+    final core::List<core::int*>* #t357 = core::_GrowableList::•<core::int*>(0);
     if(a is self::B*)
       #t357.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
   } =>#t357;
diff --git a/pkg/front_end/testcases/general/error_recovery/for_in_with_colon.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_recovery/for_in_with_colon.dart.strong.transformed.expect
index bcd06a8..1e157c0 100644
--- a/pkg/front_end/testcases/general/error_recovery/for_in_with_colon.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_recovery/for_in_with_colon.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
 
 static method main() → dynamic {
   {
-    core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+    core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::int* i = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/general/error_recovery/issue_39060.dart.strong.transformed.expect b/pkg/front_end/testcases/general/error_recovery/issue_39060.dart.strong.transformed.expect
index 7981214..6cdea36 100644
--- a/pkg/front_end/testcases/general/error_recovery/issue_39060.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/error_recovery/issue_39060.dart.strong.transformed.expect
@@ -27,10 +27,11 @@
 // ^
 //
 import self as self;
+import "dart:core" as core;
 
 static method main() → dynamic {
   {
     invalid-type A;
-    <invalid-type>[];
+    core::_GrowableList::•<invalid-type>(0);
   }
 }
diff --git a/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect b/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
index 1e37a0d..325ef6d 100644
--- a/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/expressions.dart.strong.transformed.expect
@@ -35,7 +35,7 @@
   }
   for (; false; ) {
   }
-  core::List<core::String*>* list = <core::String*>["Hello, World!"];
+  core::List<core::String*>* list = core::_GrowableList::_literal1<core::String*>("Hello, World!");
   core::print(list.{core::List::[]}(i));
   list.{core::List::[]=}(i, "Hello, Brave New World!");
   core::print(list.{core::List::[]}(i));
diff --git a/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect b/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect
index 0ecab88..f8c0120 100644
--- a/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/flutter_issue64155.dart.strong.transformed.expect
@@ -243,7 +243,7 @@
     : super self::_Class2&Object&TestMixin::•()
     ;
   method _test() → dynamic {
-    final self::PagingResponse<core::String*>* response = new self::PagingResponse::•<core::String*>(new self::PagingResponseData::•<core::String*>(<core::String*>["test"]));
+    final self::PagingResponse<core::String*>* response = new self::PagingResponse::•<core::String*>(new self::PagingResponseData::•<core::String*>(core::_GrowableList::_literal1<core::String*>("test")));
     this.{self::_Class2&Object&TestMixin::test}(asy::Future::value<self::PagingResponse<core::String*>*>(response));
   }
 }
diff --git a/pkg/front_end/testcases/general/for_in_without_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/for_in_without_declaration.dart.strong.transformed.expect
index ea2e504..cdc7b5c 100644
--- a/pkg/front_end/testcases/general/for_in_without_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/for_in_without_declaration.dart.strong.transformed.expect
@@ -98,7 +98,7 @@
     core::String* local;
     dynamic untypedLocal;
     {
-      core::Iterator<core::String*>* :sync-for-iterator = <core::String*>[].{core::Iterable::iterator};
+      core::Iterator<core::String*>* :sync-for-iterator = core::_GrowableList::•<core::String*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::String* #t1 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -107,7 +107,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -116,7 +116,7 @@
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::int* #t3 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -125,7 +125,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -134,7 +134,7 @@
       }
     }
     {
-      core::Iterator<core::double*>* :sync-for-iterator = <core::double*>[].{core::Iterable::iterator};
+      core::Iterator<core::double*>* :sync-for-iterator = core::_GrowableList::•<core::double*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::double* #t5 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -143,7 +143,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t6 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -152,7 +152,7 @@
       }
     }
     {
-      core::Iterator<core::bool*>* :sync-for-iterator = <core::bool*>[].{core::Iterable::iterator};
+      core::Iterator<core::bool*>* :sync-for-iterator = core::_GrowableList::•<core::bool*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::bool* #t7 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -161,7 +161,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t8 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -170,7 +170,7 @@
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::int* #t9 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -179,7 +179,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -189,7 +189,7 @@
     }
     self::C* c = new self::C::•();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::int* #t11 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -198,7 +198,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t12 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -207,7 +207,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t13 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -220,7 +220,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -233,7 +233,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t15 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -250,7 +250,7 @@
     for (main() in []) {}
          ^^^^";
       {
-        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+        core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final dynamic #t16 = :sync-for-iterator.{core::Iterator::current};
           {
@@ -267,7 +267,7 @@
     for (var x, y in <int>[]) {
          ^^^";
       {
-        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::int* #t17 = :sync-for-iterator.{core::Iterator::current};
           {
@@ -283,7 +283,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t18 = :sync-for-iterator.{core::Iterator::current};
         {
diff --git a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.strong.transformed.expect b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.strong.transformed.expect
index 0cc41e9..188b5b3 100644
--- a/pkg/front_end/testcases/general/if_null_in_list_literal.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/if_null_in_list_literal.dart.strong.transformed.expect
@@ -5,5 +5,5 @@
 static method main() → dynamic {
   core::Object* a;
   core::Object* b;
-  return <core::Object*>[let final core::Object* #t1 = a in #t1.{core::Object::==}(null) ?{core::Object*} b : #t1];
+  return core::_GrowableList::_literal1<core::Object*>(let final core::Object* #t1 = a in #t1.{core::Object::==}(null) ?{core::Object*} b : #t1);
 }
diff --git a/pkg/front_end/testcases/general/implicit_new.dart.strong.transformed.expect b/pkg/front_end/testcases/general/implicit_new.dart.strong.transformed.expect
index ee6950c..e510a2f 100644
--- a/pkg/front_end/testcases/general/implicit_new.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_new.dart.strong.transformed.expect
@@ -86,8 +86,8 @@
   self::f(new self::Foo::•());
   self::f(new self::Bar::named());
   self::f(new self::Bar::named());
-  core::List<core::Object*>* l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
-  l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
+  core::List<core::Object*>* l = core::_GrowableList::_literal2<core::Object*>(new self::Foo::•(), new self::Bar::named());
+  l = core::_GrowableList::_literal2<core::Object*>(new self::Foo::•(), new self::Bar::named());
   core::Map<core::String*, core::Object*>* m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
   m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
   self::IndexTester* i = new self::IndexTester::•();
diff --git a/pkg/front_end/testcases/general/invalid_cast.dart.strong.transformed.expect b/pkg/front_end/testcases/general/invalid_cast.dart.strong.transformed.expect
index 2868804..7701181 100644
--- a/pkg/front_end/testcases/general/invalid_cast.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/invalid_cast.dart.strong.transformed.expect
@@ -104,7 +104,7 @@
  - 'Object' is from 'dart:core'.
 Change the type of the list literal or the context in which it is used.
   List<int> a = <Object>[];
-                        ^" in <core::Object*>[];
+                        ^" in core::_GrowableList::•<core::Object*>(0);
   core::Map<core::int*, core::String*>* b = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/general/invalid_cast.dart:21:40: Error: The map literal type 'Map<Object, String>' isn't of expected type 'Map<int, String>'.
  - 'Map' is from 'dart:core'.
  - 'Object' is from 'dart:core'.
@@ -154,7 +154,7 @@
 }
 static method ok() → dynamic {
   function localFunction(core::int* i) → void {}
-  core::List<core::int*>* a = <core::int*>[];
+  core::List<core::int*>* a = core::_GrowableList::•<core::int*>(0);
   core::Map<core::int*, core::String*>* b = <core::int*, core::String*>{};
   core::Map<core::int*, core::String*>* c = <core::int*, core::String*>{};
   (core::int*) →* core::int* d = (core::int* i) → core::int* => i;
diff --git a/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect
index c0a0a59..f5e9af5 100644
--- a/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue39344.dart.strong.transformed.expect
@@ -43,7 +43,7 @@
     ;
   method method1a(generic-covariant-impl self::Class::T* t) → void {
     if(t is self::B*) {
-      core::List<self::Class::T*>* ys = <self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}];
+      core::List<self::Class::T*>* ys = core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */});
       self::xs = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/general/issue39344.dart:19:12: Error: A value of type 'List<T>' can't be assigned to a variable of type 'List<B>'.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/general/issue39344.dart'.
@@ -53,7 +53,7 @@
   }
   method method1b(generic-covariant-impl self::Class::T* t) → void {
     if(t is self::B*) {
-      core::List<core::List<self::Class::T*>*>* yss = <core::List<self::Class::T*>*>[<self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}]];
+      core::List<core::List<self::Class::T*>*>* yss = core::_GrowableList::_literal1<core::List<self::Class::T*>*>(core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */}));
       self::xss = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/general/issue39344.dart:31:13: Error: A value of type 'List<List<T>>' can't be assigned to a variable of type 'List<List<B>>'.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/general/issue39344.dart'.
@@ -64,7 +64,7 @@
   method method2a(generic-covariant-impl self::Class::T* t) → void {
     dynamic alias;
     if(t is self::B*) {
-      core::List<self::Class::T*>* ys = <self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}];
+      core::List<self::Class::T*>* ys = core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */});
       alias = ys;
       self::xs = alias as{TypeError,ForDynamic} core::List<self::B*>*;
     }
@@ -72,7 +72,7 @@
   method method2b(generic-covariant-impl self::Class::T* t) → void {
     dynamic alias;
     if(t is self::B*) {
-      core::List<core::List<self::Class::T*>*>* yss = <core::List<self::Class::T*>*>[<self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}]];
+      core::List<core::List<self::Class::T*>*>* yss = core::_GrowableList::_literal1<core::List<self::Class::T*>*>(core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */}));
       alias = yss;
       self::xss = alias as{TypeError,ForDynamic} core::List<core::List<self::B*>*>*;
     }
diff --git a/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
index 58436b7..96339d0 100644
--- a/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue40662.dart.strong.transformed.expect
@@ -30,7 +30,7 @@
           :async_temporary_1 = x.{core::num::+}(1);
           :async_temporary_0 = x.{core::num::+}(2);
           [yield] let dynamic #t1 = asy::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
-          :async_temporary_2 = <core::int*>[_in::unsafeCast<core::int*>(:async_temporary_1), _in::unsafeCast<core::int*>(:async_temporary_0), _in::unsafeCast<Null>(:result)];
+          :async_temporary_2 = core::_GrowableList::_literal3<core::int*>(_in::unsafeCast<core::int*>(:async_temporary_1), _in::unsafeCast<core::int*>(:async_temporary_0), _in::unsafeCast<Null>(:result));
         }
         else {
           :async_temporary_2 = null;
diff --git a/pkg/front_end/testcases/general/literals.dart.strong.transformed.expect b/pkg/front_end/testcases/general/literals.dart.strong.transformed.expect
index 8ef3e48..ae7c90f 100644
--- a/pkg/front_end/testcases/general/literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/literals.dart.strong.transformed.expect
@@ -19,8 +19,8 @@
   core::print(null);
 }
 static method testList() → dynamic {
-  core::print(<dynamic>[]);
-  core::print(<core::String*>["a", "b"]);
+  core::print(core::_GrowableList::•<dynamic>(0));
+  core::print(core::_GrowableList::_literal2<core::String*>("a", "b"));
 }
 static method testMap() → dynamic {
   core::print(<dynamic, dynamic>{});
diff --git a/pkg/front_end/testcases/general/local_generic_function.dart.strong.transformed.expect b/pkg/front_end/testcases/general/local_generic_function.dart.strong.transformed.expect
index 487fec1..328d4cc 100644
--- a/pkg/front_end/testcases/general/local_generic_function.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/local_generic_function.dart.strong.transformed.expect
@@ -5,5 +5,5 @@
 static method main() → dynamic {
   function f<T extends core::Object* = dynamic>(core::List<T*>* l) → T*
     return l.{core::List::[]}(0);
-  core::int* x = f.call<core::int*>(<core::int*>[0]);
+  core::int* x = f.call<core::int*>(core::_GrowableList::_literal1<core::int*>(0));
 }
diff --git a/pkg/front_end/testcases/general/micro.dart.strong.transformed.expect b/pkg/front_end/testcases/general/micro.dart.strong.transformed.expect
index 74e0279..30a9c46 100644
--- a/pkg/front_end/testcases/general/micro.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/micro.dart.strong.transformed.expect
@@ -146,6 +146,6 @@
   dynamic c = subBox.{self::FinalBox::finalField};
   self::makeDynamicCall(new self::DynamicReceiver1::•());
   self::makeDynamicCall(new self::DynamicReceiver2::•());
-  core::List<core::String*>* list = <core::String*>["string"];
+  core::List<core::String*>* list = core::_GrowableList::_literal1<core::String*>("string");
   core::String* d = list.{core::List::[]}(0);
 }
diff --git a/pkg/front_end/testcases/general/no_such_method_private_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/general/no_such_method_private_setter.dart.strong.transformed.expect
index ddb32d6..3e79735 100644
--- a/pkg/front_end/testcases/general/no_such_method_private_setter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/no_such_method_private_setter.dart.strong.transformed.expect
@@ -22,7 +22,7 @@
   no-such-method-forwarder get /* from org-dartlang-testcase:///no_such_method_private_setter_lib.dart */ _x() → core::int*
     return this.{self::Foo::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::int*;
   no-such-method-forwarder set /* from org-dartlang-testcase:///no_such_method_private_setter_lib.dart */ _x(core::int* value) → void
-    return this.{self::Foo::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Foo::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method main() → dynamic {
   no_::baz(new self::Foo::•());
diff --git a/pkg/front_end/testcases/general/nsm_covariance.dart.strong.transformed.expect b/pkg/front_end/testcases/general/nsm_covariance.dart.strong.transformed.expect
index ee2b26a..63f9b2e 100644
--- a/pkg/front_end/testcases/general/nsm_covariance.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/nsm_covariance.dart.strong.transformed.expect
@@ -60,11 +60,11 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method _method1(core::int* a, covariant core::int* b, generic-covariant-impl core::int* c, covariant generic-covariant-impl core::int* d) → void
-    return this.{self::D3::noSuchMethod}(new core::_InvocationMirror::_withType(#C3, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[a, b, c, d]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{self::D3::noSuchMethod}(new core::_InvocationMirror::_withType(#C3, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal4<dynamic>(a, b, c, d)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method2({core::int* a = #C1, covariant core::int* b = #C1, generic-covariant-impl core::int* c = #C1, covariant generic-covariant-impl core::int* d = #C1}) → void
     return this.{self::D3::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b, #C10: c, #C11: d})));
   no-such-method-forwarder method _method3(covariant core::int* a, generic-covariant-impl core::int* b) → void
-    return this.{self::D3::noSuchMethod}(new core::_InvocationMirror::_withType(#C12, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[a, b]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{self::D3::noSuchMethod}(new core::_InvocationMirror::_withType(#C12, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal2<dynamic>(a, b)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method4({covariant core::int* a = #C1, generic-covariant-impl core::int* b = #C1}) → void
     return this.{self::D3::noSuchMethod}(new core::_InvocationMirror::_withType(#C13, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b})));
 }
@@ -85,11 +85,11 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method _method1(core::int* x, covariant core::int* y, generic-covariant-impl core::int* z, covariant generic-covariant-impl core::int* w) → void
-    return this.{self::D4::noSuchMethod}(new core::_InvocationMirror::_withType(#C3, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[x, y, z, w]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{self::D4::noSuchMethod}(new core::_InvocationMirror::_withType(#C3, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal4<dynamic>(x, y, z, w)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method2({core::int* a = #C1, covariant core::int* b = #C1, generic-covariant-impl core::int* c = #C1, covariant generic-covariant-impl core::int* d = #C1}) → void
     return this.{self::D4::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b, #C10: c, #C11: d})));
   no-such-method-forwarder method _method3(covariant core::int* x, generic-covariant-impl core::int* y) → void
-    return this.{self::D4::noSuchMethod}(new core::_InvocationMirror::_withType(#C12, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[x, y]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{self::D4::noSuchMethod}(new core::_InvocationMirror::_withType(#C12, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal2<dynamic>(x, y)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method4({covariant core::int* a = #C1, generic-covariant-impl core::int* b = #C1}) → void
     return this.{self::D4::noSuchMethod}(new core::_InvocationMirror::_withType(#C13, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b})));
 }
@@ -192,11 +192,11 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method _method1(core::int* a, covariant core::int* b, generic-covariant-impl core::int* c, covariant generic-covariant-impl core::int* d) → void
-    return this.{nsm::C3::noSuchMethod}(new core::_InvocationMirror::_withType(#C14, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[a, b, c, d]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{nsm::C3::noSuchMethod}(new core::_InvocationMirror::_withType(#C14, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal4<dynamic>(a, b, c, d)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method2({core::int* a = #C1, covariant core::int* b = #C1, generic-covariant-impl core::int* c = #C1, covariant generic-covariant-impl core::int* d = #C1}) → void
     return this.{nsm::C3::noSuchMethod}(new core::_InvocationMirror::_withType(#C15, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b, #C10: c, #C11: d})));
   no-such-method-forwarder method _method3(covariant core::int* a, generic-covariant-impl core::int* b) → void
-    return this.{nsm::C3::noSuchMethod}(new core::_InvocationMirror::_withType(#C16, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[a, b]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{nsm::C3::noSuchMethod}(new core::_InvocationMirror::_withType(#C16, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal2<dynamic>(a, b)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method4({covariant core::int* a = #C1, generic-covariant-impl core::int* b = #C1}) → void
     return this.{nsm::C3::noSuchMethod}(new core::_InvocationMirror::_withType(#C17, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b})));
 }
@@ -217,11 +217,11 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method _method1(core::int* x, covariant core::int* y, generic-covariant-impl core::int* z, covariant generic-covariant-impl core::int* w) → void
-    return this.{nsm::C4::noSuchMethod}(new core::_InvocationMirror::_withType(#C14, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[x, y, z, w]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{nsm::C4::noSuchMethod}(new core::_InvocationMirror::_withType(#C14, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal4<dynamic>(x, y, z, w)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method2({core::int* a = #C1, covariant core::int* b = #C1, generic-covariant-impl core::int* c = #C1, covariant generic-covariant-impl core::int* d = #C1}) → void
     return this.{nsm::C4::noSuchMethod}(new core::_InvocationMirror::_withType(#C15, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b, #C10: c, #C11: d})));
   no-such-method-forwarder method _method3(covariant core::int* x, generic-covariant-impl core::int* y) → void
-    return this.{nsm::C4::noSuchMethod}(new core::_InvocationMirror::_withType(#C16, 0, #C4, core::List::unmodifiable<dynamic>(<dynamic>[x, y]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
+    return this.{nsm::C4::noSuchMethod}(new core::_InvocationMirror::_withType(#C16, 0, #C4, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal2<dynamic>(x, y)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6)));
   no-such-method-forwarder method _method4({covariant core::int* a = #C1, generic-covariant-impl core::int* b = #C1}) → void
     return this.{nsm::C4::noSuchMethod}(new core::_InvocationMirror::_withType(#C17, 0, #C4, #C5, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: a, #C9: b})));
 }
diff --git a/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect b/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect
index e5e1b00..485db8b 100644
--- a/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/null_aware_spread.dart.strong.transformed.expect
@@ -5,7 +5,7 @@
 
 static method nullAwareListSpread(core::List<core::String*>* list) → dynamic {
   list = block {
-    final core::List<core::String*>* #t1 = <core::String*>["foo"];
+    final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>("foo");
     final core::Iterable<core::String*>* #t2 = list;
     if(!#t2.{core::Object::==}(null))
       #t1.{core::List::addAll}{Invariant}(#t2);
diff --git a/pkg/front_end/testcases/general/operator_method_not_found.dart.strong.transformed.expect b/pkg/front_end/testcases/general/operator_method_not_found.dart.strong.transformed.expect
index efc4e77..47a50d4 100644
--- a/pkg/front_end/testcases/general/operator_method_not_found.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/operator_method_not_found.dart.strong.transformed.expect
@@ -318,7 +318,7 @@
 Try correcting the operator to an existing operator, or defining a 'unary-' operator.
   print(-foo);
         ^");
-  core::print(<invalid-type>[]);
+  core::print(core::_GrowableList::•<invalid-type>(0));
   core::print(invalid-expression "pkg/front_end/testcases/general/operator_method_not_found.dart:37:9: Error: This couldn't be parsed.
   print(>foo);
         ^".>(foo));
diff --git a/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect b/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
index 442d3ae..d5f89c9 100644
--- a/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/regression_flutter51828.dart.strong.transformed.expect
@@ -102,7 +102,7 @@
         :async_temporary_1 = _in::unsafeCast<self::A*>(:async_temporary_1).{self::A::foo}(_in::unsafeCast<Null>(:result));
         :async_temporary_0 = new self::B::•();
         [yield] let dynamic #t2 = asy::_awaitHelper(null, :async_op_then, :async_op_error, :async_op) in null;
-        :return_value = <asy::Future<void>*>[_in::unsafeCast<asy::Future<void>*>(:async_temporary_1), _in::unsafeCast<self::B*>(:async_temporary_0).{self::B::bar}(_in::unsafeCast<Null>(:result))];
+        :return_value = core::_GrowableList::_literal2<asy::Future<void>*>(_in::unsafeCast<asy::Future<void>*>(:async_temporary_1), _in::unsafeCast<self::B*>(:async_temporary_0).{self::B::bar}(_in::unsafeCast<Null>(:result)));
         break #L3;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect b/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect
index ff4b46b..a809466 100644
--- a/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/spread_collection.dart.strong.transformed.expect
@@ -13,9 +13,9 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    #t1.{core::List::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t2 = <core::int*>[3];
+    final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1);
+    #t1.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(2));
+    final core::Iterable<core::int*>* #t2 = core::_GrowableList::_literal1<core::int*>(3);
     if(!#t2.{core::Object::==}(null))
       #t1.{core::List::addAll}{Invariant}(#t2);
   } =>#t1;
@@ -41,8 +41,8 @@
   final core::Set<core::int*>* aSet = block {
     final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
     #t7.{core::Set::add}{Invariant}(1);
-    #t7.{core::Set::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t8 = <core::int*>[3];
+    #t7.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(2));
+    final core::Iterable<core::int*>* #t8 = core::_GrowableList::_literal1<core::int*>(3);
     if(!#t8.{core::Object::==}(null))
       #t7.{core::Set::addAll}{Invariant}(#t8);
   } =>#t7;
diff --git a/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect
index 8638624..ac19cc2 100644
--- a/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/spread_collection_inference.dart.strong.transformed.expect
@@ -103,17 +103,17 @@
 static method bar<K extends core::Object* = dynamic, V extends core::Object* = dynamic>() → core::Map<self::bar::K*, self::bar::V*>*
   return null;
 static method foo(dynamic dynVar) → dynamic {
-  core::List<core::int*>* spread = <core::int*>[1, 2, 3];
+  core::List<core::int*>* spread = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
   core::Map<core::String*, core::int*>* mapSpread = <core::String*, core::int*>{"foo": 4, "bar": 2};
   core::int* notSpreadInt = 42;
   () →* core::int* notSpreadFunction = null;
   core::Map<core::int*, core::num*>* mapIntNum = <core::int*, core::num*>{42: 42};
-  core::List<core::num*>* listNum = <core::num*>[42];
+  core::List<core::num*>* listNum = core::_GrowableList::_literal1<core::num*>(42);
   core::List<dynamic>* lhs10 = block {
-    final core::List<dynamic>* #t1 = core::List::of<dynamic>(<dynamic>[]);
+    final core::List<dynamic>* #t1 = core::List::of<dynamic>(core::_GrowableList::•<dynamic>(0));
   } =>#t1;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(<dynamic>[]);
+    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(core::_GrowableList::•<dynamic>(0));
   } =>#t2;
   core::Map<dynamic, dynamic>* map10 = block {
     final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
@@ -199,16 +199,16 @@
   dynamic map21ambiguous = {...(mapSpread as dynamic)};
                            ^";
   core::List<core::int*>* lhs22 = block {
-    final core::List<core::int*>* #t20 = core::List::of<core::int*>(<core::int*>[]);
+    final core::List<core::int*>* #t20 = core::List::of<core::int*>(core::_GrowableList::•<core::int*>(0));
   } =>#t20;
   core::Set<core::int*>* set22 = block {
-    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(<core::int*>[]);
+    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(core::_GrowableList::•<core::int*>(0));
     #t21.{core::Set::add}{Invariant}(42);
   } =>#t21;
   core::Set<core::int*>* set22ambiguous = block {
     final core::Set<core::int*>* #t22 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -229,16 +229,16 @@
     }
   } =>#t25;
   core::List<core::List<core::int*>*>* lhs23 = block {
-    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
+    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t27;
   core::Set<core::List<core::int*>*>* set23 = block {
-    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-    #t28.{core::Set::add}{Invariant}(<core::int*>[42]);
+    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
+    #t28.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t28;
   core::Set<core::List<core::int*>*>* set23ambiguous = block {
     final core::Set<core::List<core::int*>*>* #t29 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     {
-      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t30 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -251,7 +251,7 @@
   core::Map<core::String*, core::List<core::int*>*>* map23 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
     {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
         #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
@@ -317,9 +317,9 @@
       }
     }
   } =>#t46) as{TypeError} core::int*;
-  core::List<dynamic>* lhs40 = <dynamic>[invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:111:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
+  core::List<dynamic>* lhs40 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:111:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs40 = <dynamic>[...notSpreadInt];
-                                     ^"];
+                                     ^");
   core::Set<dynamic>* set40 = block {
     final core::Set<dynamic>* #t48 = new col::_CompactLinkedHashSet::•<dynamic>();
     #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:113:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
@@ -329,9 +329,9 @@
   core::Map<dynamic, dynamic>* map40 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:115:55: Error: Unexpected type 'int' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map40 = <dynamic, dynamic>{...notSpreadInt};
                                                       ^": null};
-  core::List<dynamic>* lhs50 = <dynamic>[invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:117:38: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
+  core::List<dynamic>* lhs50 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:117:38: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs50 = <dynamic>[...notSpreadFunction];
-                                     ^"];
+                                     ^");
   core::Set<dynamic>* set50 = block {
     final core::Set<dynamic>* #t49 = new col::_CompactLinkedHashSet::•<dynamic>();
     #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:119:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
@@ -341,9 +341,9 @@
   core::Map<dynamic, dynamic>* map50 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:121:55: Error: Unexpected type 'int Function()' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map50 = <dynamic, dynamic>{...notSpreadFunction};
                                                       ^": null};
-  core::List<core::String*>* lhs60 = <core::String*>[invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:123:36: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+  core::List<core::String*>* lhs60 = core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:123:36: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
   List<String> lhs60 = <String>[...spread];
-                                   ^"];
+                                   ^");
   core::Set<core::String*>* set60 = block {
     final core::Set<core::String*>* #t50 = new col::_CompactLinkedHashSet::•<core::String*>();
     #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:125:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
@@ -356,9 +356,9 @@
   core::Map<core::String*, core::String*>* map61 = <core::String*, core::String*>{null: invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:129:51: Error: Can't assign spread entry values of type 'int' to map entry values of type 'String'.
   Map<String, String> map61 = <String, String>{...mapSpread};
                                                   ^"};
-  core::List<core::int*>* lhs70 = <core::int*>[invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:131:30: Error: Can't spread a value with static type 'Null'.
+  core::List<core::int*>* lhs70 = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:131:30: Error: Can't spread a value with static type 'Null'.
   List<int> lhs70 = <int>[...null];
-                             ^"];
+                             ^");
   core::Set<core::int*>* set70 = block {
     final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
     #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general/spread_collection_inference.dart:133:29: Error: Can't spread a value with static type 'Null'.
@@ -371,7 +371,7 @@
     ...null,
        ^");
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t53 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -385,7 +385,7 @@
   Map<String, int> map70 = <String, int>{...null};
                                             ^": null};
   core::List<core::int*>* lhs80 = block {
-    final core::List<core::int*>* #t55 = <core::int*>[];
+    final core::List<core::int*>* #t55 = core::_GrowableList::•<core::int*>(0);
     final core::Iterable<core::int*>* #t56 = null;
     if(!#t56.{core::Object::==}(null))
       #t55.{core::List::addAll}{Invariant}(#t56);
@@ -410,7 +410,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t63 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -442,7 +442,7 @@
     }
   } =>#t68;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t70 = <core::int*>[];
+    final core::List<core::int*>* #t70 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<core::num*>* :sync-for-iterator = listNum.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -469,7 +469,7 @@
     }
   } =>#t73;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t77 = <core::int*>[];
+    final core::List<core::int*>* #t77 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect b/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect
index 91dfee3..dd17252 100644
--- a/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/statements.dart.strong.transformed.expect
@@ -84,7 +84,7 @@
   }
   while (false)
   {
-    core::Iterator<core::String*>* :sync-for-iterator = <core::String*>["Hello from for-in!"].{core::Iterable::iterator};
+    core::Iterator<core::String*>* :sync-for-iterator = core::_GrowableList::_literal1<core::String*>("Hello from for-in!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String* s = :sync-for-iterator.{core::Iterator::current};
       {
@@ -93,7 +93,7 @@
     }
   }
   {
-    core::Iterator<core::String*>* :sync-for-iterator = <core::String*>["Hello from for-in without block!"].{core::Iterable::iterator};
+    core::Iterator<core::String*>* :sync-for-iterator = core::_GrowableList::_literal1<core::String*>("Hello from for-in without block!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String* s = :sync-for-iterator.{core::Iterator::current};
       core::print(s);
@@ -101,7 +101,7 @@
   }
   dynamic s;
   {
-    core::Iterator<dynamic>* :sync-for-iterator = <dynamic>["Hello from for-in without decl!"].{core::Iterable::iterator};
+    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal1<dynamic>("Hello from for-in without decl!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
       {
@@ -111,7 +111,7 @@
     }
   }
   {
-    core::Iterator<dynamic>* :sync-for-iterator = <dynamic>["Hello from for-in without decl and block!"].{core::Iterable::iterator};
+    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal1<dynamic>("Hello from for-in without decl and block!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       final dynamic #t5 = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.strong.transformed.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.strong.transformed.expect
index f5999a8..63d1a23 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.strong.transformed.expect
@@ -51,7 +51,7 @@
     return (z as core::Map<self::D::foo3::T2*, self::D::Q*>*).{core::Map::values};
   }
   method foo4(dynamic w) → core::Map<self::D::P*, self::D::Q*>* {
-    core::List<core::Map<self::D::P*, self::D::Q*>*>* list = <core::Map<self::D::P*, self::D::Q*>*>[w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*];
+    core::List<core::Map<self::D::P*, self::D::Q*>*>* list = core::_GrowableList::_literal1<core::Map<self::D::P*, self::D::Q*>*>(w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*);
     return w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
   }
 }
diff --git a/pkg/front_end/testcases/general/void_methods.dart.strong.transformed.expect b/pkg/front_end/testcases/general/void_methods.dart.strong.transformed.expect
index 9846974..8844178 100644
--- a/pkg/front_end/testcases/general/void_methods.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/void_methods.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  field core::List<dynamic>* list = <dynamic>[1, 2, 3];
+  field core::List<dynamic>* list = core::_GrowableList::_literal3<dynamic>(1, 2, 3);
   synthetic constructor •() → self::Foo*
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect
index b7481a0..2e51431 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/DeltaBlue.dart.weak.transformed.expect
@@ -265,7 +265,7 @@
   }
 }
 class Variable extends core::Object {
-  field core::List<self::Constraint*>* constraints = <self::Constraint*>[];
+  field core::List<self::Constraint*>* constraints = core::_GrowableList::•<self::Constraint*>(0);
   field self::Constraint* determinedBy = null;
   field core::int* mark = 0;
   field self::Strength* walkStrength = #C18;
@@ -337,7 +337,7 @@
     return plan;
   }
   method extractPlanFromConstraints(core::List<self::Constraint*>* constraints) → self::Plan* {
-    core::List<self::Constraint*>* sources = <self::Constraint*>[];
+    core::List<self::Constraint*>* sources = core::_GrowableList::•<self::Constraint*>(0);
     for (core::int* i = 0; i.{core::num::<}(constraints.{core::List::length}); i = i.{core::num::+}(1)) {
       self::Constraint* c = constraints.{core::List::[]}(i);
       if(c.{self::Constraint::isInput}() && c.{self::Constraint::isSatisfied}())
@@ -346,7 +346,7 @@
     return this.{self::Planner::makePlan}(sources);
   }
   method addPropagate(self::Constraint* c, core::int* mark) → core::bool* {
-    core::List<self::Constraint*>* todo = <self::Constraint*>[c];
+    core::List<self::Constraint*>* todo = core::_GrowableList::_literal1<self::Constraint*>(c);
     while (todo.{core::List::length}.{core::num::>}(0)) {
       self::Constraint* d = todo.{core::List::removeLast}();
       if(d.{self::Constraint::output}().{self::Variable::mark}.{core::num::==}(mark)) {
@@ -362,8 +362,8 @@
     out.{self::Variable::determinedBy} = null;
     out.{self::Variable::walkStrength} = #C18;
     out.{self::Variable::stay} = true;
-    core::List<self::Constraint*>* unsatisfied = <self::Constraint*>[];
-    core::List<self::Variable*>* todo = <self::Variable*>[out];
+    core::List<self::Constraint*>* unsatisfied = core::_GrowableList::•<self::Constraint*>(0);
+    core::List<self::Variable*>* todo = core::_GrowableList::_literal1<self::Variable*>(out);
     while (todo.{core::List::length}.{core::num::>}(0)) {
       self::Variable* v = todo.{core::List::removeLast}();
       for (core::int* i = 0; i.{core::num::<}(v.{self::Variable::constraints}.{core::List::length}); i = i.{core::num::+}(1)) {
@@ -402,7 +402,7 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class Plan extends core::Object {
-  field core::List<self::Constraint*>* list = <self::Constraint*>[];
+  field core::List<self::Constraint*>* list = core::_GrowableList::•<self::Constraint*>(0);
   synthetic constructor •() → self::Plan*
     : super core::Object::•()
     ;
@@ -458,7 +458,7 @@
   }
   new self::StayConstraint::•(last, #C9);
   self::EditConstraint* edit = new self::EditConstraint::•(first, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::Constraint*>[edit]);
+  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::Constraint*>(edit));
   for (core::int* i = 0; i.{core::num::<}(100); i = i.{core::num::+}(1)) {
     first.{self::Variable::value} = i;
     plan.{self::Plan::execute}();
@@ -474,7 +474,7 @@
   self::Variable* offset = new self::Variable::•("offset", 1000);
   self::Variable* src = null;
   self::Variable* dst = null;
-  core::List<self::Variable*>* dests = <self::Variable*>[];
+  core::List<self::Variable*>* dests = core::_GrowableList::•<self::Variable*>(0);
   for (core::int* i = 0; i.{core::num::<}(n); i = i.{core::num::+}(1)) {
     src = new self::Variable::•("src", i);
     dst = new self::Variable::•("dst", i);
@@ -501,7 +501,7 @@
 }
 static method change(self::Variable* v, core::int* newValue) → void {
   self::EditConstraint* edit = new self::EditConstraint::•(v, #C6);
-  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(<self::EditConstraint*>[edit]);
+  self::Plan* plan = self::planner.{self::Planner::extractPlanFromConstraints}(core::_GrowableList::_literal1<self::EditConstraint*>(edit));
   for (core::int* i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1)) {
     v.{self::Variable::value} = newValue;
     plan.{self::Plan::execute}();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/arithmetic.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/arithmetic.dart.weak.transformed.expect
index ed95ed2..0f2a3e1 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/arithmetic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/arithmetic.dart.weak.transformed.expect
@@ -14,5 +14,5 @@
 static method main() → dynamic {
   self::foo(4, 5);
   self::foo(6, 7);
-  self::loop(<dynamic>["dfg"]);
+  self::loop(core::_GrowableList::_literal1<dynamic>("dfg"));
 }
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect
index 33ab33f..2a42c83 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/async_function.dart.weak.transformed.expect
@@ -6,7 +6,7 @@
 
 import "dart:async";
 
-static field core::List<core::String*>* stringList = <core::String*>["bar"];
+static field core::List<core::String*>* stringList = core::_GrowableList::_literal1<core::String*>("bar");
 static method asyncString() → asy::Future<core::String*>* /* originally async */ {
   final asy::_Future<core::String*>* :async_future = new asy::_Future::•<core::String*>();
   core::bool* :is_sync = false;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect
index 78818d9..760f00e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/async_nested.dart.weak.transformed.expect
@@ -44,18 +44,18 @@
       #L1:
       {
         core::String* expected = "1 2 3 4 5 6 7 8 9 10";
-        :async_temporary_2 = new self::Node::•("2", <self::Node*>[]);
-        [yield] let dynamic #t4 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("7", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
-        [yield] let dynamic #t5 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("6", <self::Node*>[_in::unsafeCast<self::Node*>(:result)])), :async_op_then, :async_op_error, :async_op) in null;
+        :async_temporary_2 = new self::Node::•("2", core::_GrowableList::•<self::Node*>(0));
+        [yield] let dynamic #t4 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("7", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t5 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("6", core::_GrowableList::_literal1<self::Node*>(_in::unsafeCast<self::Node*>(:result)))), :async_op_then, :async_op_error, :async_op) in null;
         :async_temporary_1 = _in::unsafeCast<self::Node*>(:result);
-        [yield] let dynamic #t6 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("8", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t6 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("8", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
         :async_temporary_0 = _in::unsafeCast<self::Node*>(:result);
-        [yield] let dynamic #t7 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("9", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
-        [yield] let dynamic #t8 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("4", <self::Node*>[new self::Node::•("5", <self::Node*>[_in::unsafeCast<self::Node*>(:async_temporary_1), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)])])), :async_op_then, :async_op_error, :async_op) in null;
-        [yield] let dynamic #t9 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("3", <self::Node*>[_in::unsafeCast<self::Node*>(:result)])), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t7 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("9", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t8 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("4", core::_GrowableList::_literal1<self::Node*>(new self::Node::•("5", core::_GrowableList::_literal3<self::Node*>(_in::unsafeCast<self::Node*>(:async_temporary_1), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)))))), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t9 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("3", core::_GrowableList::_literal1<self::Node*>(_in::unsafeCast<self::Node*>(:result)))), :async_op_then, :async_op_error, :async_op) in null;
         :async_temporary_0 = _in::unsafeCast<self::Node*>(:result);
-        [yield] let dynamic #t10 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("10", <self::Node*>[])), :async_op_then, :async_op_error, :async_op) in null;
-        self::Node* node = new self::Node::•("1", <self::Node*>[_in::unsafeCast<self::Node*>(:async_temporary_2), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)]);
+        [yield] let dynamic #t10 = asy::_awaitHelper(asy::Future::value<self::Node*>(new self::Node::•("10", core::_GrowableList::•<self::Node*>(0))), :async_op_then, :async_op_error, :async_op) in null;
+        self::Node* node = new self::Node::•("1", core::_GrowableList::_literal3<self::Node*>(_in::unsafeCast<self::Node*>(:async_temporary_2), _in::unsafeCast<self::Node*>(:async_temporary_0), _in::unsafeCast<self::Node*>(:result)));
         core::String* actual = node.{self::Node::toSimpleString}() as{TypeError,ForDynamic} core::String*;
         core::print(actual);
         if(!actual.{core::String::==}(expected)) {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect
index 2aaab4d..51ef2df 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/await_complex.dart.weak.transformed.expect
@@ -244,7 +244,7 @@
         [yield] let dynamic #t19 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error, :async_op) in null;
         core::num* d = _in::unsafeCast<core::int*>(:async_temporary_1).{core::num::+}(:result as{TypeError,ForDynamic} core::num*);
         core::int* cnt = 2;
-        core::List<core::int*>* b = <core::int*>[1, 2, 3];
+        core::List<core::int*>* b = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
         :async_temporary_3 = b;
         :async_temporary_2 = cnt;
         [yield] let dynamic #t20 = asy::_awaitHelper(self::dummy(), :async_op_then, :async_op_error, :async_op) in null;
@@ -354,7 +354,7 @@
       #L6:
       {
         {
-          core::Iterator<core::Function*>* :sync-for-iterator = <core::Function*>[#C1, #C2].{core::Iterable::iterator};
+          core::Iterator<core::Function*>* :sync-for-iterator = core::_GrowableList::_literal2<core::Function*>(#C1, #C2).{core::Iterable::iterator};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
             final core::Function* #t26 = :sync-for-iterator.{core::Iterator::current};
             {
@@ -433,7 +433,7 @@
       #L7:
       {
         {
-          core::Iterator<core::Function*>* :sync-for-iterator = <core::Function*>[#C1, #C2].{core::Iterable::iterator};
+          core::Iterator<core::Function*>* :sync-for-iterator = core::_GrowableList::_literal2<core::Function*>(#C1, #C2).{core::Iterable::iterator};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
             final core::Function* #t33 = :sync-for-iterator.{core::Iterator::current};
             {
@@ -637,7 +637,7 @@
                 :controller_stream = :controller.{asy::_AsyncStarStreamController::stream};
                 return :controller_stream;
               }
-              :async_temporary_0 = <dynamic>[42];
+              :async_temporary_0 = core::_GrowableList::_literal1<dynamic>(42);
               [yield] let dynamic #t55 = asy::_awaitHelper(testStream1.call().{asy::Stream::toList}(), :async_op_then, :async_op_error, :async_op) in null;
               self::expectList(_in::unsafeCast<core::List<dynamic>*>(:async_temporary_0), _in::unsafeCast<core::List<core::int*>>(:result));
               function testStream2() → asy::Stream<core::int*>* /* originally async* */ {
@@ -674,7 +674,7 @@
                 :controller_stream = :controller.{asy::_AsyncStarStreamController::stream};
                 return :controller_stream;
               }
-              :async_temporary_1 = <dynamic>[42];
+              :async_temporary_1 = core::_GrowableList::_literal1<dynamic>(42);
               [yield] let dynamic #t57 = asy::_awaitHelper(testStream2.call().{asy::Stream::toList}(), :async_op_then, :async_op_error, :async_op) in null;
               self::expectList(_in::unsafeCast<core::List<dynamic>*>(:async_temporary_1), _in::unsafeCast<core::List<core::int*>>(:result));
             }
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect
index e178bdf..c96fec3e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/await_in_cascade.dart.weak.transformed.expect
@@ -23,7 +23,7 @@
       try {
         #L1:
         {
-          final core::List<core::int*>* #t1 = <core::int*>[];
+          final core::List<core::int*>* #t1 = core::_GrowableList::•<core::int*>(0);
           [yield] let dynamic #t2 = asy::_awaitHelper(this.{self::C::_m}(), :async_op_then, :async_op_error, :async_op) in null;
           #t1.{core::List::add}(_in::unsafeCast<core::int*>(:result));
           :return_value = block {} =>#t1;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug32414b.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug32414b.dart.weak.transformed.expect
index 1422239..6378088 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug32414b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug32414b.dart.weak.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 static method test() → void {
-  core::List<dynamic>* l = <dynamic>[1, "hello"];
+  core::List<dynamic>* l = core::_GrowableList::_literal2<dynamic>(1, "hello");
   core::List<core::String*>* l2 = l.{core::Iterable::map}<core::String*>((dynamic element) → core::String* => element.{core::Object::toString}()).{core::Iterable::toList}();
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect
index b800d2a..2ca85ca 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33206.dart.weak.transformed.expect
@@ -52,7 +52,7 @@
     try {
       #L1:
       {
-        :return_value = <core::Object*>[1];
+        :return_value = core::_GrowableList::_literal1<core::Object*>(1);
         break #L1;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
@@ -68,7 +68,7 @@
   return :async_future;
 }
 static method f2() → core::List<core::Object*>*
-  return <core::Object*>[2];
+  return core::_GrowableList::_literal1<core::Object*>(2);
 static method f3() → asy::Future<core::Object*>* /* originally async */ {
   final asy::_Future<core::Object*>* :async_future = new asy::_Future::•<core::Object*>();
   core::bool* :is_sync = false;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/bug33298.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/bug33298.dart.weak.transformed.expect
index 7bf8079..d01a7f6 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/bug33298.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/bug33298.dart.weak.transformed.expect
@@ -62,14 +62,14 @@
 }
 static method test() → dynamic {
   self::A* a = new self::A::•();
-  core::List<core::String*>* list1 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(a.{self::A::call}).{core::Iterable::toList}();
-  core::List<core::String*>* list2 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1.==(null) ?{(core::String*) →* core::String*} null : #t1.{self::A::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list1 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(a.{self::A::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list2 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::A* #t1 = a in #t1.==(null) ?{(core::String*) →* core::String*} null : #t1.{self::A::call}).{core::Iterable::toList}();
   self::B<core::String*>* b = new self::B::•<core::String*>();
-  core::List<core::String*>* list3 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(b.{self::B::call}).{core::Iterable::toList}();
-  core::List<core::String*>* list4 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2.==(null) ?{(core::String*) →* core::String*} null : #t2.{self::B::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list3 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(b.{self::B::call}).{core::Iterable::toList}();
+  core::List<core::String*>* list4 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(let final self::B<core::String*>* #t2 = b in #t2.==(null) ?{(core::String*) →* core::String*} null : #t2.{self::B::call}).{core::Iterable::toList}();
   self::C* c = new self::C::•();
-  core::List<core::String*>* list5 = <core::String*>["a", "b", "c"].{core::Iterable::map}<core::String*>(c.{self::C::call}<core::String*>).{core::Iterable::toList}();
-  core::List<core::String*>* list6 = <core::String*>["a", "b", "c"].{core::Iterable::map}<dynamic>(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
+  core::List<core::String*>* list5 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<core::String*>(c.{self::C::call}<core::String*>).{core::Iterable::toList}();
+  core::List<core::String*>* list6 = core::_GrowableList::_literal3<core::String*>("a", "b", "c").{core::Iterable::map}<dynamic>(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/bug33298.dart:30:44: Error: The argument type 'T Function<T>(T)' can't be assigned to the parameter type 'dynamic Function(String)'.
   List<String> list6 = ['a', 'b', 'c'].map(c).toList();
                                            ^" in (let final self::C* #t4 = c in #t4.==(null) ?{<T extends core::Object* = dynamic>(T*) →* T*} null : #t4.{self::C::call}) as{TypeError} (core::String*) →* dynamic).{core::Iterable::toList}() as{TypeError} core::List<core::String*>*;
 }
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/cascade.dart.weak.transformed.expect
index 8361133..a102674 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/cascade.dart.weak.transformed.expect
@@ -26,10 +26,10 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<core::int*>* list = let final core::List<core::int*>* #t1 = <core::int*>[1] in block {
+  core::List<core::int*>* list = let final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1) in block {
     #t1.{core::List::add}(2);
     #t1.{core::List::add}(3);
-    #t1.{core::List::addAll}(<core::int*>[4, 5]);
+    #t1.{core::List::addAll}(core::_GrowableList::_literal2<core::int*>(4, 5));
   } =>#t1;
   core::print(list);
   let final core::List<core::int*>* #t2 = list in block {
@@ -44,10 +44,10 @@
     #t3.{core::List::[]=}(0, 87);
   } =>#t3;
   core::print(list);
-  list = let final core::List<core::int*>* #t4 = <core::int*>[let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/cascade.dart:28:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
+  list = let final core::List<core::int*>* #t4 = core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/cascade.dart:28:5: Error: A value of type 'List<int>' can't be assigned to a variable of type 'int'.
  - 'List' is from 'dart:core'.
     [1]
-    ^" in <core::int*>[1] as{TypeError} core::int*] in block {
+    ^" in core::_GrowableList::_literal1<core::int*>(1) as{TypeError} core::int*) in block {
     invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/cascade.dart:30:13: Error: The getter 'last' isn't defined for the class 'int'.
 Try correcting the name to the name of an existing getter, or defining a getter or field named 'last'.
     ..first.last.toString()
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect
index 09e88b5..b49f9a8 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
+    final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(2);
     if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -16,14 +16,14 @@
       if(self::oracle() as{TypeError,ForDynamic} core::bool*)
         #t1.{core::List::add}{Invariant}(4);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[5, 6, 7].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t1.{core::List::add}{Invariant}(i);
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[8, 9, 10].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -46,14 +46,14 @@
       if(self::oracle() as{TypeError,ForDynamic} core::bool*)
         #t2.{core::Set::add}{Invariant}(4);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[5, 6, 7].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t2.{core::Set::add}{Invariant}(i);
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[8, 9, 10].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         if(self::oracle() as{TypeError,ForDynamic} core::bool*)
@@ -76,14 +76,14 @@
       if(self::oracle() as{TypeError,ForDynamic} core::bool*)
         #t3.{core::Map::[]=}{Invariant}(4, 4);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[5, 6, 7].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(5, 6, 7).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t3.{core::Map::[]=}{Invariant}(i, i);
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[8, 9, 10].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(8, 9, 10).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         if(self::oracle() as{TypeError,ForDynamic} core::bool*)
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
index 6adb0fe..18135e9 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart.weak.transformed.expect
@@ -453,7 +453,7 @@
   return true;
 static method testIfElement(dynamic dynVar, core::List<core::int*>* listInt, core::List<core::double*>* listDouble, core::Map<core::String*, core::int*>* mapToInt, core::Map<core::String*, core::double*>* mapToDouble) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t1 = <core::int*>[];
+    final core::List<core::int*>* #t1 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t1.{core::List::add}{Invariant}(42);
   } =>#t1;
@@ -470,7 +470,7 @@
     #t3.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t3;
   core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t4 = <dynamic>[];
+    final core::List<dynamic>* #t4 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t4.{core::List::add}{Invariant}(dynVar);
   } =>#t4;
@@ -487,31 +487,31 @@
     #t6.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t6;
   core::List<core::List<core::int*>*>* list12 = block {
-    final core::List<core::List<core::int*>*>* #t7 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t7 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t7.{core::List::add}{Invariant}(<core::int*>[42]);
+      #t7.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t7;
   core::Set<core::List<core::int*>*>* set12 = block {
     final core::Set<core::List<core::int*>*>* #t8 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t8.{core::Set::add}{Invariant}(<core::int*>[42]);
+      #t8.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t8.{core::Set::add}{Invariant}(null);
   } =>#t8;
   core::Map<core::String*, core::List<core::int*>*>* map12 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t9 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t9.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+      #t9.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int*>(42));
     #t9.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t9;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t10 = <core::int*>[];
+    final core::List<core::int*>* #t10 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t10.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      #t10.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t10;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t11 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t11.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+      #t11.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t11.{core::Set::add}{Invariant}(null);
   } =>#t11;
   core::Map<core::String*, core::int*>* map20 = block {
@@ -526,14 +526,14 @@
     #t12.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t12;
   core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t14 = <dynamic>[];
+    final core::List<dynamic>* #t14 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t14.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t14.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t14;
   core::Set<dynamic>* set21 = block {
     final core::Set<dynamic>* #t15 = new col::_CompactLinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t15.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t15.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t15.{core::Set::add}{Invariant}(null);
   } =>#t15;
   core::Map<core::String*, dynamic>* map21 = block {
@@ -548,20 +548,20 @@
     #t16.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t16;
   core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t18 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t18 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t18.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t18.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t18;
   core::Set<core::List<core::int*>*>* set22 = block {
     final core::Set<core::List<core::int*>*>* #t19 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t19.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t19.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t19.{core::Set::add}{Invariant}(null);
   } =>#t19;
   core::Map<core::String*, core::List<core::int*>*>* map22 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t20 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t21 = :sync-for-iterator.{core::Iterator::current};
         #t20.{core::Map::[]=}{Invariant}(#t21.{core::MapEntry::key}, #t21.{core::MapEntry::value});
@@ -570,16 +570,16 @@
     #t20.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t20;
   core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t22 = <core::int*>[];
+    final core::List<core::int*>* #t22 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t22.{core::List::addAll}{Invariant}(<core::int*>[42]);
+        #t22.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t22;
   core::Set<core::int*>* set30 = block {
     final core::Set<core::int*>* #t23 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t23.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+        #t23.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t23.{core::Set::add}{Invariant}(null);
   } =>#t23;
   core::Map<core::String*, core::int*>* map30 = block {
@@ -595,16 +595,16 @@
     #t24.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t24;
   core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t26 = <dynamic>[];
+    final core::List<dynamic>* #t26 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t26.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t26.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t26;
   core::Set<dynamic>* set31 = block {
     final core::Set<dynamic>* #t27 = new col::_CompactLinkedHashSet::•<dynamic>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t27.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t27.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t27.{core::Set::add}{Invariant}(null);
   } =>#t27;
   core::Map<core::String*, dynamic>* map31 = block {
@@ -620,23 +620,23 @@
     #t28.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t28;
   core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t30 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t30 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t30.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t30.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t30;
   core::Set<core::List<core::int*>*>* set33 = block {
     final core::Set<core::List<core::int*>*>* #t31 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t31.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t31.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t31.{core::Set::add}{Invariant}(null);
   } =>#t31;
   core::Map<core::String*, core::List<core::int*>*>* map33 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
           #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
@@ -645,25 +645,25 @@
     #t32.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t32;
   core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t34 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t34 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t34.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t34.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t34;
   core::Set<core::List<core::int*>*>* set40 = block {
     final core::Set<core::List<core::int*>*>* #t35 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t35.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t35.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t35.{core::Set::add}{Invariant}(null);
   } =>#t35;
   core::Map<core::String*, core::List<core::int*>*>* map40 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:41:34: Error: Both Iterable and Map spread elements encountered in ambiguous literal.
   Map<String, List<int>> map40 = {if (oracle(\"foo\")) ...{\"bar\", []}, \"baz\": null};
                                  ^";
   core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t36 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t36 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t36.{core::List::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t37 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t37.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t37.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t37);
   } =>#t36;
   core::Set<core::List<core::int*>*>* set41 = block {
@@ -671,28 +671,28 @@
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t38.{core::Set::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t39 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t39.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t39.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t39);
     #t38.{core::Set::add}{Invariant}(null);
   } =>#t38;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t40 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t40 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t40.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t40.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t40;
   core::Set<core::List<core::int*>*>* set42 = block {
     final core::Set<core::List<core::int*>*>* #t41 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t41.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t41.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t41.{core::Set::add}{Invariant}(null);
   } =>#t41;
   core::Map<core::String*, core::List<core::int*>*>* map42 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t42 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t43 = :sync-for-iterator.{core::Iterator::current};
           #t42.{core::Map::[]=}{Invariant}(#t43.{core::MapEntry::key}, #t43.{core::MapEntry::value});
@@ -701,14 +701,14 @@
     #t42.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t42;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t44 = <core::int*>[];
+    final core::List<core::int*>* #t44 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t44.{core::List::addAll}{Invariant}(<core::int*>[]);
+      #t44.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t44;
   core::Set<core::int*>* set50 = block {
     final core::Set<core::int*>* #t45 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t45.{core::Set::addAll}{Invariant}(<core::int*>[]);
+      #t45.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t45.{core::Set::add}{Invariant}(null);
   } =>#t45;
   core::Map<core::String*, core::int*>* map50 = block {
@@ -723,7 +723,7 @@
     #t46.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t46;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t48 = <core::int*>[];
+    final core::List<core::int*>* #t48 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t48.{core::List::addAll}{Invariant}( block {
         final core::Set<core::int*>* #t49 = new col::_CompactLinkedHashSet::•<core::int*>();
@@ -738,16 +738,16 @@
     #t50.{core::Set::add}{Invariant}(null);
   } =>#t50;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t52 = <core::int*>[];
+    final core::List<core::int*>* #t52 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t52.{core::List::addAll}{Invariant}(<core::int*>[]);
+        #t52.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t52;
   core::Set<core::int*>* set52 = block {
     final core::Set<core::int*>* #t53 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t53.{core::Set::addAll}{Invariant}(<core::int*>[]);
+        #t53.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t53.{core::Set::add}{Invariant}(null);
   } =>#t53;
   core::Map<core::String*, core::int*>* map52 = block {
@@ -763,20 +763,20 @@
     #t54.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t54;
   core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t56 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t56 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t56.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t56.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t56;
   core::Set<core::List<core::int*>*>* set60 = block {
     final core::Set<core::List<core::int*>*>* #t57 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t57.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t57.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t57.{core::Set::add}{Invariant}(null);
   } =>#t57;
   core::Map<core::String*, core::List<core::int*>*>* map60 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t58 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t59 = :sync-for-iterator.{core::Iterator::current};
         #t58.{core::Map::[]=}{Invariant}(#t59.{core::MapEntry::key}, #t59.{core::MapEntry::value});
@@ -785,23 +785,23 @@
     #t58.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t58;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t60 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t60 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t60.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t60.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t60;
   core::Set<core::List<core::int*>*>* set61 = block {
     final core::Set<core::List<core::int*>*>* #t61 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t61.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t61.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t61.{core::Set::add}{Invariant}(null);
   } =>#t61;
   core::Map<core::String*, core::List<core::int*>*>* map61 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t62 = <core::String*, core::List<core::int*>*>{};
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t63 = :sync-for-iterator.{core::Iterator::current};
           #t62.{core::Map::[]=}{Invariant}(#t63.{core::MapEntry::key}, #t63.{core::MapEntry::value});
@@ -810,31 +810,31 @@
     #t62.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t62;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t64 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t64 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t64.{core::List::add}{Invariant}(<core::int*>[]);
+      #t64.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t64;
   core::Set<core::List<core::int*>*>* set70 = block {
     final core::Set<core::List<core::int*>*>* #t65 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t65.{core::Set::add}{Invariant}(<core::int*>[]);
+      #t65.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t65.{core::Set::add}{Invariant}(null);
   } =>#t65;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t66 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t66 = core::_GrowableList::•<core::List<core::int*>*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t66.{core::List::add}{Invariant}(<core::int*>[]);
+        #t66.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t66;
   core::Set<core::List<core::int*>*>* set71 = block {
     final core::Set<core::List<core::int*>*>* #t67 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t67.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t67.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t67.{core::Set::add}{Invariant}(null);
   } =>#t67;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t68 = <core::num*>[];
+    final core::List<core::num*>* #t68 = core::_GrowableList::•<core::num*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t68.{core::List::add}{Invariant}(42);
     else
@@ -857,7 +857,7 @@
     #t70.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t70;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t71 = <core::num*>[];
+    final core::List<core::num*>* #t71 = core::_GrowableList::•<core::num*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t71.{core::List::addAll}{Invariant}(listInt);
     else
@@ -890,7 +890,7 @@
     #t73.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t73;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t76 = <dynamic>[];
+    final core::List<dynamic>* #t76 = core::_GrowableList::•<dynamic>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t76.{core::List::addAll}{Invariant}(listInt);
     else
@@ -916,7 +916,7 @@
     #t78.{core::Set::add}{Invariant}(null);
   } =>#t78;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t79 = <core::num*>[];
+    final core::List<core::num*>* #t79 = core::_GrowableList::•<core::num*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t79.{core::List::add}{Invariant}(42);
     else
@@ -944,7 +944,7 @@
     #t81.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t81;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t83 = <core::int*>[];
+    final core::List<core::int*>* #t83 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t83.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
   } =>#t83;
@@ -961,7 +961,7 @@
     #t85.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t85;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t86 = <core::int*>[];
+    final core::List<core::int*>* #t86 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -1003,7 +1003,7 @@
     #t92.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t92;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t96 = <core::int*>[];
+    final core::List<core::int*>* #t96 = core::_GrowableList::•<core::int*>(0);
     if(dynVar as{TypeError,ForDynamic} core::bool*)
       #t96.{core::List::add}{Invariant}(42);
   } =>#t96;
@@ -1020,7 +1020,7 @@
 }
 static method testIfElementErrors(core::Map<core::int*, core::int*>* map) → dynamic {
   block {
-    final core::List<core::int*>* #t99 = <core::int*>[];
+    final core::List<core::int*>* #t99 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t99.{core::List::add}{Invariant}(let final<BottomType> #t100 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:89:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) \"bar\"];
@@ -1043,18 +1043,18 @@
     #t103.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t103;
   block {
-    final core::List<core::int*>* #t105 = <core::int*>[];
+    final core::List<core::int*>* #t105 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t105.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t106 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t105.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t106 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:92:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[if (oracle(\"foo\")) ...[\"bar\"]];
-                               ^" in "bar" as{TypeError} core::int*]);
+                               ^" in "bar" as{TypeError} core::int*));
   } =>#t105;
   block {
     final core::Set<core::int*>* #t107 = new col::_CompactLinkedHashSet::•<core::int*>();
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
-      #t107.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t108 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+      #t107.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t108 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:93:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{if (oracle(\"foo\")) ...[\"bar\"], null};
-                               ^" in "bar" as{TypeError} core::int*]);
+                               ^" in "bar" as{TypeError} core::int*));
     #t107.{core::Set::add}{Invariant}(null);
   } =>#t107;
   block {
@@ -1071,7 +1071,7 @@
     #t109.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t109;
   block {
-    final core::List<core::int*>* #t112 = <core::int*>[];
+    final core::List<core::int*>* #t112 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t112.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:95:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
@@ -1095,7 +1095,7 @@
   <String, int>{if (oracle(\"foo\")) ...[\"bar\"], \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::String*>* #t114 = <core::String*>[];
+    final core::List<core::String*>* #t114 = core::_GrowableList::•<core::String*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t114.{core::List::add}{Invariant}(let final<BottomType> #t115 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:98:31: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
   <String>[if (oracle(\"foo\")) 42 else 3.14];
@@ -1130,7 +1130,7 @@
     #t120.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t120;
   block {
-    final core::List<core::int*>* #t123 = <core::int*>[];
+    final core::List<core::int*>* #t123 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t123.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:101:31: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
@@ -1158,7 +1158,7 @@
   <String, int>{if (oracle(\"foo\")) ...[42] else \"bar\": 42, \"baz\": null};
                                       ^": null};
   block {
-    final core::List<core::int*>* #t125 = <core::int*>[];
+    final core::List<core::int*>* #t125 = core::_GrowableList::•<core::int*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t125.{core::List::add}{Invariant}(42);
     else
@@ -1204,7 +1204,7 @@
   var map13 = {if (oracle(\"foo\")) \"bar\": 3.14 else 42};
                                                    ^": null};
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t127 = <core::int*>[];
+    final core::List<core::int*>* #t127 = core::_GrowableList::•<core::int*>(0);
     if(let final<BottomType> #t128 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:114:27: Error: A value of type 'int' can't be assigned to a variable of type 'bool'.
   List<int> list20 = [if (42) 42];
                           ^" in 42 as{TypeError} core::bool*)
@@ -1225,7 +1225,7 @@
       #t131.{core::Map::[]=}{Invariant}(42, 42);
   } =>#t131;
   core::List<core::String*>* list40 = block {
-    final core::List<core::String*>* #t133 = <core::String*>[];
+    final core::List<core::String*>* #t133 = core::_GrowableList::•<core::String*>(0);
     if(self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*)
       #t133.{core::List::add}{Invariant}(let final<BottomType> #t134 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:117:53: Error: A value of type 'bool' can't be assigned to a variable of type 'String'.
   List<String> list40 = <String>[if (oracle(\"foo\")) true else 42];
@@ -1271,7 +1271,7 @@
 }
 static method testForElement(dynamic dynVar, core::List<core::int*>* listInt, core::List<core::double*>* listDouble, core::int* index, core::Map<core::String*, core::int*>* mapStringInt, core::Map<core::String*, core::double*>* mapStringDouble) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t145 = <core::int*>[];
+    final core::List<core::int*>* #t145 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t145.{core::List::add}{Invariant}(42);
   } =>#t145;
@@ -1288,7 +1288,7 @@
     #t147.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t147;
   core::List<dynamic>* list11 = block {
-    final core::List<dynamic>* #t148 = <dynamic>[];
+    final core::List<dynamic>* #t148 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t148.{core::List::add}{Invariant}(dynVar);
   } =>#t148;
@@ -1305,31 +1305,31 @@
     #t150.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t150;
   core::List<core::List<core::int*>*>* list12 = block {
-    final core::List<core::List<core::int*>*>* #t151 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t151 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t151.{core::List::add}{Invariant}(<core::int*>[42]);
+      #t151.{core::List::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t151;
   core::Set<core::List<core::int*>*>* set12 = block {
     final core::Set<core::List<core::int*>*>* #t152 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t152.{core::Set::add}{Invariant}(<core::int*>[42]);
+      #t152.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t152.{core::Set::add}{Invariant}(null);
   } =>#t152;
   core::Map<core::String*, core::List<core::int*>*>* map12 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t153 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t153.{core::Map::[]=}{Invariant}("bar", <core::int*>[42]);
+      #t153.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::_literal1<core::int*>(42));
     #t153.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t153;
   core::List<core::int*>* list20 = block {
-    final core::List<core::int*>* #t154 = <core::int*>[];
+    final core::List<core::int*>* #t154 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t154.{core::List::addAll}{Invariant}(<core::int*>[42]);
+      #t154.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t154;
   core::Set<core::int*>* set20 = block {
     final core::Set<core::int*>* #t155 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t155.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+      #t155.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t155.{core::Set::add}{Invariant}(null);
   } =>#t155;
   core::Map<core::String*, core::int*>* map20 = block {
@@ -1344,14 +1344,14 @@
     #t156.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t156;
   core::List<dynamic>* list21 = block {
-    final core::List<dynamic>* #t158 = <dynamic>[];
+    final core::List<dynamic>* #t158 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t158.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t158.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t158;
   core::Set<dynamic>* set21 = block {
     final core::Set<dynamic>* #t159 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t159.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+      #t159.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t159.{core::Set::add}{Invariant}(null);
   } =>#t159;
   core::Map<core::String*, dynamic>* map21 = block {
@@ -1366,20 +1366,20 @@
     #t160.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t160;
   core::List<core::List<core::int*>*>* list22 = block {
-    final core::List<core::List<core::int*>*>* #t162 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t162 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t162.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t162.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t162;
   core::Set<core::List<core::int*>*>* set22 = block {
     final core::Set<core::List<core::int*>*>* #t163 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t163.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+      #t163.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t163.{core::Set::add}{Invariant}(null);
   } =>#t163;
   core::Map<core::String*, core::List<core::int*>*>* map22 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t164 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t165 = :sync-for-iterator.{core::Iterator::current};
         #t164.{core::Map::[]=}{Invariant}(#t165.{core::MapEntry::key}, #t165.{core::MapEntry::value});
@@ -1388,16 +1388,16 @@
     #t164.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t164;
   core::List<core::int*>* list30 = block {
-    final core::List<core::int*>* #t166 = <core::int*>[];
+    final core::List<core::int*>* #t166 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t166.{core::List::addAll}{Invariant}(<core::int*>[42]);
+        #t166.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t166;
   core::Set<core::int*>* set30 = block {
     final core::Set<core::int*>* #t167 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t167.{core::Set::addAll}{Invariant}(<core::int*>[42]);
+        #t167.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
     #t167.{core::Set::add}{Invariant}(null);
   } =>#t167;
   core::Map<core::String*, core::int*>* map30 = block {
@@ -1413,16 +1413,16 @@
     #t168.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t168;
   core::List<dynamic>* list31 = block {
-    final core::List<dynamic>* #t170 = <dynamic>[];
+    final core::List<dynamic>* #t170 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t170.{core::List::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t170.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
   } =>#t170;
   core::Set<dynamic>* set31 = block {
     final core::Set<dynamic>* #t171 = new col::_CompactLinkedHashSet::•<dynamic>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t171.{core::Set::addAll}{Invariant}(<dynamic>[dynVar]);
+        #t171.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<dynamic>(dynVar));
     #t171.{core::Set::add}{Invariant}(null);
   } =>#t171;
   core::Map<core::String*, dynamic>* map31 = block {
@@ -1438,23 +1438,23 @@
     #t172.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t172;
   core::List<core::List<core::int*>*>* list33 = block {
-    final core::List<core::List<core::int*>*>* #t174 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t174 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t174.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t174.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
   } =>#t174;
   core::Set<core::List<core::int*>*>* set33 = block {
     final core::Set<core::List<core::int*>*>* #t175 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t175.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[42]]);
+        #t175.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(42)));
     #t175.{core::Set::add}{Invariant}(null);
   } =>#t175;
   core::Map<core::String*, core::List<core::int*>*>* map33 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t176 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[42]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::_literal1<core::int*>(42)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t177 = :sync-for-iterator.{core::Iterator::current};
           #t176.{core::Map::[]=}{Invariant}(#t177.{core::MapEntry::key}, #t177.{core::MapEntry::value});
@@ -1463,20 +1463,20 @@
     #t176.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t176;
   core::List<core::List<core::int*>*>* list40 = block {
-    final core::List<core::List<core::int*>*>* #t178 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t178 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t178.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t178.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t178;
   core::Set<core::List<core::int*>*>* set40 = block {
     final core::Set<core::List<core::int*>*>* #t179 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t179.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t179.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t179.{core::Set::add}{Invariant}(null);
   } =>#t179;
   core::Map<core::String*, core::List<core::int*>*>* map40 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t180 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t181 = :sync-for-iterator.{core::Iterator::current};
         #t180.{core::Map::[]=}{Invariant}(#t181.{core::MapEntry::key}, #t181.{core::MapEntry::value});
@@ -1485,11 +1485,11 @@
     #t180.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t180;
   core::List<core::List<core::int*>*>* list41 = block {
-    final core::List<core::List<core::int*>*>* #t182 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t182 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t182.{core::List::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t183 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t183.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t183.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t183);
   } =>#t182;
   core::Set<core::List<core::int*>*>* set41 = block {
@@ -1497,28 +1497,28 @@
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t184.{core::Set::addAll}{Invariant}( block {
         final core::Set<core::List<core::int*>*>* #t185 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
-        #t185.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t185.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
       } =>#t185);
     #t184.{core::Set::add}{Invariant}(null);
   } =>#t184;
   core::List<core::List<core::int*>*>* list42 = block {
-    final core::List<core::List<core::int*>*>* #t186 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t186 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t186.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t186.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t186;
   core::Set<core::List<core::int*>*>* set42 = block {
     final core::Set<core::List<core::int*>*>* #t187 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t187.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t187.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t187.{core::Set::add}{Invariant}(null);
   } =>#t187;
   core::Map<core::String*, core::List<core::int*>*>* map42 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t188 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t189 = :sync-for-iterator.{core::Iterator::current};
           #t188.{core::Map::[]=}{Invariant}(#t189.{core::MapEntry::key}, #t189.{core::MapEntry::value});
@@ -1527,14 +1527,14 @@
     #t188.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t188;
   core::List<core::int*>* list50 = block {
-    final core::List<core::int*>* #t190 = <core::int*>[];
+    final core::List<core::int*>* #t190 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t190.{core::List::addAll}{Invariant}(<core::int*>[]);
+      #t190.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t190;
   core::Set<core::int*>* set50 = block {
     final core::Set<core::int*>* #t191 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t191.{core::Set::addAll}{Invariant}(<core::int*>[]);
+      #t191.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t191.{core::Set::add}{Invariant}(null);
   } =>#t191;
   core::Map<core::String*, core::int*>* map50 = block {
@@ -1549,7 +1549,7 @@
     #t192.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t192;
   core::List<core::int*>* list51 = block {
-    final core::List<core::int*>* #t194 = <core::int*>[];
+    final core::List<core::int*>* #t194 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t194.{core::List::addAll}{Invariant}( block {
         final core::Set<core::int*>* #t195 = new col::_CompactLinkedHashSet::•<core::int*>();
@@ -1564,33 +1564,33 @@
     #t196.{core::Set::add}{Invariant}(null);
   } =>#t196;
   core::List<core::int*>* list52 = block {
-    final core::List<core::int*>* #t198 = <core::int*>[];
+    final core::List<core::int*>* #t198 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t198.{core::List::addAll}{Invariant}(<core::int*>[]);
+        #t198.{core::List::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t198;
   core::Set<core::int*>* set52 = block {
     final core::Set<core::int*>* #t199 = new col::_CompactLinkedHashSet::•<core::int*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t199.{core::Set::addAll}{Invariant}(<core::int*>[]);
+        #t199.{core::Set::addAll}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t199.{core::Set::add}{Invariant}(null);
   } =>#t199;
   core::List<core::List<core::int*>*>* list60 = block {
-    final core::List<core::List<core::int*>*>* #t200 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t200 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t200.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t200.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t200;
   core::Set<core::List<core::int*>*>* set60 = block {
     final core::Set<core::List<core::int*>*>* #t201 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t201.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+      #t201.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t201.{core::Set::add}{Invariant}(null);
   } =>#t201;
   core::Map<core::String*, core::List<core::int*>*>* map60 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t202 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t203 = :sync-for-iterator.{core::Iterator::current};
         #t202.{core::Map::[]=}{Invariant}(#t203.{core::MapEntry::key}, #t203.{core::MapEntry::value});
@@ -1599,23 +1599,23 @@
     #t202.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t202;
   core::List<core::List<core::int*>*>* list61 = block {
-    final core::List<core::List<core::int*>*>* #t204 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t204 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t204.{core::List::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t204.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t204;
   core::Set<core::List<core::int*>*>* set61 = block {
     final core::Set<core::List<core::int*>*>* #t205 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t205.{core::Set::addAll}{Invariant}(<core::List<core::int*>*>[<core::int*>[]]);
+        #t205.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
     #t205.{core::Set::add}{Invariant}(null);
   } =>#t205;
   core::Map<core::String*, core::List<core::int*>*>* map61 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t206 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*) {
-        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+        core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"bar": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::MapEntry<core::String*, core::List<core::int*>*>* #t207 = :sync-for-iterator.{core::Iterator::current};
           #t206.{core::Map::[]=}{Invariant}(#t207.{core::MapEntry::key}, #t207.{core::MapEntry::value});
@@ -1624,44 +1624,44 @@
     #t206.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t206;
   core::List<core::List<core::int*>*>* list70 = block {
-    final core::List<core::List<core::int*>*>* #t208 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t208 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t208.{core::List::add}{Invariant}(<core::int*>[]);
+      #t208.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t208;
   core::Set<core::List<core::int*>*>* set70 = block {
     final core::Set<core::List<core::int*>*>* #t209 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t209.{core::Set::add}{Invariant}(<core::int*>[]);
+      #t209.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t209.{core::Set::add}{Invariant}(null);
   } =>#t209;
   core::Map<core::String*, core::List<core::int*>*>* map70 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t210 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-      #t210.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+      #t210.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int*>(0));
     #t210.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t210;
   core::List<core::List<core::int*>*>* list71 = block {
-    final core::List<core::List<core::int*>*>* #t211 = <core::List<core::int*>*>[];
+    final core::List<core::List<core::int*>*>* #t211 = core::_GrowableList::•<core::List<core::int*>*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t211.{core::List::add}{Invariant}(<core::int*>[]);
+        #t211.{core::List::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
   } =>#t211;
   core::Set<core::List<core::int*>*>* set71 = block {
     final core::Set<core::List<core::int*>*>* #t212 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t212.{core::Set::add}{Invariant}(<core::int*>[]);
+        #t212.{core::Set::add}{Invariant}(core::_GrowableList::•<core::int*>(0));
     #t212.{core::Set::add}{Invariant}(null);
   } =>#t212;
   core::Map<core::String*, core::List<core::int*>*>* map71 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t213 = <core::String*, core::List<core::int*>*>{};
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
-        #t213.{core::Map::[]=}{Invariant}("bar", <core::int*>[]);
+        #t213.{core::Map::[]=}{Invariant}("bar", core::_GrowableList::•<core::int*>(0));
     #t213.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t213;
   core::List<core::num*>* list80 = block {
-    final core::List<core::num*>* #t214 = <core::num*>[];
+    final core::List<core::num*>* #t214 = core::_GrowableList::•<core::num*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t214.{core::List::add}{Invariant}(42);
@@ -1687,7 +1687,7 @@
     #t216.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t216;
   core::List<core::num*>* list81 = block {
-    final core::List<core::num*>* #t217 = <core::num*>[];
+    final core::List<core::num*>* #t217 = core::_GrowableList::•<core::num*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t217.{core::List::addAll}{Invariant}(listInt);
@@ -1723,7 +1723,7 @@
     #t219.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t219;
   core::List<dynamic>* list82 = block {
-    final core::List<dynamic>* #t222 = <dynamic>[];
+    final core::List<dynamic>* #t222 = core::_GrowableList::•<dynamic>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t222.{core::List::addAll}{Invariant}(listInt);
@@ -1759,7 +1759,7 @@
     #t224.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t224;
   core::List<core::num*>* list83 = block {
-    final core::List<core::num*>* #t227 = <core::num*>[];
+    final core::List<core::num*>* #t227 = core::_GrowableList::•<core::num*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
         #t227.{core::List::add}{Invariant}(42);
@@ -1790,7 +1790,7 @@
     #t229.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t229;
   core::List<core::int*>* list90 = block {
-    final core::List<core::int*>* #t231 = <core::int*>[];
+    final core::List<core::int*>* #t231 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
       #t231.{core::List::add}{Invariant}(dynVar as{TypeError,ForDynamic} core::int*);
   } =>#t231;
@@ -1807,7 +1807,7 @@
     #t233.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t233;
   core::List<core::int*>* list91 = block {
-    final core::List<core::int*>* #t234 = <core::int*>[];
+    final core::List<core::int*>* #t234 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1)) {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -1849,7 +1849,7 @@
     #t240.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t240;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t244 = <core::int*>[];
+    final core::List<core::int*>* #t244 = core::_GrowableList::•<core::int*>(0);
     for (final core::int* #t245 = index = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; index = index.{core::num::+}(1))
       #t244.{core::List::add}{Invariant}(42);
   } =>#t244;
@@ -1864,9 +1864,9 @@
       #t248.{core::Map::[]=}{Invariant}("bar", 42);
   } =>#t248;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t250 = <core::int*>[];
+    final core::List<core::int*>* #t250 = core::_GrowableList::•<core::int*>(0);
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t250.{core::List::add}{Invariant}(i);
@@ -1876,7 +1876,7 @@
   core::Set<core::int*>* set110 = block {
     final core::Set<core::int*>* #t251 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t251.{core::Set::add}{Invariant}(i);
@@ -1887,7 +1887,7 @@
   core::Map<core::String*, core::int*>* map110 = block {
     final core::Map<core::String*, core::int*>* #t252 = <core::String*, core::int*>{};
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         core::int* i = :sync-for-iterator.{core::Iterator::current};
         #t252.{core::Map::[]=}{Invariant}("bar", i);
@@ -1896,7 +1896,7 @@
     #t252.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t252;
   core::List<core::int*>* list120 = block {
-    final core::List<core::int*>* #t253 = <core::int*>[];
+    final core::List<core::int*>* #t253 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -1928,7 +1928,7 @@
     #t255.{core::Map::[]=}{Invariant}("baz", null);
   } =>#t255;
   core::List<core::int*>* list130 = block {
-    final core::List<core::int*>* #t256 = <core::int*>[];
+    final core::List<core::int*>* #t256 = core::_GrowableList::•<core::int*>(0);
     for (core::int* i = 1; i.{core::num::<}(2); i = i.{core::num::+}(1))
       #t256.{core::List::add}{Invariant}(i);
   } =>#t256;
@@ -1960,7 +1960,7 @@
       #L1:
       {
         block {
-          final core::List<core::int*>* #t259 = <core::int*>[];
+          final core::List<core::int*>* #t259 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             #t259.{core::List::add}{Invariant}(let final<BottomType> #t260 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:212:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) \"bar\"];
@@ -1987,18 +1987,18 @@
                                                                ^" in "baz" as{TypeError} core::int*, null);
         } =>#t263;
         block {
-          final core::List<core::int*>* #t267 = <core::int*>[];
+          final core::List<core::int*>* #t267 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t267.{core::List::addAll}{Invariant}(<core::int*>[let final<BottomType> #t268 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t267.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t268 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:215:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>[for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"]];
-                                                ^" in "bar" as{TypeError} core::int*]);
+                                                ^" in "bar" as{TypeError} core::int*));
         } =>#t267;
         block {
           final core::Set<core::int*>* #t269 = new col::_CompactLinkedHashSet::•<core::int*>();
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
-            #t269.{core::Set::addAll}{Invariant}(<core::int*>[let final<BottomType> #t270 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            #t269.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t270 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:216:49: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   <int>{for (int i = 0; oracle(\"foo\"); i++) ...[\"bar\"], null};
-                                                ^" in "bar" as{TypeError} core::int*]);
+                                                ^" in "bar" as{TypeError} core::int*));
           #t269.{core::Set::add}{Invariant}(null);
         } =>#t269;
         block {
@@ -2019,7 +2019,7 @@
                                                                     ^" in "baz" as{TypeError} core::int*, null);
         } =>#t271;
         block {
-          final core::List<core::int*>* #t276 = <core::int*>[];
+          final core::List<core::int*>* #t276 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             #t276.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:218:48: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
  - 'Map' is from 'dart:core'.
@@ -2043,7 +2043,7 @@
   <int, int>{for (int i = 0; oracle(\"foo\"); i++) ...list, 42: null};
                                                     ^": null};
         block {
-          final core::List<core::String*>* #t278 = <core::String*>[];
+          final core::List<core::String*>* #t278 = core::_GrowableList::•<core::String*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t278.{core::List::add}{Invariant}(let final<BottomType> #t279 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:221:62: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
@@ -2081,7 +2081,7 @@
           #t284.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t284;
         block {
-          final core::List<core::int*>* #t287 = <core::int*>[];
+          final core::List<core::int*>* #t287 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t287.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:224:62: Error: Unexpected type 'Map<int, int>' of a spread.  Expected 'dynamic' or an Iterable.
@@ -2111,7 +2111,7 @@
   <String, int>{for (int i = 0; oracle(\"foo\"); i++) if (oracle()) ...list else \"bar\": 42, \"baz\": null};
                                                                      ^": null};
         block {
-          final core::List<core::int*>* #t289 = <core::int*>[];
+          final core::List<core::int*>* #t289 = core::_GrowableList::•<core::int*>(0);
           for (core::int* i = 0; self::oracle<core::String*>("foo") as{TypeError,ForDynamic} core::bool*; i = i.{core::num::+}(1))
             if(self::oracle<dynamic>() as{TypeError,ForDynamic} core::bool*)
               #t289.{core::List::add}{Invariant}(42);
@@ -2142,9 +2142,9 @@
                                                                                     ^": null};
         final core::int* i = 0;
         block {
-          final core::List<core::int*>* #t291 = <core::int*>[];
+          final core::List<core::int*>* #t291 = core::_GrowableList::•<core::int*>(0);
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(1).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               final core::int* #t292 = :sync-for-iterator.{core::Iterator::current};
               {
@@ -2159,7 +2159,7 @@
         block {
           final core::Set<core::int*>* #t293 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(1).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               final core::int* #t294 = :sync-for-iterator.{core::Iterator::current};
               {
@@ -2175,7 +2175,7 @@
         block {
           final core::Map<core::String*, core::int*>* #t295 = <core::String*, core::int*>{};
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1].{core::Iterable::iterator};
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(1).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               final core::int* #t296 = :sync-for-iterator.{core::Iterator::current};
               {
@@ -2189,7 +2189,7 @@
           #t295.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t295;
         core::List<dynamic>* list10 = block {
-          final core::List<dynamic>* #t297 = <dynamic>[];
+          final core::List<dynamic>* #t297 = core::_GrowableList::•<dynamic>(0);
           {
             core::Iterator<dynamic>* :sync-for-iterator = (let final<BottomType> #t298 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:236:31: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Iterable' is from 'dart:core'.
@@ -2230,13 +2230,13 @@
           #t301.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t301;
         core::List<core::int*>* list20 = block {
-          final core::List<core::int*>* #t303 = <core::int*>[];
+          final core::List<core::int*>* #t303 = core::_GrowableList::•<core::int*>(0);
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t304 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t304 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:239:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
                                ^" in "not" as{TypeError} core::int*, let final<BottomType> #t305 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:239:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list20 = [for (int i in [\"not\", \"int\"]) i];
-                                      ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
+                                      ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
               #t303.{core::List::add}{Invariant}(i);
@@ -2246,11 +2246,11 @@
         core::Set<core::int*>* set20 = block {
           final core::Set<core::int*>* #t306 = new col::_CompactLinkedHashSet::•<core::int*>();
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t307 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t307 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:240:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t308 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:240:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set20 = {for (int i in [\"not\", \"int\"]) i, null};
-                                     ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
+                                     ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
               #t306.{core::Set::add}{Invariant}(i);
@@ -2261,11 +2261,11 @@
         core::Map<core::String*, core::int*>* map20 = block {
           final core::Map<core::String*, core::int*>* #t309 = <core::String*, core::int*>{};
           {
-            core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[let final<BottomType> #t310 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+            core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t310 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:241:31: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
                               ^" in "not" as{TypeError} core::int*, let final<BottomType> #t311 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:241:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map20 = {for (int i in [\"not\", \"int\"]) \"bar\": i, \"baz\": null};
-                                     ^" in "int" as{TypeError} core::int*].{core::Iterable::iterator};
+                                     ^" in "int" as{TypeError} core::int*).{core::Iterable::iterator};
             for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
               core::int* i = :sync-for-iterator.{core::Iterator::current};
               #t309.{core::Map::[]=}{Invariant}("bar", i);
@@ -2273,7 +2273,7 @@
           }
           #t309.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t309;
-        final core::List<dynamic>* #t312 = <dynamic>[];
+        final core::List<dynamic>* #t312 = core::_GrowableList::•<dynamic>(0);
         {
           asy::Stream<dynamic>* :stream = let final<BottomType> #t313 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:242:37: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
  - 'Stream' is from 'dart:async'.
@@ -2355,13 +2355,13 @@
         core::Map<core::String*, dynamic>* map30 = block {
           #t322.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t322;
-        final core::List<core::int*>* #t327 = <core::int*>[];
+        final core::List<core::int*>* #t327 = core::_GrowableList::•<core::int*>(0);
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t328 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t328 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:245:58: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
                                                          ^" in "not" as{TypeError} core::int*, let final<BottomType> #t329 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:245:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var list40 = [await for (int i in Stream.fromIterable([\"not\", \"int\"])) i];
-                                                                ^" in "int" as{TypeError} core::int*]);
+                                                                ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
           try
             #L5:
@@ -2384,11 +2384,11 @@
         core::List<core::int*>* list40 = block {} =>#t327;
         final core::Set<core::int*>* #t333 = new col::_CompactLinkedHashSet::•<core::int*>();
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t334 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t334 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:246:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t335 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:246:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var set40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) i, null};
-                                                               ^" in "int" as{TypeError} core::int*]);
+                                                               ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
           try
             #L6:
@@ -2413,11 +2413,11 @@
         } =>#t333;
         final core::Map<core::String*, core::int*>* #t339 = <core::String*, core::int*>{};
         {
-          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(<core::int*>[let final<BottomType> #t340 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+          asy::Stream<core::int*> :stream = asy::Stream::fromIterable<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t340 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:247:57: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
                                                         ^" in "not" as{TypeError} core::int*, let final<BottomType> #t341 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:247:64: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   var map40 = {await for (int i in Stream.fromIterable([\"not\", \"int\"])) \"bar\": i, \"baz\": null};
-                                                               ^" in "int" as{TypeError} core::int*]);
+                                                               ^" in "int" as{TypeError} core::int*));
           asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
           try
             #L7:
@@ -2441,7 +2441,7 @@
           #t339.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t339;
         core::List<core::int*>* list50 = block {
-          final core::List<core::int*>* #t345 = <core::int*>[];
+          final core::List<core::int*>* #t345 = core::_GrowableList::•<core::int*>(0);
           for (; ; )
             #t345.{core::List::add}{Invariant}(42);
         } =>#t345;
@@ -2458,7 +2458,7 @@
           #t347.{core::Map::[]=}{Invariant}("baz", null);
         } =>#t347;
         core::List<core::int*>* list60 = block {
-          final core::List<core::int*>* #t348 = <core::int*>[];
+          final core::List<core::int*>* #t348 = core::_GrowableList::•<core::int*>(0);
           for (; let final<BottomType> #t349 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/control_flow_collection_inference.dart:251:24: Error: A value of type 'String' can't be assigned to a variable of type 'bool'.
   var list60 = [for (; \"not bool\";) 42];
                        ^" in "not bool" as{TypeError} core::bool*; )
@@ -2495,7 +2495,7 @@
 }
 static method testForElementErrorsNotAsync(asy::Stream<core::int*>* stream) → dynamic {
   block {
-    final core::List<core::int*>* #t354 = <core::int*>[];
+    final core::List<core::int*>* #t354 = core::_GrowableList::•<core::int*>(0);
     await for (core::int* i in stream)
       #t354.{core::List::add}{Invariant}(i);
   } =>#t354;
@@ -2512,7 +2512,7 @@
 }
 static method testPromotion(self::A* a) → dynamic {
   core::List<core::int*>* list10 = block {
-    final core::List<core::int*>* #t357 = <core::int*>[];
+    final core::List<core::int*>* #t357 = core::_GrowableList::•<core::int*>(0);
     if(a is self::B*)
       #t357.{core::List::add}{Invariant}(a{self::B*}.{self::B::foo});
   } =>#t357;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
index cecd1a1..f51040a 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/expressions.dart.weak.transformed.expect
@@ -35,7 +35,7 @@
   }
   for (; false; ) {
   }
-  core::List<core::String*>* list = <core::String*>["Hello, World!"];
+  core::List<core::String*>* list = core::_GrowableList::_literal1<core::String*>("Hello, World!");
   core::print(list.{core::List::[]}(i));
   list.{core::List::[]=}(i, "Hello, Brave New World!");
   core::print(list.{core::List::[]}(i));
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart.weak.transformed.expect
index 7eb73d5..2f1d77e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/for_in_without_declaration.dart.weak.transformed.expect
@@ -98,7 +98,7 @@
     core::String* local;
     dynamic untypedLocal;
     {
-      core::Iterator<core::String*>* :sync-for-iterator = <core::String*>[].{core::Iterable::iterator};
+      core::Iterator<core::String*>* :sync-for-iterator = core::_GrowableList::•<core::String*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::String* #t1 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -107,7 +107,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -116,7 +116,7 @@
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::int* #t3 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -125,7 +125,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -134,7 +134,7 @@
       }
     }
     {
-      core::Iterator<core::double*>* :sync-for-iterator = <core::double*>[].{core::Iterable::iterator};
+      core::Iterator<core::double*>* :sync-for-iterator = core::_GrowableList::•<core::double*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::double* #t5 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -143,7 +143,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t6 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -152,7 +152,7 @@
       }
     }
     {
-      core::Iterator<core::bool*>* :sync-for-iterator = <core::bool*>[].{core::Iterable::iterator};
+      core::Iterator<core::bool*>* :sync-for-iterator = core::_GrowableList::•<core::bool*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::bool* #t7 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -161,7 +161,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t8 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -170,7 +170,7 @@
       }
     }
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::int* #t9 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -179,7 +179,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t10 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -189,7 +189,7 @@
     }
     self::C* c = new self::C::•();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::int* #t11 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -198,7 +198,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t12 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -207,7 +207,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t13 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -220,7 +220,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t14 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -233,7 +233,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t15 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -250,7 +250,7 @@
     for (main() in []) {}
          ^^^^";
       {
-        core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+        core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final dynamic #t16 = :sync-for-iterator.{core::Iterator::current};
           {
@@ -267,7 +267,7 @@
     for (var x, y in <int>[]) {
          ^^^";
       {
-        core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+        core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
         for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
           final core::int* #t17 = :sync-for-iterator.{core::Iterator::current};
           {
@@ -283,7 +283,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t18 = :sync-for-iterator.{core::Iterator::current};
         {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/if_null_in_list_literal.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/if_null_in_list_literal.dart.weak.transformed.expect
index 0cc41e9..188b5b3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/if_null_in_list_literal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/if_null_in_list_literal.dart.weak.transformed.expect
@@ -5,5 +5,5 @@
 static method main() → dynamic {
   core::Object* a;
   core::Object* b;
-  return <core::Object*>[let final core::Object* #t1 = a in #t1.{core::Object::==}(null) ?{core::Object*} b : #t1];
+  return core::_GrowableList::_literal1<core::Object*>(let final core::Object* #t1 = a in #t1.{core::Object::==}(null) ?{core::Object*} b : #t1);
 }
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/implicit_new.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/implicit_new.dart.weak.transformed.expect
index d5261cc..ecfe40c 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/implicit_new.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/implicit_new.dart.weak.transformed.expect
@@ -86,8 +86,8 @@
   self::f(new self::Foo::•());
   self::f(new self::Bar::named());
   self::f(new self::Bar::named());
-  core::List<core::Object*>* l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
-  l = <core::Object*>[new self::Foo::•(), new self::Bar::named()];
+  core::List<core::Object*>* l = core::_GrowableList::_literal2<core::Object*>(new self::Foo::•(), new self::Bar::named());
+  l = core::_GrowableList::_literal2<core::Object*>(new self::Foo::•(), new self::Bar::named());
   core::Map<core::String*, core::Object*>* m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
   m = <core::String*, core::Object*>{"foo": new self::Foo::•(), "bar": new self::Bar::named()};
   self::IndexTester* i = new self::IndexTester::•();
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/invalid_cast.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/invalid_cast.dart.weak.transformed.expect
index 2c369c9..214f497 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/invalid_cast.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/invalid_cast.dart.weak.transformed.expect
@@ -104,7 +104,7 @@
  - 'Object' is from 'dart:core'.
 Change the type of the list literal or the context in which it is used.
   List<int> a = <Object>[];
-                        ^" in <core::Object*>[];
+                        ^" in core::_GrowableList::•<core::Object*>(0);
   core::Map<core::int*, core::String*>* b = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/invalid_cast.dart:23:40: Error: The map literal type 'Map<Object, String>' isn't of expected type 'Map<int, String>'.
  - 'Map' is from 'dart:core'.
  - 'Object' is from 'dart:core'.
@@ -154,7 +154,7 @@
 }
 static method ok() → dynamic {
   function localFunction(core::int* i) → void {}
-  core::List<core::int*>* a = <core::int*>[];
+  core::List<core::int*>* a = core::_GrowableList::•<core::int*>(0);
   core::Map<core::int*, core::String*>* b = <core::int*, core::String*>{};
   core::Map<core::int*, core::String*>* c = <core::int*, core::String*>{};
   (core::int*) →* core::int* d = (core::int* i) → core::int* => i;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect
index 7874ca5..b28b175 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart.weak.transformed.expect
@@ -43,7 +43,7 @@
     ;
   method method1a(generic-covariant-impl self::Class::T* t) → void {
     if(t is self::B*) {
-      core::List<self::Class::T*>* ys = <self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}];
+      core::List<self::Class::T*>* ys = core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */});
       self::xs = let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart:21:12: Error: A value of type 'List<T>' can't be assigned to a variable of type 'List<B>'.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart'.
@@ -53,7 +53,7 @@
   }
   method method1b(generic-covariant-impl self::Class::T* t) → void {
     if(t is self::B*) {
-      core::List<core::List<self::Class::T*>*>* yss = <core::List<self::Class::T*>*>[<self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}]];
+      core::List<core::List<self::Class::T*>*>* yss = core::_GrowableList::_literal1<core::List<self::Class::T*>*>(core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */}));
       self::xss = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart:33:13: Error: A value of type 'List<List<T>>' can't be assigned to a variable of type 'List<List<B>>'.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/general_nnbd_opt_out/issue39344.dart'.
@@ -64,7 +64,7 @@
   method method2a(generic-covariant-impl self::Class::T* t) → void {
     dynamic alias;
     if(t is self::B*) {
-      core::List<self::Class::T*>* ys = <self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}];
+      core::List<self::Class::T*>* ys = core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */});
       alias = ys;
       self::xs = alias as{TypeError,ForDynamic} core::List<self::B*>*;
     }
@@ -72,7 +72,7 @@
   method method2b(generic-covariant-impl self::Class::T* t) → void {
     dynamic alias;
     if(t is self::B*) {
-      core::List<core::List<self::Class::T*>*>* yss = <core::List<self::Class::T*>*>[<self::Class::T*>[t{self::Class::T* & self::B* /* '*' & '*' = '*' */}]];
+      core::List<core::List<self::Class::T*>*>* yss = core::_GrowableList::_literal1<core::List<self::Class::T*>*>(core::_GrowableList::_literal1<self::Class::T*>(t{self::Class::T* & self::B* /* '*' & '*' = '*' */}));
       alias = yss;
       self::xss = alias as{TypeError,ForDynamic} core::List<core::List<self::B*>*>*;
     }
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/literals.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/literals.dart.weak.transformed.expect
index 8ef3e48..ae7c90f 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/literals.dart.weak.transformed.expect
@@ -19,8 +19,8 @@
   core::print(null);
 }
 static method testList() → dynamic {
-  core::print(<dynamic>[]);
-  core::print(<core::String*>["a", "b"]);
+  core::print(core::_GrowableList::•<dynamic>(0));
+  core::print(core::_GrowableList::_literal2<core::String*>("a", "b"));
 }
 static method testMap() → dynamic {
   core::print(<dynamic, dynamic>{});
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/local_generic_function.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/local_generic_function.dart.weak.transformed.expect
index 487fec1..328d4cc 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/local_generic_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/local_generic_function.dart.weak.transformed.expect
@@ -5,5 +5,5 @@
 static method main() → dynamic {
   function f<T extends core::Object* = dynamic>(core::List<T*>* l) → T*
     return l.{core::List::[]}(0);
-  core::int* x = f.call<core::int*>(<core::int*>[0]);
+  core::int* x = f.call<core::int*>(core::_GrowableList::_literal1<core::int*>(0));
 }
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/micro.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/micro.dart.weak.transformed.expect
index 74e0279..30a9c46 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/micro.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/micro.dart.weak.transformed.expect
@@ -146,6 +146,6 @@
   dynamic c = subBox.{self::FinalBox::finalField};
   self::makeDynamicCall(new self::DynamicReceiver1::•());
   self::makeDynamicCall(new self::DynamicReceiver2::•());
-  core::List<core::String*>* list = <core::String*>["string"];
+  core::List<core::String*>* list = core::_GrowableList::_literal1<core::String*>("string");
   core::String* d = list.{core::List::[]}(0);
 }
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/no_such_method_private_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/no_such_method_private_setter.dart.weak.transformed.expect
index ddb32d6..3e79735 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/no_such_method_private_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/no_such_method_private_setter.dart.weak.transformed.expect
@@ -22,7 +22,7 @@
   no-such-method-forwarder get /* from org-dartlang-testcase:///no_such_method_private_setter_lib.dart */ _x() → core::int*
     return this.{self::Foo::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::int*;
   no-such-method-forwarder set /* from org-dartlang-testcase:///no_such_method_private_setter_lib.dart */ _x(core::int* value) → void
-    return this.{self::Foo::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Foo::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method main() → dynamic {
   no_::baz(new self::Foo::•());
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect
index e5e1b00..485db8b 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/null_aware_spread.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
 
 static method nullAwareListSpread(core::List<core::String*>* list) → dynamic {
   list = block {
-    final core::List<core::String*>* #t1 = <core::String*>["foo"];
+    final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>("foo");
     final core::Iterable<core::String*>* #t2 = list;
     if(!#t2.{core::Object::==}(null))
       #t1.{core::List::addAll}{Invariant}(#t2);
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/operator_method_not_found.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/operator_method_not_found.dart.weak.transformed.expect
index 715890e..fb71500 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/operator_method_not_found.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/operator_method_not_found.dart.weak.transformed.expect
@@ -318,7 +318,7 @@
 Try correcting the operator to an existing operator, or defining a 'unary-' operator.
   print(-foo);
         ^");
-  core::print(<invalid-type>[]);
+  core::print(core::_GrowableList::•<invalid-type>(0));
   core::print(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/operator_method_not_found.dart:39:9: Error: This couldn't be parsed.
   print(>foo);
         ^".>(foo));
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect
index 2972e81..a68c3f0 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection.dart.weak.transformed.expect
@@ -13,9 +13,9 @@
 
 static method main() → dynamic {
   final core::List<core::int*>* aList = block {
-    final core::List<core::int*>* #t1 = <core::int*>[1];
-    #t1.{core::List::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t2 = <core::int*>[3];
+    final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(1);
+    #t1.{core::List::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(2));
+    final core::Iterable<core::int*>* #t2 = core::_GrowableList::_literal1<core::int*>(3);
     if(!#t2.{core::Object::==}(null))
       #t1.{core::List::addAll}{Invariant}(#t2);
   } =>#t1;
@@ -41,8 +41,8 @@
   final core::Set<core::int*>* aSet = block {
     final core::Set<core::int*>* #t7 = new col::_CompactLinkedHashSet::•<core::int*>();
     #t7.{core::Set::add}{Invariant}(1);
-    #t7.{core::Set::addAll}{Invariant}(<core::int*>[2]);
-    final core::Iterable<core::int*>* #t8 = <core::int*>[3];
+    #t7.{core::Set::addAll}{Invariant}(core::_GrowableList::_literal1<core::int*>(2));
+    final core::Iterable<core::int*>* #t8 = core::_GrowableList::_literal1<core::int*>(3);
     if(!#t8.{core::Object::==}(null))
       #t7.{core::Set::addAll}{Invariant}(#t8);
   } =>#t7;
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect
index d10c002..b5daed3 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart.weak.transformed.expect
@@ -103,17 +103,17 @@
 static method bar<K extends core::Object* = dynamic, V extends core::Object* = dynamic>() → core::Map<self::bar::K*, self::bar::V*>*
   return null;
 static method foo(dynamic dynVar) → dynamic {
-  core::List<core::int*>* spread = <core::int*>[1, 2, 3];
+  core::List<core::int*>* spread = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
   core::Map<core::String*, core::int*>* mapSpread = <core::String*, core::int*>{"foo": 4, "bar": 2};
   core::int* notSpreadInt = 42;
   () →* core::int* notSpreadFunction = null;
   core::Map<core::int*, core::num*>* mapIntNum = <core::int*, core::num*>{42: 42};
-  core::List<core::num*>* listNum = <core::num*>[42];
+  core::List<core::num*>* listNum = core::_GrowableList::_literal1<core::num*>(42);
   core::List<dynamic>* lhs10 = block {
-    final core::List<dynamic>* #t1 = core::List::of<dynamic>(<dynamic>[]);
+    final core::List<dynamic>* #t1 = core::List::of<dynamic>(core::_GrowableList::•<dynamic>(0));
   } =>#t1;
   core::Set<dynamic>* set10 = block {
-    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(<dynamic>[]);
+    final core::Set<dynamic>* #t2 = col::LinkedHashSet::of<dynamic>(core::_GrowableList::•<dynamic>(0));
   } =>#t2;
   core::Map<dynamic, dynamic>* map10 = block {
     final core::Map<dynamic, dynamic>* #t3 = <dynamic, dynamic>{};
@@ -199,16 +199,16 @@
   dynamic map21ambiguous = {...(mapSpread as dynamic)};
                            ^";
   core::List<core::int*>* lhs22 = block {
-    final core::List<core::int*>* #t20 = core::List::of<core::int*>(<core::int*>[]);
+    final core::List<core::int*>* #t20 = core::List::of<core::int*>(core::_GrowableList::•<core::int*>(0));
   } =>#t20;
   core::Set<core::int*>* set22 = block {
-    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(<core::int*>[]);
+    final core::Set<core::int*>* #t21 = col::LinkedHashSet::of<core::int*>(core::_GrowableList::•<core::int*>(0));
     #t21.{core::Set::add}{Invariant}(42);
   } =>#t21;
   core::Set<core::int*>* set22ambiguous = block {
     final core::Set<core::int*>* #t22 = new col::_CompactLinkedHashSet::•<core::int*>();
     {
-      core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[].{core::Iterable::iterator};
+      core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::•<core::int*>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t23 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -229,16 +229,16 @@
     }
   } =>#t25;
   core::List<core::List<core::int*>*>* lhs23 = block {
-    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
+    final core::List<core::List<core::int*>*>* #t27 = core::List::of<core::List<core::int*>*>(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
   } =>#t27;
   core::Set<core::List<core::int*>*>* set23 = block {
-    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(<core::List<core::int*>*>[<core::int*>[]]);
-    #t28.{core::Set::add}{Invariant}(<core::int*>[42]);
+    final core::Set<core::List<core::int*>*>* #t28 = col::LinkedHashSet::of<core::List<core::int*>*>(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)));
+    #t28.{core::Set::add}{Invariant}(core::_GrowableList::_literal1<core::int*>(42));
   } =>#t28;
   core::Set<core::List<core::int*>*>* set23ambiguous = block {
     final core::Set<core::List<core::int*>*>* #t29 = new col::_CompactLinkedHashSet::•<core::List<core::int*>*>();
     {
-      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = <core::List<core::int*>*>[<core::int*>[]].{core::Iterable::iterator};
+      core::Iterator<core::List<core::int*>*>* :sync-for-iterator = core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t30 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -251,7 +251,7 @@
   core::Map<core::String*, core::List<core::int*>*>* map23 = block {
     final core::Map<core::String*, core::List<core::int*>*>* #t32 = <core::String*, core::List<core::int*>*>{};
     {
-      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": <core::int*>[]}.{core::Map::entries}.{core::Iterable::iterator};
+      core::Iterator<core::MapEntry<core::String*, core::List<core::int*>*>>* :sync-for-iterator = <core::String*, core::List<core::int*>*>{"baz": core::_GrowableList::•<core::int*>(0)}.{core::Map::entries}.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final core::MapEntry<core::String*, core::List<core::int*>*>* #t33 = :sync-for-iterator.{core::Iterator::current};
         #t32.{core::Map::[]=}{Invariant}(#t33.{core::MapEntry::key}, #t33.{core::MapEntry::value});
@@ -317,9 +317,9 @@
       }
     }
   } =>#t46) as{TypeError} core::int*;
-  core::List<dynamic>* lhs40 = <dynamic>[invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:113:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
+  core::List<dynamic>* lhs40 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:113:38: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs40 = <dynamic>[...notSpreadInt];
-                                     ^"];
+                                     ^");
   core::Set<dynamic>* set40 = block {
     final core::Set<dynamic>* #t48 = new col::_CompactLinkedHashSet::•<dynamic>();
     #t48.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:115:37: Error: Unexpected type 'int' of a spread.  Expected 'dynamic' or an Iterable.
@@ -329,9 +329,9 @@
   core::Map<dynamic, dynamic>* map40 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:117:55: Error: Unexpected type 'int' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map40 = <dynamic, dynamic>{...notSpreadInt};
                                                       ^": null};
-  core::List<dynamic>* lhs50 = <dynamic>[invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:119:38: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
+  core::List<dynamic>* lhs50 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:119:38: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
   List<dynamic> lhs50 = <dynamic>[...notSpreadFunction];
-                                     ^"];
+                                     ^");
   core::Set<dynamic>* set50 = block {
     final core::Set<dynamic>* #t49 = new col::_CompactLinkedHashSet::•<dynamic>();
     #t49.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:121:37: Error: Unexpected type 'int Function()' of a spread.  Expected 'dynamic' or an Iterable.
@@ -341,9 +341,9 @@
   core::Map<dynamic, dynamic>* map50 = <dynamic, dynamic>{invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:123:55: Error: Unexpected type 'int Function()' of a map spread entry.  Expected 'dynamic' or a Map.
   Map<dynamic, dynamic> map50 = <dynamic, dynamic>{...notSpreadFunction};
                                                       ^": null};
-  core::List<core::String*>* lhs60 = <core::String*>[invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:125:36: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
+  core::List<core::String*>* lhs60 = core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:125:36: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
   List<String> lhs60 = <String>[...spread];
-                                   ^"];
+                                   ^");
   core::Set<core::String*>* set60 = block {
     final core::Set<core::String*>* #t50 = new col::_CompactLinkedHashSet::•<core::String*>();
     #t50.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:127:35: Error: Can't assign spread elements of type 'int' to collection elements of type 'String'.
@@ -356,9 +356,9 @@
   core::Map<core::String*, core::String*>* map61 = <core::String*, core::String*>{null: invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:131:51: Error: Can't assign spread entry values of type 'int' to map entry values of type 'String'.
   Map<String, String> map61 = <String, String>{...mapSpread};
                                                   ^"};
-  core::List<core::int*>* lhs70 = <core::int*>[invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:133:30: Error: Can't spread a value with static type 'Null'.
+  core::List<core::int*>* lhs70 = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:133:30: Error: Can't spread a value with static type 'Null'.
   List<int> lhs70 = <int>[...null];
-                             ^"];
+                             ^");
   core::Set<core::int*>* set70 = block {
     final core::Set<core::int*>* #t51 = new col::_CompactLinkedHashSet::•<core::int*>();
     #t51.{core::Set::add}{Invariant}(invalid-expression "pkg/front_end/testcases/general_nnbd_opt_out/spread_collection_inference.dart:135:29: Error: Can't spread a value with static type 'Null'.
@@ -371,7 +371,7 @@
     ...null,
        ^");
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t53 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -385,7 +385,7 @@
   Map<String, int> map70 = <String, int>{...null};
                                             ^": null};
   core::List<core::int*>* lhs80 = block {
-    final core::List<core::int*>* #t55 = <core::int*>[];
+    final core::List<core::int*>* #t55 = core::_GrowableList::•<core::int*>(0);
     final core::Iterable<core::int*>* #t56 = null;
     if(!#t56.{core::Object::==}(null))
       #t55.{core::List::addAll}{Invariant}(#t56);
@@ -410,7 +410,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t63 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -442,7 +442,7 @@
     }
   } =>#t68;
   core::List<core::int*>* list100 = block {
-    final core::List<core::int*>* #t70 = <core::int*>[];
+    final core::List<core::int*>* #t70 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<core::num*>* :sync-for-iterator = listNum.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -469,7 +469,7 @@
     }
   } =>#t73;
   core::List<core::int*>* list110 = block {
-    final core::List<core::int*>* #t77 = <core::int*>[];
+    final core::List<core::int*>* #t77 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynVar as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect
index 91dfee3..dd17252 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/statements.dart.weak.transformed.expect
@@ -84,7 +84,7 @@
   }
   while (false)
   {
-    core::Iterator<core::String*>* :sync-for-iterator = <core::String*>["Hello from for-in!"].{core::Iterable::iterator};
+    core::Iterator<core::String*>* :sync-for-iterator = core::_GrowableList::_literal1<core::String*>("Hello from for-in!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String* s = :sync-for-iterator.{core::Iterator::current};
       {
@@ -93,7 +93,7 @@
     }
   }
   {
-    core::Iterator<core::String*>* :sync-for-iterator = <core::String*>["Hello from for-in without block!"].{core::Iterable::iterator};
+    core::Iterator<core::String*>* :sync-for-iterator = core::_GrowableList::_literal1<core::String*>("Hello from for-in without block!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String* s = :sync-for-iterator.{core::Iterator::current};
       core::print(s);
@@ -101,7 +101,7 @@
   }
   dynamic s;
   {
-    core::Iterator<dynamic>* :sync-for-iterator = <dynamic>["Hello from for-in without decl!"].{core::Iterable::iterator};
+    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal1<dynamic>("Hello from for-in without decl!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
       {
@@ -111,7 +111,7 @@
     }
   }
   {
-    core::Iterator<dynamic>* :sync-for-iterator = <dynamic>["Hello from for-in without decl and block!"].{core::Iterable::iterator};
+    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal1<dynamic>("Hello from for-in without decl and block!").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       final dynamic #t5 = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/general_nnbd_opt_out/void_methods.dart.weak.transformed.expect b/pkg/front_end/testcases/general_nnbd_opt_out/void_methods.dart.weak.transformed.expect
index d353254..7332e9e 100644
--- a/pkg/front_end/testcases/general_nnbd_opt_out/void_methods.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general_nnbd_opt_out/void_methods.dart.weak.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class Foo extends core::Object {
-  field core::List<dynamic>* list = <dynamic>[1, 2, 3];
+  field core::List<dynamic>* list = core::_GrowableList::_literal3<dynamic>(1, 2, 3);
   synthetic constructor •() → self::Foo*
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.1.expect
index 0e957f8..724237f 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.1.expect
@@ -37,7 +37,7 @@
     no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
       return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
     no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
-      return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(<dynamic>[b]), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
+      return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
   }
   class Foo2 extends dart.core::Object implements lib1::Bar {
     synthetic constructor •() → main::Foo2*
@@ -62,9 +62,9 @@
     no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
       return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
     no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
-      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(<dynamic>[b]), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
+      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
     no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ field(dart.core::bool* value) → void
-      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(<dynamic>[value]), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
+      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(value)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
   }
 }
 constants  {
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.2.expect
index 8675350..80df4d2 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_16.yaml.world.2.expect
@@ -37,7 +37,7 @@
     no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
       return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
     no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
-      return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(<dynamic>[b]), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
+      return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
   }
   class Foo2 extends dart.core::Object implements lib1::Bar {
     synthetic constructor •() → main::Foo2*
@@ -62,9 +62,9 @@
     no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
       return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
     no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
-      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(<dynamic>[b]), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
+      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
     no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ field(dart.core::bool* value) → void
-      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(<dynamic>[value]), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
+      return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(value)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4)));
   }
 }
 constants  {
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
index 1e8c449..f1541bb 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.1.expect
@@ -253,7 +253,7 @@
       this.{dart.collection::ListMixin::_filter}(test, true);
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int*) → dart.core::bool test, dart.core::bool retainMatching) → void {
-      dart.core::List<dart.core::int*> retained = <dart.core::int*>[];
+      dart.core::List<dart.core::int*> retained = dart.core::_GrowableList::•<dart.core::int*>(0);
       dart.core::int length = this.{dart.core::List::length};
       for (dart.core::int i = 0; i.{dart.core::num::<}(length); i = i.{dart.core::num::+}(1)) {
         dart.core::int* element = this.{dart.core::List::[]}(i);
diff --git a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
index 1e8c449..f1541bb 100644
--- a/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental_initialize_from_dill/no_outline_change_22.yaml.world.2.expect
@@ -253,7 +253,7 @@
       this.{dart.collection::ListMixin::_filter}(test, true);
     }
     method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int*) → dart.core::bool test, dart.core::bool retainMatching) → void {
-      dart.core::List<dart.core::int*> retained = <dart.core::int*>[];
+      dart.core::List<dart.core::int*> retained = dart.core::_GrowableList::•<dart.core::int*>(0);
       dart.core::int length = this.{dart.core::List::length};
       for (dart.core::int i = 0; i.{dart.core::num::<}(length); i = i.{dart.core::num::+}(1)) {
         dart.core::int* element = this.{dart.core::List::[]}(i);
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.strong.transformed.expect
index 9318230..054a9d0 100644
--- a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.strong.transformed.expect
@@ -50,6 +50,6 @@
 static method test() → void {
   dynamic x = throw new core::AbstractClassInstantiationError::•("C");
   dynamic y = let final core::Object* #t1 = 1 in throw new core::AbstractClassInstantiationError::•("D");
-  self::D<core::List<core::int*>*>* z = let final core::Object* #t2 = <dynamic>[] in throw new core::AbstractClassInstantiationError::•("D");
+  self::D<core::List<core::int*>*>* z = let final core::Object* #t2 = core::_GrowableList::•<dynamic>(0) in throw new core::AbstractClassInstantiationError::•("D");
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart.strong.transformed.expect
index 6dba553..f79049f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart.strong.transformed.expect
@@ -14,7 +14,7 @@
             [yield] true;
           }
           {
-            :iterator.{core::_SyncIterator::_yieldEachIterable} = <core::num*>[3, 4.0];
+            :iterator.{core::_SyncIterator::_yieldEachIterable} = core::_GrowableList::_literal2<core::num*>(3, 4.0);
             [yield] true;
           }
         }
diff --git a/pkg/front_end/testcases/inference/bug31436.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/bug31436.dart.strong.transformed.expect
index e1194d4..055a113 100644
--- a/pkg/front_end/testcases/inference/bug31436.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/bug31436.dart.strong.transformed.expect
@@ -5,12 +5,12 @@
 static method block_test() → void {
   () →* core::List<core::Object*>* g;
   g = () → core::List<core::Object*>* {
-    return <core::Object*>[3];
+    return core::_GrowableList::_literal1<core::Object*>(3);
   };
   assert(g is () →* core::List<core::Object*>*);
   assert(!(g is () →* core::List<core::int*>*));
   g.call().{core::List::add}("hello");
-  core::List<core::int*>* l = <core::int*>[3];
+  core::List<core::int*>* l = core::_GrowableList::_literal1<core::int*>(3);
   g = () → core::List<core::int*>* {
     return l;
   };
@@ -40,11 +40,11 @@
 }
 static method arrow_test() → void {
   () →* core::List<core::Object*>* g;
-  g = () → core::List<core::Object*>* => <core::Object*>[3];
+  g = () → core::List<core::Object*>* => core::_GrowableList::_literal1<core::Object*>(3);
   assert(g is () →* core::List<core::Object*>*);
   assert(!(g is () →* core::List<core::int*>*));
   g.call().{core::List::add}("hello");
-  core::List<core::int*>* l = <core::int*>[3];
+  core::List<core::int*>* l = core::_GrowableList::_literal1<core::int*>(3);
   g = () → core::List<core::int*>* => l;
   assert(g is () →* core::List<core::Object*>*);
   assert(g is () →* core::List<core::int*>*);
diff --git a/pkg/front_end/testcases/inference/bug32291.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/bug32291.dart.strong.transformed.expect
index b8775a7..1af625e 100644
--- a/pkg/front_end/testcases/inference/bug32291.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/bug32291.dart.strong.transformed.expect
@@ -3,8 +3,8 @@
 import "dart:core" as core;
 
 static method main() → void {
-  core::List<core::List<core::String*>*>* l = <core::List<core::String*>*>[<core::String*>["hi", "world"]];
-  core::Iterable<core::List<core::String*>*>* i1 = l.{core::Iterable::map}<core::List<core::String*>*>((core::List<core::String*>* ll) → core::List<core::String*>* => let final core::List<core::String*>* #t1 = ll in #t1.{core::List::==}(null) ?{core::List<core::String*>*} <core::String*>[] : #t1);
+  core::List<core::List<core::String*>*>* l = core::_GrowableList::_literal1<core::List<core::String*>*>(core::_GrowableList::_literal2<core::String*>("hi", "world"));
+  core::Iterable<core::List<core::String*>*>* i1 = l.{core::Iterable::map}<core::List<core::String*>*>((core::List<core::String*>* ll) → core::List<core::String*>* => let final core::List<core::String*>* #t1 = ll in #t1.{core::List::==}(null) ?{core::List<core::String*>*} core::_GrowableList::•<core::String*>(0) : #t1);
   core::Iterable<core::int*>* i2 = i1.{core::Iterable::map}<core::int*>((core::List<core::String*>* l) → core::int* => l.{core::List::length});
   core::print(i2);
 }
diff --git a/pkg/front_end/testcases/inference/bug33324.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/bug33324.dart.strong.transformed.expect
index 74b0bb6..f5164b7 100644
--- a/pkg/front_end/testcases/inference/bug33324.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/bug33324.dart.strong.transformed.expect
@@ -4,7 +4,7 @@
 
 static method foo() → core::int* {
   core::Function* f = (dynamic x) → dynamic => x;
-  core::List<dynamic>* l = <core::String*>["bar"].{core::Iterable::map}<dynamic>(f as{TypeError} (core::String*) →* dynamic).{core::Iterable::toList}();
+  core::List<dynamic>* l = core::_GrowableList::_literal1<core::String*>("bar").{core::Iterable::map}<dynamic>(f as{TypeError} (core::String*) →* dynamic).{core::Iterable::toList}();
   l.{core::List::add}(42);
   return l.{core::Iterable::first}.length as{TypeError,ForDynamic} core::int*;
 }
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/complex_predecrement.dart.strong.transformed.expect
index ff145dc..58d23b5 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<core::int*>* foo = <core::int*>[1, 2, 3];
+  core::List<core::int*>* foo = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
   core::print(let final core::List<core::int*>* #t1 = foo in let final core::int* #t2 = 0 in let final core::int* #t3 = #t1.{core::List::[]}(#t2).{core::num::-}(1) in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3) in #t3);
 }
 
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.strong.transformed.expect
index c929f40..a0810b4 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.strong.transformed.expect
@@ -19,8 +19,8 @@
 }
 static method main() → dynamic {
   core::bool* b = false;
-  core::List<core::int*>* l1 = <core::int*>[1];
-  core::List<core::int*>* l2 = <core::int*>[2];
+  core::List<core::int*>* l1 = core::_GrowableList::_literal1<core::int*>(1);
+  core::List<core::int*>* l2 = core::_GrowableList::_literal1<core::int*>(2);
   self::C<core::int*>* x = new self::C::•<core::int*>(l1);
   self::C<core::int*>* y = new self::C::•<core::int*>(l2);
   self::C<core::int*>* z = new self::C::•<core::int*>(b ?{core::List<core::int*>*} l1 : l2);
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.strong.transformed.expect
index 760a01e..48ed791 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.strong.transformed.expect
@@ -18,8 +18,8 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  self::C<core::int*>* x = new self::C::•<core::int*>(<core::int*>[123]);
+  self::C<core::int*>* x = new self::C::•<core::int*>(core::_GrowableList::_literal1<core::int*>(123));
   self::C<core::int*>* y = x;
-  self::C<dynamic>* a = new self::C::•<dynamic>(<dynamic>[123]);
-  self::C<core::Object*>* b = new self::C::•<core::Object*>(<core::Object*>[123]);
+  self::C<dynamic>* a = new self::C::•<dynamic>(core::_GrowableList::_literal1<dynamic>(123));
+  self::C<core::Object*>* b = new self::C::•<core::Object*>(core::_GrowableList::_literal1<core::Object*>(123));
 }
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.strong.transformed.expect
index a4ae7f6..d74aad4 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.strong.transformed.expect
@@ -19,5 +19,5 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  self::C<core::int*>* x = new self::C::named<core::int*>(<core::int*>[]);
+  self::C<core::int*>* x = new self::C::named<core::int*>(core::_GrowableList::•<core::int*>(0));
 }
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.strong.transformed.expect
index 1a362f1..fa86723 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.strong.transformed.expect
@@ -22,5 +22,5 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  self::C<core::int*>* x = new self::C::named<core::int*>(<core::int*>[42]);
+  self::C<core::int*>* x = new self::C::named<core::int*>(core::_GrowableList::_literal1<core::int*>(42));
 }
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.strong.transformed.expect
index 41089c5..9a82bf3 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.strong.transformed.expect
@@ -25,7 +25,7 @@
     core::int* y = 3;
     function f(core::List<core::Map<core::int*, core::String*>*>* l) → void {}
     ;
-    f.call(<core::Map<core::int*, core::String*>*>[<core::int*, core::String*>{y: x}]);
+    f.call(core::_GrowableList::_literal1<core::Map<core::int*, core::String*>*>(<core::int*, core::String*>{y: x}));
   }
   {
     function f(core::int* x) → core::int*
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect
index aab6819..b6b601f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.strong.transformed.expect
@@ -21,7 +21,7 @@
   for (@#C1 core::int* i = 0; i.{core::num::<}(1); i = i.{core::num::+}(1)) {
   }
   {
-    core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[0].{core::Iterable::iterator};
+    core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(0).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       @#C1 core::int* i = :sync-for-iterator.{core::Iterator::current};
       {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.strong.transformed.expect
index a30551f..7cffea5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.strong.transformed.expect
@@ -11,9 +11,9 @@
 
 static method test() → void {
   core::List<core::int*>* l;
-  l = <core::int*>[let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  l = core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"];
-                                                                       ^" in "hello" as{TypeError} core::int*];
-  l = l = <core::int*>[1];
+                                                                       ^" in "hello" as{TypeError} core::int*);
+  l = l = core::_GrowableList::_literal1<core::int*>(1);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect
index 1d08476..3c726ad 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.strong.transformed.expect
@@ -20,9 +20,9 @@
       #L1:
       {
         dynamic d;
-        [yield] let dynamic #t1 = asy::_awaitHelper(<core::int*>[d as{TypeError,ForDynamic} core::int*], :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t1 = asy::_awaitHelper(core::_GrowableList::_literal1<core::int*>(d as{TypeError,ForDynamic} core::int*), :async_op_then, :async_op_error, :async_op) in null;
         core::List<core::int*>* l0 = _in::unsafeCast<core::List<core::int*>*>(:result);
-        [yield] let dynamic #t2 = asy::_awaitHelper(asy::Future::value<core::List<core::int*>*>(<core::int*>[d as{TypeError,ForDynamic} core::int*]), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t2 = asy::_awaitHelper(asy::Future::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(d as{TypeError,ForDynamic} core::int*)), :async_op_then, :async_op_error, :async_op) in null;
         core::List<core::int*>* l1 = _in::unsafeCast<core::List<core::int*>*>(:result);
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect
index 313ed02..21dd720 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.strong.transformed.expect
@@ -255,21 +255,21 @@
       #L7:
       {
         {
-          core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+          core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
             core::int* x = :sync-for-iterator.{core::Iterator::current};
             {}
           }
         }
         {
-          core::Iterator<core::num*>* :sync-for-iterator = <core::num*>[1, 2, 3].{core::Iterable::iterator};
+          core::Iterator<core::num*>* :sync-for-iterator = core::_GrowableList::_literal3<core::num*>(1, 2, 3).{core::Iterable::iterator};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
             core::num* x = :sync-for-iterator.{core::Iterator::current};
             {}
           }
         }
         {
-          core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3].{core::Iterable::iterator};
+          core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator};
           for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
             core::int* x = :sync-for-iterator.{core::Iterator::current};
             {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.strong.transformed.expect
index c66599a..dd5383b 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.strong.transformed.expect
@@ -36,5 +36,5 @@
 static field self::A* t1 = let final self::A* #t1 = new self::A::•() in block {
   #t1.{self::A::b} = new self::B::•<core::int*>(1);
 } =>#t1;
-static field core::List<self::B<core::int*>*>* t2 = <self::B<core::int*>*>[new self::B::•<core::int*>(2)];
+static field core::List<self::B<core::int*>*>* t2 = core::_GrowableList::_literal1<self::B<core::int*>*>(new self::B::•<core::int*>(2));
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.strong.transformed.expect
index 69f8074..425c3c2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.strong.transformed.expect
@@ -17,5 +17,5 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::A<core::int*>*>* t1 = <self::A<core::int*>*>[new self::A::•<core::int*>(1)];
+static field core::List<self::A<core::int*>*>* t1 = core::_GrowableList::_literal1<self::A<core::int*>*>(new self::A::•<core::int*>(1));
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.strong.transformed.expect
index 0ef4029..061bac6 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.strong.transformed.expect
@@ -116,46 +116,46 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method test() → void {
-  new self::F0::•(<core::int*>[]);
-  new self::F0::•(<core::int*>[3]);
-  new self::F0::•(<core::int*>[let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  new self::F0::•(core::_GrowableList::•<core::int*>(0));
+  new self::F0::•(core::_GrowableList::_literal1<core::int*>(3));
+  new self::F0::•(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
-                                                                       ^" in "hello" as{TypeError} core::int*]);
-  new self::F0::•(<core::int*>[let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                       ^" in "hello" as{TypeError} core::int*));
+  new self::F0::•(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                               ^" in "hello" as{TypeError} core::int*, 3]);
-  new self::F1::•(a: <core::int*>[]);
-  new self::F1::•(a: <core::int*>[3]);
-  new self::F1::•(a: <core::int*>[let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*, 3));
+  new self::F1::•(a: core::_GrowableList::•<core::int*>(0));
+  new self::F1::•(a: core::_GrowableList::_literal1<core::int*>(3));
+  new self::F1::•(a: core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
-                                               ^" in "hello" as{TypeError} core::int*]);
-  new self::F1::•(a: <core::int*>[let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*));
+  new self::F1::•(a: core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                               ^" in "hello" as{TypeError} core::int*, 3]);
-  new self::F2::•(<core::int*>[]);
-  new self::F2::•(<core::int*>[3]);
-  new self::F2::•(<core::int*>[let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*, 3));
+  new self::F2::•(core::_GrowableList::•<core::int*>(0));
+  new self::F2::•(core::_GrowableList::_literal1<core::int*>(3));
+  new self::F2::•(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
-                                                                       ^" in "hello" as{TypeError} core::int*]);
-  new self::F2::•(<core::int*>[let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                       ^" in "hello" as{TypeError} core::int*));
+  new self::F2::•(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                               ^" in "hello" as{TypeError} core::int*, 3]);
-  new self::F3::•(<core::Iterable<core::int*>*>[]);
-  new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[3]]);
-  new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*, 3));
+  new self::F3::•(core::_GrowableList::•<core::Iterable<core::int*>*>(0));
+  new self::F3::•(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F3::•(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
-                                                                     ^" in "hello" as{TypeError} core::int*]]);
-  new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*)));
+  new self::F3::•(core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
-                                                                     ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
-  new self::F4::•(a: <core::Iterable<core::int*>*>[]);
-  new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
-  new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F4::•(a: core::_GrowableList::•<core::Iterable<core::int*>*>(0));
+  new self::F4::•(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F4::•(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
-                                                                     ^" in "hello" as{TypeError} core::int*]]);
-  new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*)));
+  new self::F4::•(a: core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
-                                                                     ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
+                                                                     ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.strong.transformed.expect
index 50c0c51..e29bda1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.strong.transformed.expect
@@ -51,46 +51,46 @@
 static method f3(core::Iterable<core::Iterable<core::int*>*>* a) → void {}
 static method f4({core::Iterable<core::Iterable<core::int*>*>* a = #C1}) → void {}
 static method test() → void {
-  self::f0(<core::int*>[]);
-  self::f0(<core::int*>[3]);
-  self::f0(<core::int*>[let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  self::f0(core::_GrowableList::•<core::int*>(0));
+  self::f0(core::_GrowableList::_literal1<core::int*>(3));
+  self::f0(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
-                                                                      ^" in "hello" as{TypeError} core::int*]);
-  self::f0(<core::int*>[let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                      ^" in "hello" as{TypeError} core::int*));
+  self::f0(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
-                                                                      ^" in "hello" as{TypeError} core::int*, 3]);
-  self::f1(a: <core::int*>[]);
-  self::f1(a: <core::int*>[3]);
-  self::f1(a: <core::int*>[let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                      ^" in "hello" as{TypeError} core::int*, 3));
+  self::f1(a: core::_GrowableList::•<core::int*>(0));
+  self::f1(a: core::_GrowableList::_literal1<core::int*>(3));
+  self::f1(a: core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
-                                                                         ^" in "hello" as{TypeError} core::int*]);
-  self::f1(a: <core::int*>[let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                         ^" in "hello" as{TypeError} core::int*));
+  self::f1(a: core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                               ^" in "hello" as{TypeError} core::int*, 3]);
-  self::f2(<core::int*>[]);
-  self::f2(<core::int*>[3]);
-  self::f2(<core::int*>[let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*, 3));
+  self::f2(core::_GrowableList::•<core::int*>(0));
+  self::f2(core::_GrowableList::_literal1<core::int*>(3));
+  self::f2(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
-                                                                      ^" in "hello" as{TypeError} core::int*]);
-  self::f2(<core::int*>[let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                      ^" in "hello" as{TypeError} core::int*));
+  self::f2(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
-                                                                      ^" in "hello" as{TypeError} core::int*, 3]);
-  self::f3(<core::Iterable<core::int*>*>[]);
-  self::f3(<core::Iterable<core::int*>*>[<core::int*>[3]]);
-  self::f3(<core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                      ^" in "hello" as{TypeError} core::int*, 3));
+  self::f3(core::_GrowableList::•<core::Iterable<core::int*>*>(0));
+  self::f3(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  self::f3(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
-                                                                     ^" in "hello" as{TypeError} core::int*]]);
-  self::f3(<core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*)));
+  self::f3(core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
-                                                                     ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
-  self::f4(a: <core::Iterable<core::int*>*>[]);
-  self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
-  self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
+  self::f4(a: core::_GrowableList::•<core::Iterable<core::int*>*>(0));
+  self::f4(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  self::f4(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
-                                                                     ^" in "hello" as{TypeError} core::int*]]);
-  self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*)));
+  self::f4(a: core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
-                                                                     ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
+                                                                     ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect
index 4e084a6..2dba555 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.strong.transformed.expect
@@ -87,18 +87,18 @@
   }
   {
     (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → Null => null;
-    (core::int*) →* core::List<core::String*>* l1 = (core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
+    (core::int*) →* core::List<core::String*>* l1 = (core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello");
     (core::int*) →* core::List<core::String*>* l2 = let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
  - 'List' is from 'dart:core'.
         l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
-                                                                           ^" in ((core::String* x) → core::List<core::String*>* => <core::String*>["hello"]) as{TypeError} (core::int*) →* core::List<core::String*>*;
-    (core::int*) →* core::List<core::String*>* l3 = (core::int* x) → core::List<core::String*>* => <core::String*>[let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+                                                                           ^" in ((core::String* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello")) as{TypeError} (core::int*) →* core::List<core::String*>*;
+    (core::int*) →* core::List<core::String*>* l3 = (core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>(let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
               /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
-                                                         ^" in 3 as{TypeError} core::String*];
+                                                         ^" in 3 as{TypeError} core::String*);
     (core::int*) →* core::List<core::String*>* l4 = (core::int* x) → core::List<core::String*>* {
-      return <core::String*>[let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      return core::_GrowableList::_literal1<core::String*>(let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
         /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
-                                                   ^" in 3 as{TypeError} core::String*];
+                                                   ^" in 3 as{TypeError} core::String*);
     };
   }
   {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.strong.transformed.expect
index 3231434..b50f945 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.strong.transformed.expect
@@ -13,10 +13,10 @@
     function f<T extends core::Object* = dynamic>(T* x) → core::List<T*>*
       return null;
     <T extends core::Object* = dynamic>(T*) →* core::List<T*>* v2 = f;
-    v2 = <S extends core::Object* = dynamic>(S* x) → core::List<S*>* => <S*>[x];
+    v2 = <S extends core::Object* = dynamic>(S* x) → core::List<S*>* => core::_GrowableList::_literal1<S*>(x);
     core::Iterable<core::int*>* r = v2.call<core::int*>(42);
     core::Iterable<core::String*>* s = v2.call<core::String*>("hello");
-    core::Iterable<core::List<core::int*>*>* t = v2.call<core::List<core::int*>*>(<core::int*>[]);
+    core::Iterable<core::List<core::int*>*>* t = v2.call<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0));
     core::Iterable<core::num*>* u = v2.call<core::num*>(42);
     core::Iterable<core::num*>* v = v2.call<core::num*>(42);
   }
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.strong.transformed.expect
index 81acf78..70d6890 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.strong.transformed.expect
@@ -31,8 +31,8 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → void {
-  new self::F3::•<dynamic>(<core::Iterable<dynamic>*>[]);
-  new self::F4::•<dynamic>(a: <core::Iterable<dynamic>*>[]);
+  new self::F3::•<dynamic>(core::_GrowableList::•<core::Iterable<dynamic>*>(0));
+  new self::F4::•<dynamic>(a: core::_GrowableList::•<core::Iterable<dynamic>*>(0));
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.strong.transformed.expect
index 95c87b4..ed667a8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.strong.transformed.expect
@@ -116,54 +116,54 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method test() → void {
-  new self::F0::•<core::int*>(<core::int*>[]);
-  new self::F0::•<core::int*>(<core::int*>[3]);
-  new self::F0::•<core::int*>(<core::int*>[let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  new self::F0::•<core::int*>(core::_GrowableList::•<core::int*>(0));
+  new self::F0::•<core::int*>(core::_GrowableList::_literal1<core::int*>(3));
+  new self::F0::•<core::int*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
-                                                                       ^" in "hello" as{TypeError} core::int*]);
-  new self::F0::•<core::int*>(<core::int*>[let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                       ^" in "hello" as{TypeError} core::int*));
+  new self::F0::•<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                               ^" in "hello" as{TypeError} core::int*, 3]);
-  new self::F1::•<core::int*>(a: <core::int*>[]);
-  new self::F1::•<core::int*>(a: <core::int*>[3]);
-  new self::F1::•<core::int*>(a: <core::int*>[let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*, 3));
+  new self::F1::•<core::int*>(a: core::_GrowableList::•<core::int*>(0));
+  new self::F1::•<core::int*>(a: core::_GrowableList::_literal1<core::int*>(3));
+  new self::F1::•<core::int*>(a: core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
-                                               ^" in "hello" as{TypeError} core::int*]);
-  new self::F1::•<core::int*>(a: <core::int*>[let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*));
+  new self::F1::•<core::int*>(a: core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                               ^" in "hello" as{TypeError} core::int*, 3]);
-  new self::F2::•<core::int*>(<core::int*>[]);
-  new self::F2::•<core::int*>(<core::int*>[3]);
-  new self::F2::•<core::int*>(<core::int*>[let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*, 3));
+  new self::F2::•<core::int*>(core::_GrowableList::•<core::int*>(0));
+  new self::F2::•<core::int*>(core::_GrowableList::_literal1<core::int*>(3));
+  new self::F2::•<core::int*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
-                                                                       ^" in "hello" as{TypeError} core::int*]);
-  new self::F2::•<core::int*>(<core::int*>[let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                       ^" in "hello" as{TypeError} core::int*));
+  new self::F2::•<core::int*>(core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                               ^" in "hello" as{TypeError} core::int*, 3]);
-  new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[]);
-  new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[3]]);
-  new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                               ^" in "hello" as{TypeError} core::int*, 3));
+  new self::F3::•<core::int*>(core::_GrowableList::•<core::Iterable<core::int*>*>(0));
+  new self::F3::•<core::int*>(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F3::•<core::int*>(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
-                                                                     ^" in "hello" as{TypeError} core::int*]]);
-  new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*)));
+  new self::F3::•<core::int*>(core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
-                                                                     ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
-  new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[]);
-  new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
-  new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F4::•<core::int*>(a: core::_GrowableList::•<core::Iterable<core::int*>*>(0));
+  new self::F4::•<core::int*>(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F4::•<core::int*>(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
-                                                                     ^" in "hello" as{TypeError} core::int*]]);
-  new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                                     ^" in "hello" as{TypeError} core::int*)));
+  new self::F4::•<core::int*>(a: core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
     /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
-                                                                     ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
-  new self::F3::•<dynamic>(<core::Iterable<dynamic>*>[]);
-  self::F3<core::int*>* f31 = new self::F3::•<core::int*>(<core::List<core::int*>*>[<core::int*>[3]]);
-  self::F3<core::String*>* f32 = new self::F3::•<core::String*>(<core::List<core::String*>*>[<core::String*>["hello"]]);
-  self::F3<core::Object*>* f33 = new self::F3::•<core::Object*>(<core::List<core::Object*>*>[<core::String*>["hello"], <core::int*>[3]]);
-  new self::F4::•<dynamic>(a: <core::Iterable<dynamic>*>[]);
-  new self::F4::•<core::int*>(a: <core::List<core::int*>*>[<core::int*>[3]]);
-  new self::F4::•<core::String*>(a: <core::List<core::String*>*>[<core::String*>["hello"]]);
-  new self::F4::•<core::Object*>(a: <core::List<core::Object*>*>[<core::String*>["hello"], <core::int*>[3]]);
+                                                                     ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F3::•<dynamic>(core::_GrowableList::•<core::Iterable<dynamic>*>(0));
+  self::F3<core::int*>* f31 = new self::F3::•<core::int*>(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  self::F3<core::String*>* f32 = new self::F3::•<core::String*>(core::_GrowableList::_literal1<core::List<core::String*>*>(core::_GrowableList::_literal1<core::String*>("hello")));
+  self::F3<core::Object*>* f33 = new self::F3::•<core::Object*>(core::_GrowableList::_literal2<core::List<core::Object*>*>(core::_GrowableList::_literal1<core::String*>("hello"), core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F4::•<dynamic>(a: core::_GrowableList::•<core::Iterable<dynamic>*>(0));
+  new self::F4::•<core::int*>(a: core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
+  new self::F4::•<core::String*>(a: core::_GrowableList::_literal1<core::List<core::String*>*>(core::_GrowableList::_literal1<core::String*>("hello")));
+  new self::F4::•<core::Object*>(a: core::_GrowableList::_literal2<core::List<core::Object*>*>(core::_GrowableList::_literal1<core::String*>("hello"), core::_GrowableList::_literal1<core::int*>(3)));
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect
index 5fa06c8..bd249c6 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.strong.transformed.expect
@@ -95,18 +95,18 @@
       return null;
     <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>* v = f;
     v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
-    v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
+    v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello");
     v = let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
  - 'List' is from 'dart:core'.
     v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
-                                                                          ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::List<core::String*>* => <core::String*>["hello"]) as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>*;
-    v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>[let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+                                                                          ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello")) as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>*;
+    v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>(let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
           /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
-                                                     ^" in 3 as{TypeError} core::String*];
+                                                     ^" in 3 as{TypeError} core::String*);
     v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* {
-      return <core::String*>[let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+      return core::_GrowableList::_literal1<core::String*>(let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
         /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
-                                                   ^" in 3 as{TypeError} core::String*];
+                                                   ^" in 3 as{TypeError} core::String*);
     };
   }
   {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.transformed.expect
index cbee34a..6f8cca2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.strong.transformed.expect
@@ -287,12 +287,12 @@
     self::A<self::C<core::int*>*, core::String*>* a0 = new self::E::•<core::int*, core::String*>("hello");
   }
   {
-    self::A<core::int*, core::String*>* a0 = new self::F::•<core::int*, core::String*>(3, "hello", a: <core::int*>[3], b: <core::String*>["hello"]);
-    self::A<core::int*, core::String*>* a1 = new self::F::•<core::int*, core::String*>(3, "hello", a: <core::int*>[let final<BottomType> #t21 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    self::A<core::int*, core::String*>* a0 = new self::F::•<core::int*, core::String*>(3, "hello", a: core::_GrowableList::_literal1<core::int*>(3), b: core::_GrowableList::_literal1<core::String*>("hello"));
+    self::A<core::int*, core::String*>* a1 = new self::F::•<core::int*, core::String*>(3, "hello", a: core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t21 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
           /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
-                                                     ^" in "hello" as{TypeError} core::int*], b: <core::String*>[let final<BottomType> #t22 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+                                                     ^" in "hello" as{TypeError} core::int*), b: core::_GrowableList::_literal1<core::String*>(let final<BottomType> #t22 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
           /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
-                                                     ^" in 3 as{TypeError} core::String*]);
+                                                     ^" in 3 as{TypeError} core::String*));
     self::A<core::int*, core::String*>* a2 = new self::F::named<core::int*, core::String*>(3, "hello", 3, "hello");
     self::A<core::int*, core::String*>* a3 = new self::F::named<core::int*, core::String*>(3, "hello");
     self::A<core::int*, core::String*>* a4 = new self::F::named<core::int*, core::String*>(3, "hello", let final<BottomType> #t23 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.transformed.expect
index fc86f60..59c3f05 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.strong.transformed.expect
@@ -70,56 +70,56 @@
                                                                                         ^"]) → void {}
 static method main() → void {
   {
-    core::List<core::int*>* l0 = <core::int*>[];
-    core::List<core::int*>* l1 = <core::int*>[3];
-    core::List<core::int*>* l2 = <core::int*>[let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    core::List<core::int*>* l0 = core::_GrowableList::•<core::int*>(0);
+    core::List<core::int*>* l1 = core::_GrowableList::_literal1<core::int*>(3);
+    core::List<core::int*>* l2 = core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
-                                                 ^" in "hello" as{TypeError} core::int*];
-    core::List<core::int*>* l3 = <core::int*>[let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                 ^" in "hello" as{TypeError} core::int*);
+    core::List<core::int*>* l3 = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                                 ^" in "hello" as{TypeError} core::int*, 3];
+                                                 ^" in "hello" as{TypeError} core::int*, 3);
   }
   {
-    core::List<dynamic>* l0 = <dynamic>[];
-    core::List<dynamic>* l1 = <dynamic>[3];
-    core::List<dynamic>* l2 = <dynamic>["hello"];
-    core::List<dynamic>* l3 = <dynamic>["hello", 3];
+    core::List<dynamic>* l0 = core::_GrowableList::•<dynamic>(0);
+    core::List<dynamic>* l1 = core::_GrowableList::_literal1<dynamic>(3);
+    core::List<dynamic>* l2 = core::_GrowableList::_literal1<dynamic>("hello");
+    core::List<dynamic>* l3 = core::_GrowableList::_literal2<dynamic>("hello", 3);
   }
   {
     core::List<core::int*>* l0 = let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
  - 'List' is from 'dart:core'.
 Change the type of the list literal or the context in which it is used.
     List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
-                                                            ^" in <core::num*>[];
+                                                            ^" in core::_GrowableList::•<core::num*>(0);
     core::List<core::int*>* l1 = let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
  - 'List' is from 'dart:core'.
 Change the type of the list literal or the context in which it is used.
     List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
-                                                            ^" in <core::num*>[3];
+                                                            ^" in core::_GrowableList::_literal1<core::num*>(3);
     core::List<core::int*>* l2 = let final<BottomType> #t5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
  - 'List' is from 'dart:core'.
 Change the type of the list literal or the context in which it is used.
     List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
-                                                            ^" in <core::num*>[let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+                                                            ^" in core::_GrowableList::_literal1<core::num*>(let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
       /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
-                                                 ^" in "hello" as{TypeError} core::num*];
+                                                 ^" in "hello" as{TypeError} core::num*);
     core::List<core::int*>* l3 = let final<BottomType> #t7 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
  - 'List' is from 'dart:core'.
 Change the type of the list literal or the context in which it is used.
     List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
-                                                            ^" in <core::num*>[let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+                                                            ^" in core::_GrowableList::_literal2<core::num*>(let final<BottomType> #t8 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
       /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                                 ^" in "hello" as{TypeError} core::num*, 3];
+                                                 ^" in "hello" as{TypeError} core::num*, 3);
   }
   {
-    core::Iterable<core::int*>* i0 = <core::int*>[];
-    core::Iterable<core::int*>* i1 = <core::int*>[3];
-    core::Iterable<core::int*>* i2 = <core::int*>[let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+    core::Iterable<core::int*>* i0 = core::_GrowableList::•<core::int*>(0);
+    core::Iterable<core::int*>* i1 = core::_GrowableList::_literal1<core::int*>(3);
+    core::Iterable<core::int*>* i2 = core::_GrowableList::_literal1<core::int*>(let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
-                                                 ^" in "hello" as{TypeError} core::int*];
-    core::Iterable<core::int*>* i3 = <core::int*>[let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+                                                 ^" in "hello" as{TypeError} core::int*);
+    core::Iterable<core::int*>* i3 = core::_GrowableList::_literal2<core::int*>(let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
       /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
-                                                 ^" in "hello" as{TypeError} core::int*, 3];
+                                                 ^" in "hello" as{TypeError} core::int*, 3);
   }
   {
     const core::List<core::int*>* c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.strong.transformed.expect
index e16a1a8..660139a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.strong.transformed.expect
@@ -29,11 +29,11 @@
     return null;
   abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
   method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
-    let final core::List<(self::DartType*) →* void>* #t1 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::C::assertAOf}.call(#t1);
-    self::C::assertBOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
-    self::C::assertCOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
-    let final core::List<(self::DartType*) →* void>* #t2 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::C::assertDOf}.call(#t2);
-    assertEOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
+    let final core::List<(self::DartType*) →* void>* #t1 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::C::assertAOf}.call(#t1);
+    self::C::assertBOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
+    self::C::assertCOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
+    let final core::List<(self::DartType*) →* void>* #t2 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::C::assertDOf}.call(#t2);
+    assertEOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -53,10 +53,10 @@
     ;
   abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
   method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
-    let final core::List<(self::DartType*) →* void>* #t3 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}.call(#t3);
-    let final core::List<(self::DartType*) →* void>* #t4 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}.call(#t4);
-    let final core::List<(self::DartType*) →* void>* #t5 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertDOf}.call(#t5);
-    assertEOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
+    let final core::List<(self::DartType*) →* void>* #t3 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::G::assertAOf}.call(#t3);
+    let final core::List<(self::DartType*) →* void>* #t4 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::G::assertAOf}.call(#t4);
+    let final core::List<(self::DartType*) →* void>* #t5 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::G::assertDOf}.call(#t5);
+    assertEOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -76,16 +76,16 @@
   return null;
 static method test() → dynamic {
   (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf;
-  assertAOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
-  self::assertBOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
-  self::assertCOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
-  self::C::assertBOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
-  self::C::assertCOf.call(<(self::DartType*) →* void>[self::_isInt, self::_isString]);
+  assertAOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
+  self::assertBOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
+  self::assertCOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
+  self::C::assertBOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
+  self::C::assertCOf.call(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString));
   self::C* c;
-  let final self::C* #t6 = c in let final core::List<(self::DartType*) →* void>* #t7 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t6.{self::C::assertAOf}.call(#t7);
-  let final self::C* #t8 = c in let final core::List<(self::DartType*) →* void>* #t9 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t8.{self::C::assertDOf}.call(#t9);
+  let final self::C* #t6 = c in let final core::List<(self::DartType*) →* void>* #t7 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t6.{self::C::assertAOf}.call(#t7);
+  let final self::C* #t8 = c in let final core::List<(self::DartType*) →* void>* #t9 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t8.{self::C::assertDOf}.call(#t9);
   self::G<core::int*>* g;
-  let final self::G<core::int*>* #t10 = g in let final core::List<(self::DartType*) →* void>* #t11 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t10.{self::G::assertAOf}.call(#t11);
-  let final self::G<core::int*>* #t12 = g in let final core::List<(self::DartType*) →* void>* #t13 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t12.{self::G::assertDOf}.call(#t13);
+  let final self::G<core::int*>* #t10 = g in let final core::List<(self::DartType*) →* void>* #t11 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t10.{self::G::assertAOf}.call(#t11);
+  let final self::G<core::int*>* #t12 = g in let final core::List<(self::DartType*) →* void>* #t13 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t12.{self::G::assertDOf}.call(#t13);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect
index 6772134..5557102 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.strong.transformed.expect
@@ -97,7 +97,7 @@
       try {
         #L1:
         {
-          if(:controller.{asy::_AsyncStarStreamController::add}(<core::int*>[]))
+          if(:controller.{asy::_AsyncStarStreamController::add}(core::_GrowableList::•<core::int*>(0)))
             return null;
           else
             [yield] null;
@@ -113,7 +113,7 @@
  - 'List' is from 'dart:core'.
  - 'Stream' is from 'dart:async'.
   yield* /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
-                                                               ^" in <dynamic>[] as{TypeError} asy::Stream<core::List<core::int*>*>*))
+                                                               ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} asy::Stream<core::List<core::int*>*>*))
             return null;
           else
             [yield] null;
@@ -151,7 +151,7 @@
  - 'List' is from 'dart:core'.
  - 'Map' is from 'dart:core'.
   yield /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
-                                                              ^" in <dynamic>[] as{TypeError} core::Map<core::int*, core::int*>*;
+                                                              ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} core::Map<core::int*, core::int*>*;
           [yield] true;
         }
         {
@@ -163,7 +163,7 @@
           [yield] true;
         }
         {
-          :iterator.{core::_SyncIterator::_yieldEachIterable} = <core::Map<core::int*, core::int*>*>[];
+          :iterator.{core::_SyncIterator::_yieldEachIterable} = core::_GrowableList::•<core::Map<core::int*, core::int*>*>(0);
           [yield] true;
         }
       }
diff --git a/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect
index 99706f8..31f36c1 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<dynamic>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect
index 780ffb76..5e4f03c 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<dynamic>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect
index 3b12a3e..b811bc8 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<dynamic>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect
index f715984..dfb8161 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<dynamic>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect
index 8095cd9..2e741e8 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   asy::Future<dynamic>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect
index 2bb0e59..b0315bb 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   asy::Future<dynamic>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect
index 1b90060..d191f4c 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<core::bool*>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect
index 09ef601..43a3960 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<core::bool*>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect
index 97bec60..5f3d17d 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<core::bool*>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect
index 947f092..91d19c76 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<core::bool*>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect
index 1ea35fe..09ebce0 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   asy::Future<core::bool*>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect
index 8acc631..de83970 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   asy::Future<core::bool*>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect
index fb4af0a..53eb93c 100644
--- a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
 
 static method test() → dynamic {
   asy::Future<core::int*>* f;
-  asy::Future<core::List<core::int*>*>* b = f.{asy::Future::then}<core::List<dynamic>*>((core::int* x) → core::List<dynamic>* => <dynamic>[]).{asy::Future::whenComplete}(() → Null {}) as{TypeError} asy::Future<core::List<core::int*>*>*;
-  b = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => <core::int*>[]);
+  asy::Future<core::List<core::int*>*>* b = f.{asy::Future::then}<core::List<dynamic>*>((core::int* x) → core::List<dynamic>* => core::_GrowableList::•<dynamic>(0)).{asy::Future::whenComplete}(() → Null {}) as{TypeError} asy::Future<core::List<core::int*>*>*;
+  b = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => core::_GrowableList::•<core::int*>(0));
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.strong.transformed.expect
index cf41d05..f4262fd 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.strong.transformed.expect
@@ -26,7 +26,7 @@
  - 'List' is from 'dart:core'.
  - 'Future' is from 'dart:async'.
       /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
-                                                                                                  ^" in <dynamic>[] as{TypeError} FutureOr<asy::Future<core::List<core::int*>*>*>*);
+                                                                                                  ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} FutureOr<asy::Future<core::List<core::int*>*>*>*);
   asy::Future<core::List<core::int*>*>* y = let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:16:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
  - 'Future' is from 'dart:async'.
  - 'List' is from 'dart:core'.
@@ -35,7 +35,7 @@
 }
 static method m2() → dynamic {
   asy::Future<core::int*>* f;
-  asy::Future<core::List<core::int*>*>* x = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => <core::int*>[]);
+  asy::Future<core::List<core::int*>*>* x = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => core::_GrowableList::•<core::int*>(0));
   asy::Future<core::List<core::int*>*>* y = x;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect
index 41975f17..ecd8f2b 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.strong.transformed.expect
@@ -25,13 +25,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   self::MyFuture<core::int*>* f;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.strong.transformed.expect
index 31e558a..4a8f5e5 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.strong.transformed.expect
@@ -33,13 +33,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method main() → void {
   self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3);
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.strong.transformed.expect
index d6e485a..392a7e75 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.strong.transformed.expect
@@ -32,13 +32,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method main() → void {
   self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3);
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.strong.transformed.expect
index c213ce8..659d9cf 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.strong.transformed.expect
@@ -32,13 +32,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method test() → void {
   asy::Future<core::double*>* f = self::foo().{asy::Future::then}<core::double*>((dynamic _) → core::double* => 2.3);
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect
index 2d0d430..5fc430a 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.transformed.expect
@@ -24,13 +24,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method g1(core::bool* x) → asy::Future<core::int*>* /* originally async */ {
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect
index e4ad380..2ba5916 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.transformed.expect
@@ -24,13 +24,13 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static method g1(core::bool* x) → asy::Future<core::int*>* /* originally async */ {
   final asy::_Future<core::int*>* :async_future = new asy::_Future::•<core::int*>();
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect
index cdf55f7..e47a237 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.strong.transformed.expect
@@ -31,19 +31,19 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static field self::MyFuture<dynamic>* f;
 static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
         new /*@ typeArgs=int* */ Future.value('hi'));
                                               ^" in "hi" as{TypeError} FutureOr<core::int*>?));
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]);
+static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3));
 static method g2() → asy::Future<core::List<core::int*>*>* /* originally async */ {
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
@@ -56,7 +56,7 @@
     try {
       #L1:
       {
-        :return_value = <core::int*>[3];
+        :return_value = core::_GrowableList::_literal1<core::int*>(3);
         break #L1;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
@@ -83,7 +83,7 @@
     try {
       #L2:
       {
-        :return_value = asy::Future::value<core::List<core::int*>*>(<core::int*>[3]);
+        :return_value = asy::Future::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
         break #L2;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect
index 3338e9b..3e5228e 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.transformed.expect
@@ -24,17 +24,17 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static field self::MyFuture<dynamic>* f;
 static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi"));
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]);
+static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3));
 static method g2() → asy::Future<core::List<core::int*>*>* /* originally async */ {
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
@@ -47,7 +47,7 @@
     try {
       #L1:
       {
-        :return_value = <core::int*>[3];
+        :return_value = core::_GrowableList::_literal1<core::int*>(3);
         break #L1;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
@@ -74,7 +74,7 @@
     try {
       #L2:
       {
-        :return_value = new self::MyFuture::value<core::List<core::int*>*>(<core::int*>[3]);
+        :return_value = new self::MyFuture::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
         break #L2;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect
index d89cd97..b5b7c73 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.transformed.expect
@@ -31,19 +31,19 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static field asy::Future<dynamic>* f;
 static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
         new /*@ typeArgs=int* */ Future.value('hi'));
                                               ^" in "hi" as{TypeError} FutureOr<core::int*>?));
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]);
+static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3));
 static method g2() → asy::Future<core::List<core::int*>*>* /* originally async */ {
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
@@ -56,7 +56,7 @@
     try {
       #L1:
       {
-        :return_value = <core::int*>[3];
+        :return_value = core::_GrowableList::_literal1<core::int*>(3);
         break #L1;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
@@ -83,7 +83,7 @@
     try {
       #L2:
       {
-        :return_value = asy::Future::value<core::List<core::int*>*>(<core::int*>[3]);
+        :return_value = asy::Future::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
         break #L2;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect
index b7ad80a..82d9f9b 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.transformed.expect
@@ -24,17 +24,17 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
   no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
     return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 0, #C3, #C6, core::Map::unmodifiable<core::Symbol*, dynamic>(#C7))) as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
   no-such-method-forwarder method timeout(core::Duration* timeLimit, {generic-covariant-impl () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
-    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+    return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))) as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
 }
 static field asy::Future<dynamic>* f;
 static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi"));
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]);
+static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3));
 static method g2() → asy::Future<core::List<core::int*>*>* /* originally async */ {
   final asy::_Future<core::List<core::int*>*>* :async_future = new asy::_Future::•<core::List<core::int*>*>();
   core::bool* :is_sync = false;
@@ -47,7 +47,7 @@
     try {
       #L1:
       {
-        :return_value = <core::int*>[3];
+        :return_value = core::_GrowableList::_literal1<core::int*>(3);
         break #L1;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
@@ -74,7 +74,7 @@
     try {
       #L2:
       {
-        :return_value = new self::MyFuture::value<core::List<core::int*>*>(<core::int*>[3]);
+        :return_value = new self::MyFuture::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
         break #L2;
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect
index a59d7c8..7438fe3 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.strong.transformed.expect
@@ -36,7 +36,7 @@
       {
         asy::Future<core::List<self::A*>*>* f1 = null;
         asy::Future<core::List<self::A*>*>* f2 = null;
-        [yield] let dynamic #t1 = asy::_awaitHelper(asy::Future::wait<core::List<self::A*>*>(<asy::Future<core::List<self::A*>*>*>[f1, f2]), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t1 = asy::_awaitHelper(asy::Future::wait<core::List<self::A*>*>(core::_GrowableList::_literal2<asy::Future<core::List<self::A*>*>*>(f1, f2)), :async_op_then, :async_op_error, :async_op) in null;
         core::List<core::List<self::A*>*>* merged = _in::unsafeCast<core::List<core::List<self::A*>*>>(:result);
       }
       asy::_completeOnAsyncReturn(:async_future, :return_value, :is_sync);
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect
index 448d38f..e541778 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.strong.transformed.expect
@@ -46,10 +46,10 @@
       {
         asy::Future<self::B*>* b = asy::Future::value<self::B*>(new self::B::•());
         asy::Future<self::C*>* c = asy::Future::value<self::C*>(new self::C::•());
-        core::List<asy::Future<self::A*>*>* lll = <asy::Future<self::A*>*>[b, c];
+        core::List<asy::Future<self::A*>*>* lll = core::_GrowableList::_literal2<asy::Future<self::A*>*>(b, c);
         [yield] let dynamic #t1 = asy::_awaitHelper(asy::Future::wait<self::A*>(lll), :async_op_then, :async_op_error, :async_op) in null;
         core::List<self::A*>* result = _in::unsafeCast<core::List<self::A*>>(:result);
-        [yield] let dynamic #t2 = asy::_awaitHelper(asy::Future::wait<self::A*>(<asy::Future<self::A*>*>[b, c]), :async_op_then, :async_op_error, :async_op) in null;
+        [yield] let dynamic #t2 = asy::_awaitHelper(asy::Future::wait<self::A*>(core::_GrowableList::_literal2<asy::Future<self::A*>*>(b, c)), :async_op_then, :async_op_error, :async_op) in null;
         core::List<self::A*>* result2 = _in::unsafeCast<core::List<self::A*>>(:result);
         core::List<self::A*>* list = result;
         list = result2;
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.strong.transformed.expect
index 0e19c3a..4ef2311 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.strong.transformed.expect
@@ -12,9 +12,9 @@
 static method f<T extends core::Object* = dynamic>(core::List<self::f::T*>* s) → self::f::T*
   return null;
 static method test() → dynamic {
-  core::String* x = self::f<core::String*>(<core::String*>["hi"]);
-  core::String* y = self::f<core::String*>(<core::String*>[let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+  core::String* x = self::f<core::String*>(core::_GrowableList::_literal1<core::String*>("hi"));
+  core::String* y = self::f<core::String*>(core::_GrowableList::_literal1<core::String*>(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
           /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
-                                                                              ^" in 42 as{TypeError} core::String*]);
+                                                                              ^" in 42 as{TypeError} core::String*));
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.transformed.expect
index 314da47..e6ccc64e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.strong.transformed.expect
@@ -20,7 +20,7 @@
 static method make(core::int* x) → asy::Future<core::int*>*
   return asy::Future::•<core::int*>(() → core::int* => x);
 static method test() → dynamic {
-  core::Iterable<asy::Future<core::int*>*>* list = <core::int*>[1, 2, 3].{core::Iterable::map}<asy::Future<core::int*>*>(#C1);
+  core::Iterable<asy::Future<core::int*>*>* list = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::map}<asy::Future<core::int*>*>(#C1);
   asy::Future<core::List<core::int*>*>* results = asy::Future::wait<core::int*>(list);
   asy::Future<core::String*>* results2 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → FutureOr<core::String*>* => list.{core::Iterable::fold}<FutureOr<core::String*>*>("", (FutureOr<core::String*>* x, core::int* y) → FutureOr<core::String*>* => invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:123: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
 Try correcting the operator to an existing operator, or defining a '+' operator.
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.strong.transformed.expect
index 854ab35..944df3a 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.strong.transformed.expect
@@ -5,7 +5,7 @@
 import "dart:math" as math;
 
 class Trace extends core::Object {
-  field core::List<self::Frame*>* frames = <self::Frame*>[];
+  field core::List<self::Frame*>* frames = core::_GrowableList::•<self::Frame*>(0);
   synthetic constructor •() → self::Trace*
     : super core::Object::•()
     ;
@@ -37,7 +37,7 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  core::List<self::Trace*>* traces = <self::Trace*>[];
+  core::List<self::Trace*>* traces = core::_GrowableList::•<self::Trace*>(0);
   core::int* longest = traces.{core::Iterable::map}<core::int*>((self::Trace* trace) → core::int* {
     return trace.{self::Trace::frames}.{core::Iterable::map}<core::int*>((self::Frame* frame) → core::int* => frame.{self::Frame::location}.{core::String::length}).{core::Iterable::fold}<core::int*>(0, #C1<core::int*>);
   }).{core::Iterable::fold}<core::int*>(0, #C1<core::int*>);
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.strong.transformed.expect
index 1879718..69e2baf 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.strong.transformed.expect
@@ -104,9 +104,9 @@
 static field self::B* b = new self::B::•(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Getter not found: 'x'.
 var b = new B(/*error:UNDEFINED_IDENTIFIER*/ x); // allocations
                                              ^");
-static field core::List<dynamic>* c1 = <dynamic>[invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Getter not found: 'x'.
+static field core::List<dynamic>* c1 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Getter not found: 'x'.
   /*error:UNDEFINED_IDENTIFIER*/ x
-                                 ^"];
+                                 ^");
 static field core::List<dynamic>* c2 = #C1;
 static field core::Map<dynamic, dynamic>* d = <dynamic, dynamic>{"a": "b"};
 static field self::A* e = let final self::A* #t1 = new self::A::•() in block {
@@ -132,7 +132,7 @@
   b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
                                    ^" in "hi" as{TypeError} self::B*;
   self::b = new self::B::•(3);
-  self::c1 = <dynamic>[];
+  self::c1 = core::_GrowableList::•<dynamic>(0);
   self::c1 = let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
  - 'Set' is from 'dart:core'.
  - 'List' is from 'dart:core'.
@@ -140,7 +140,7 @@
                                                           ^" in ( block {
     final core::Set<dynamic>* #t5 = new col::_CompactLinkedHashSet::•<dynamic>();
   } =>#t5) as{TypeError} core::List<dynamic>*;
-  self::c2 = <dynamic>[];
+  self::c2 = core::_GrowableList::•<dynamic>(0);
   self::c2 = let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:43:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
  - 'Set' is from 'dart:core'.
  - 'List' is from 'dart:core'.
@@ -182,7 +182,7 @@
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
   j = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ [];
-                                                         ^" in <dynamic>[] as{TypeError} self::B*;
+                                                         ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} self::B*;
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart.strong.transformed.expect
index 74ddf33..2917089 100644
--- a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart.strong.transformed.expect
@@ -40,7 +40,7 @@
 static method getResource(core::String* str) → self::Resource*
   return null;
 static method main() → dynamic {
-  core::Map<core::String*, core::List<self::Folder*>*>* map = <core::String*, core::List<self::Folder*>*>{"pkgA": <self::Folder*>[self::getResource("/pkgA/lib/") as{TypeError} self::Folder*], "pkgB": <self::Folder*>[self::getResource("/pkgB/lib/") as{TypeError} self::Folder*]};
-  core::List<core::Map<core::String*, self::Folder*>*>* list = <core::Map<core::String*, self::Folder*>*>[<core::String*, self::Folder*>{"pkgA": self::getResource("/pkgA/lib/") as{TypeError} self::Folder*}, <core::String*, self::Folder*>{"pkgB": self::getResource("/pkgB/lib/") as{TypeError} self::Folder*}];
-  self::Foo<core::List<self::Folder*>*>* foo = new self::Foo::•<core::List<self::Folder*>*>(<self::Folder*>[self::getResource("/pkgA/lib/") as{TypeError} self::Folder*]);
+  core::Map<core::String*, core::List<self::Folder*>*>* map = <core::String*, core::List<self::Folder*>*>{"pkgA": core::_GrowableList::_literal1<self::Folder*>(self::getResource("/pkgA/lib/") as{TypeError} self::Folder*), "pkgB": core::_GrowableList::_literal1<self::Folder*>(self::getResource("/pkgB/lib/") as{TypeError} self::Folder*)};
+  core::List<core::Map<core::String*, self::Folder*>*>* list = core::_GrowableList::_literal2<core::Map<core::String*, self::Folder*>*>(<core::String*, self::Folder*>{"pkgA": self::getResource("/pkgA/lib/") as{TypeError} self::Folder*}, <core::String*, self::Folder*>{"pkgB": self::getResource("/pkgB/lib/") as{TypeError} self::Folder*});
+  self::Foo<core::List<self::Folder*>*>* foo = new self::Foo::•<core::List<self::Folder*>*>(core::_GrowableList::_literal1<self::Folder*>(self::getResource("/pkgA/lib/") as{TypeError} self::Folder*));
 }
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.strong.transformed.expect
index e547269..e0d92ec 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.strong.transformed.expect
@@ -3,8 +3,8 @@
 import "dart:core" as core;
 
 static method strings() → core::List<core::String*>* {
-  core::Iterable<core::String*>* stuff = <dynamic>[].{core::Iterable::expand}<core::String*>((dynamic i) → core::List<core::String*>* {
-    return <core::String*>[];
+  core::Iterable<core::String*>* stuff = core::_GrowableList::•<dynamic>(0).{core::Iterable::expand}<core::String*>((dynamic i) → core::List<core::String*>* {
+    return core::_GrowableList::•<core::String*>(0);
   });
   return stuff.{core::Iterable::toList}();
 }
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.strong.transformed.expect
index d675a14..a2a130e 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.strong.transformed.expect
@@ -105,7 +105,7 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method test() → dynamic {
-  core::List<self::Foo*>* list = <self::Foo*>[];
+  core::List<self::Foo*>* list = core::_GrowableList::•<self::Foo*>(0);
   {
     core::Iterator<self::Foo*>* :sync-for-iterator = list.{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.strong.transformed.expect
index 5fbc81e..468a854 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<() →* core::Object*>* v = <() →* core::Object*>[#C1, #C2];
+static field core::List<() →* core::Object*>* v = core::_GrowableList::_literal2<() →* core::Object*>(#C1, #C2);
 static method f() → core::int*
   return null;
 static method g() → core::String*
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.strong.transformed.expect
index 5db9025..302d4f1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<((core::String*) →* core::int*) →* core::Object*>* v = <((core::String*) →* core::int*) →* core::Object*>[#C1, #C2];
+static field core::List<((core::String*) →* core::int*) →* core::Object*>* v = core::_GrowableList::_literal2<((core::String*) →* core::int*) →* core::Object*>(#C1, #C2);
 static method f((core::String*) →* core::int* x) → core::int*
   return null;
 static method g((core::String*) →* core::int* x) → core::String*
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.strong.transformed.expect
index 7d05c01..d3dbe88 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<({x: core::int*}) →* core::Object*>* v = <({x: core::int*}) →* core::Object*>[#C1, #C2];
+static field core::List<({x: core::int*}) →* core::Object*>* v = core::_GrowableList::_literal2<({x: core::int*}) →* core::Object*>(#C1, #C2);
 static method f({core::int* x = #C3}) → core::int*
   return null;
 static method g({core::int* x = #C3}) → core::String*
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.strong.transformed.expect
index 2eb4e4d..d9781ac 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<([core::int*]) →* core::Object*>* v = <([core::int*]) →* core::Object*>[#C1, #C2];
+static field core::List<([core::int*]) →* core::Object*>* v = core::_GrowableList::_literal2<([core::int*]) →* core::Object*>(#C1, #C2);
 static method f([core::int* x = #C3]) → core::int*
   return null;
 static method g([core::int* x = #C3]) → core::String*
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.strong.transformed.expect
index 5a739ef..a8897a0 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<(core::int*) →* core::Object*>* v = <(core::int*) →* core::Object*>[#C1, #C2];
+static field core::List<(core::int*) →* core::Object*>* v = core::_GrowableList::_literal2<(core::int*) →* core::Object*>(#C1, #C2);
 static method f(core::int* x) → core::int*
   return null;
 static method g(core::int* x) → core::String*
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.strong.transformed.expect
index f378eb9..f770ccb 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.strong.transformed.expect
@@ -11,7 +11,7 @@
 static method bar() → void {
   dynamic list;
   try {
-    list = <core::String*>[];
+    list = core::_GrowableList::•<core::String*>(0);
   }
   on dynamic catch(final dynamic _) {
     return;
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.strong.transformed.expect
index 87ba7a9..08d625d 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.strong.transformed.expect
@@ -2,13 +2,13 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::int*>* a = <core::int*>[];
-static field core::List<core::double*>* b = <core::double*>[1.0, 2.0, 3.0];
-static field core::List<core::List<core::int*>*>* c = <core::List<core::int*>*>[];
-static field core::List<dynamic>* d = <dynamic>[1, 2.0, false];
+static field core::List<core::int*>* a = core::_GrowableList::•<core::int*>(0);
+static field core::List<core::double*>* b = core::_GrowableList::_literal3<core::double*>(1.0, 2.0, 3.0);
+static field core::List<core::List<core::int*>*>* c = core::_GrowableList::•<core::List<core::int*>*>(0);
+static field core::List<dynamic>* d = core::_GrowableList::_literal3<dynamic>(1, 2.0, false);
 static method main() → dynamic {
-  core::List<core::int*>* a = <core::int*>[];
-  core::List<core::double*>* b = <core::double*>[1.0, 2.0, 3.0];
-  core::List<core::List<core::int*>*>* c = <core::List<core::int*>*>[];
-  core::List<dynamic>* d = <dynamic>[1, 2.0, false];
+  core::List<core::int*>* a = core::_GrowableList::•<core::int*>(0);
+  core::List<core::double*>* b = core::_GrowableList::_literal3<core::double*>(1.0, 2.0, 3.0);
+  core::List<core::List<core::int*>*>* c = core::_GrowableList::•<core::List<core::int*>*>(0);
+  core::List<dynamic>* d = core::_GrowableList::_literal3<dynamic>(1, 2.0, false);
 }
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/list_literals.dart.strong.transformed.expect
index cf02cf7..6714e68 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literals.dart.strong.transformed.expect
@@ -18,7 +18,7 @@
 import "dart:core" as core;
 
 static method test1() → dynamic {
-  core::List<core::int*>* x = <core::int*>[1, 2, 3];
+  core::List<core::int*>* x = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
   x.{core::List::add}(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:10:70: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
   x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
                                                                      ^" in "hi" as{TypeError} core::int*);
@@ -29,7 +29,7 @@
   core::List<core::num*>* y = x;
 }
 static method test2() → dynamic {
-  core::List<core::num*>* x = <core::num*>[1, 2.0, 3];
+  core::List<core::num*>* x = core::_GrowableList::_literal3<core::num*>(1, 2.0, 3);
   x.{core::List::add}(let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:18:70: Error: The argument type 'String' can't be assigned to the parameter type 'num'.
   x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
                                                                      ^" in "hi" as{TypeError} core::num*);
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect
index 56e22ce..e5fb9e6 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 static method test1() → dynamic {
-  core::List<Null>* x = <Null>[null];
+  core::List<Null>* x = core::_GrowableList::_literal1<Null>(null);
   x.{core::List::add}(42 as{TypeError} Null);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.strong.transformed.expect
index 03e500a..0c92bb15 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.strong.transformed.expect
@@ -17,8 +17,8 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::int*>* x1 = <core::int*>[1, 2, 3];
-static field core::List<core::num*>* x2 = <core::num*>[1, 2.0, 3];
+static field core::List<core::int*>* x1 = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
+static field core::List<core::num*>* x2 = core::_GrowableList::_literal3<core::num*>(1, 2.0, 3);
 static method test1() → dynamic {
   self::x1.{core::List::add}(let final<BottomType> #t1 = invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:10:71: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
   x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect
index 57169ca..6c31a1f 100644
--- a/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/local_return_and_yield.dart.strong.transformed.expect
@@ -72,7 +72,7 @@
       function :sync_op(core::_SyncIterator<dynamic>* :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
         {
           {
-            :iterator.{core::_SyncIterator::_yieldEachIterable} = <(core::int*) →* core::int*>[(core::int* x) → core::int* => x];
+            :iterator.{core::_SyncIterator::_yieldEachIterable} = core::_GrowableList::_literal1<(core::int*) →* core::int*>((core::int* x) → core::int* => x);
             [yield] true;
           }
         }
@@ -129,7 +129,7 @@
         try {
           #L3:
           {
-            if(:controller.{asy::_AsyncStarStreamController::addStream}(asy::Stream::fromIterable<(core::int*) →* core::int*>(<(core::int*) →* core::int*>[(core::int* x) → core::int* => x])))
+            if(:controller.{asy::_AsyncStarStreamController::addStream}(asy::Stream::fromIterable<(core::int*) →* core::int*>(core::_GrowableList::_literal1<(core::int*) →* core::int*>((core::int* x) → core::int* => x))))
               return null;
             else
               [yield] null;
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/non_const_invocation.dart.strong.transformed.expect
index 5049806..939a1a6 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart.strong.transformed.expect
@@ -16,9 +16,9 @@
   get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
     return new self::Bar::•<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>();
   get v5() → core::List<self::Foo::T*>*
-    return <self::Foo::T*>[];
+    return core::_GrowableList::•<self::Foo::T*>(0);
   get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
-    return <(self::Foo::T*) →* self::Foo::T*>[];
+    return core::_GrowableList::•<(self::Foo::T*) →* self::Foo::T*>(0);
   get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
     return <self::Foo::T*, self::Foo::T*>{};
   get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.strong.transformed.expect
index ec63329..7c4682e 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.strong.transformed.expect
@@ -4,6 +4,6 @@
 
 static method main() → dynamic {
   core::List<core::int*>* x;
-  core::List<core::int*>* y = let final core::List<core::int*>* #t1 = x in #t1.{core::List::==}(null) ?{core::List<core::int*>*} <core::int*>[] : #t1;
+  core::List<core::int*>* y = let final core::List<core::int*>* #t1 = x in #t1.{core::List::==}(null) ?{core::List<core::int*>*} core::_GrowableList::•<core::int*>(0) : #t1;
   core::List<core::int*>* z = y;
 }
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.strong.transformed.expect
index c4ca3fe..02d005c 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.strong.transformed.expect
@@ -4,5 +4,5 @@
 
 static method main() → dynamic {
   core::List<core::int*>* x;
-  core::List<core::num*>* y = let final core::List<core::int*>* #t1 = x in #t1.{core::List::==}(null) ?{core::List<core::num*>*} <core::num*>[] : #t1;
+  core::List<core::num*>* y = let final core::List<core::int*>* #t1 = x in #t1.{core::List::==}(null) ?{core::List<core::num*>*} core::_GrowableList::•<core::num*>(0) : #t1;
 }
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.strong.transformed.expect
index 85b4185..32c55ca 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.strong.transformed.expect
@@ -24,5 +24,5 @@
 }
 static field self::C* c = new self::C::•();
 static field () →* core::int* function_ref = self::c.{self::C::function};
-static field core::List<() →* core::int*>* function_ref_list = <() →* core::int*>[self::c.{self::C::function}];
+static field core::List<() →* core::int*>* function_ref_list = core::_GrowableList::_literal1<() →* core::int*>(self::c.{self::C::function});
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_set.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/property_set.dart.strong.transformed.expect
index 286b94e..29bdd38 100644
--- a/pkg/front_end/testcases/inference/property_set.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/property_set.dart.strong.transformed.expect
@@ -23,23 +23,23 @@
   self::A<core::int*>* a_int = new self::A::•<core::int*>();
   self::A<core::Object*>* a_object = new self::A::•<core::Object*>();
   self::A<dynamic>* a_dynamic = new self::A::•<dynamic>();
-  core::List<core::int*>* x_int = a_int.{self::A::x} = <core::int*>[0];
-  core::List<core::int*>* y_int = a_int.{self::A::y} = <core::int*>[0];
-  core::List<core::Object*>* x_object = a_object.{self::A::x} = <core::Object*>[0];
-  core::List<core::Object*>* y_object = a_object.{self::A::y} = <core::Object*>[0];
-  core::List<dynamic>* x_dynamic = a_dynamic.{self::A::x} = <dynamic>[0];
-  core::List<dynamic>* y_dynamic = a_dynamic.{self::A::y} = <dynamic>[0];
-  core::List<core::int*>* x_int_explicit = a_int.{self::A::x} = <core::int*>[0];
-  core::List<core::int*>* y_int_explicit = a_int.{self::A::y} = <core::int*>[0];
-  core::List<core::int*>* x_object_explicit = a_object.{self::A::x} = <core::int*>[0];
-  core::List<core::int*>* y_object_explicit = a_object.{self::A::y} = <core::int*>[0];
-  core::List<core::int*>* x_dynamic_explicit = a_dynamic.{self::A::x} = <core::int*>[0];
-  core::List<core::int*>* y_dynamic_explicit = a_dynamic.{self::A::y} = <core::int*>[0];
-  core::List<core::int*>* x_int_downward = a_int.{self::A::x} = <core::int*>[0];
-  core::List<core::int*>* y_int_downward = a_int.{self::A::y} = <core::int*>[0];
-  core::List<core::int*>* x_object_downward = (a_object.{self::A::x} = <core::Object*>[0]) as{TypeError} core::List<core::int*>*;
-  core::List<core::int*>* y_object_downward = (a_object.{self::A::y} = <core::Object*>[0]) as{TypeError} core::List<core::int*>*;
-  core::List<core::int*>* x_dynamic_downward = (a_dynamic.{self::A::x} = <dynamic>[0]) as{TypeError} core::List<core::int*>*;
-  core::List<core::int*>* y_dynamic_downward = (a_dynamic.{self::A::y} = <dynamic>[0]) as{TypeError} core::List<core::int*>*;
+  core::List<core::int*>* x_int = a_int.{self::A::x} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* y_int = a_int.{self::A::y} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::Object*>* x_object = a_object.{self::A::x} = core::_GrowableList::_literal1<core::Object*>(0);
+  core::List<core::Object*>* y_object = a_object.{self::A::y} = core::_GrowableList::_literal1<core::Object*>(0);
+  core::List<dynamic>* x_dynamic = a_dynamic.{self::A::x} = core::_GrowableList::_literal1<dynamic>(0);
+  core::List<dynamic>* y_dynamic = a_dynamic.{self::A::y} = core::_GrowableList::_literal1<dynamic>(0);
+  core::List<core::int*>* x_int_explicit = a_int.{self::A::x} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* y_int_explicit = a_int.{self::A::y} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* x_object_explicit = a_object.{self::A::x} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* y_object_explicit = a_object.{self::A::y} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* x_dynamic_explicit = a_dynamic.{self::A::x} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* y_dynamic_explicit = a_dynamic.{self::A::y} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* x_int_downward = a_int.{self::A::x} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* y_int_downward = a_int.{self::A::y} = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::int*>* x_object_downward = (a_object.{self::A::x} = core::_GrowableList::_literal1<core::Object*>(0)) as{TypeError} core::List<core::int*>*;
+  core::List<core::int*>* y_object_downward = (a_object.{self::A::y} = core::_GrowableList::_literal1<core::Object*>(0)) as{TypeError} core::List<core::int*>*;
+  core::List<core::int*>* x_dynamic_downward = (a_dynamic.{self::A::x} = core::_GrowableList::_literal1<dynamic>(0)) as{TypeError} core::List<core::int*>*;
+  core::List<core::int*>* y_dynamic_downward = (a_dynamic.{self::A::y} = core::_GrowableList::_literal1<dynamic>(0)) as{TypeError} core::List<core::int*>*;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.strong.transformed.expect
index d1ef879..b689fb3 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  field core::List<core::num*>* x = <core::num*>[0];
+  field core::List<core::num*>* x = core::_GrowableList::_literal1<core::num*>(0);
   synthetic constructor •() → self::C*
     : super core::Object::•()
     ;
@@ -18,5 +18,5 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<core::num*>* y = <core::num*>[0];
+static field core::List<core::num*>* y = core::_GrowableList::_literal1<core::num*>(0);
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect
index 340170ef..659f28e 100644
--- a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.strong.transformed.expect
@@ -71,7 +71,7 @@
     function :sync_op(core::_SyncIterator<dynamic>* :iterator, dynamic :exception, dynamic :stack_trace) → core::bool* yielding {
       {
         {
-          :iterator.{core::_SyncIterator::_yieldEachIterable} = <(core::int*) →* core::int*>[(core::int* x) → core::int* => x];
+          :iterator.{core::_SyncIterator::_yieldEachIterable} = core::_GrowableList::_literal1<(core::int*) →* core::int*>((core::int* x) → core::int* => x);
           [yield] true;
         }
       }
@@ -128,7 +128,7 @@
       try {
         #L3:
         {
-          if(:controller.{asy::_AsyncStarStreamController::addStream}(asy::Stream::fromIterable<(core::int*) →* core::int*>(<(core::int*) →* core::int*>[(core::int* x) → core::int* => x])))
+          if(:controller.{asy::_AsyncStarStreamController::addStream}(asy::Stream::fromIterable<(core::int*) →* core::int*>(core::_GrowableList::_literal1<(core::int*) →* core::int*>((core::int* x) → core::int* => x))))
             return null;
           else
             [yield] null;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.strong.transformed.expect
index 89d0bd3..951265d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {
   self::v;
 }
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.strong.transformed.expect
index 2e3ca1e6..c8e4727 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.strong.transformed.expect
@@ -31,5 +31,5 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect
index 322ca8f..fd6b5b4 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {
   self::v;
 }
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.strong.transformed.expect
index b005e12..bff0cad 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {
   self::v;
 }
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.strong.transformed.expect
index 938f89a..c983f6b 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.strong.transformed.expect
@@ -31,5 +31,5 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect
index 129610f..cf09c4f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {
   self::v;
 }
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.strong.transformed.expect
index 4700f6a..6a725de 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.strong.transformed.expect
@@ -8,4 +8,4 @@
   });
 }
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.strong.transformed.expect
index 00386c6..9c69fce 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.strong.transformed.expect
@@ -8,7 +8,7 @@
   });
 }
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 
 constants  {
   #C1 = tearoff self::f
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.strong.transformed.expect
index bc2b33d..5b31f4c 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<dynamic>* v = <dynamic>[() → core::int* {
+  core::List<dynamic>* v = core::_GrowableList::_literal1<dynamic>(() → core::int* {
     return 1;
-  }];
+  });
 }
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.strong.transformed.expect
index b747c51..71c0bd2 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.strong.transformed.expect
@@ -4,7 +4,7 @@
 
 typedef F = () →* core::int*;
 static method main() → dynamic {
-  core::List<() →* core::int*>* v = <() →* core::int*>[() → core::int* {
+  core::List<() →* core::int*>* v = core::_GrowableList::_literal1<() →* core::int*>(() → core::int* {
     return 1;
-  }];
+  });
 }
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.strong.transformed.expect
index 5b2da50..cda2936 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 static method main() → dynamic {
-  core::List<() →* core::int*>* v = <() →* core::int*>[() → core::int* {
+  core::List<() →* core::int*>* v = core::_GrowableList::_literal1<() →* core::int*>(() → core::int* {
     return 1;
-  }];
+  });
 }
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.strong.transformed.expect
index 102bdb33..f2717b8 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
     : super core::Object::•()
     ;
   method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
-    return <self::C::f::T*>[g.call()];
+    return core::_GrowableList::_literal1<self::C::f::T*>(g.call());
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
   abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.strong.transformed.expect
index 9921b26..c33bf91 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
     : super core::Object::•()
     ;
   method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
-    return <self::C::f::T*>[g.call()];
+    return core::_GrowableList::_literal1<self::C::f::T*>(g.call());
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
   abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.strong.transformed.expect
index 9921b26..c33bf91 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
     : super core::Object::•()
     ;
   method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
-    return <self::C::f::T*>[g.call()];
+    return core::_GrowableList::_literal1<self::C::f::T*>(g.call());
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
   abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.strong.transformed.expect
index f211b44..d837da1 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.strong.transformed.expect
@@ -33,5 +33,5 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::B<core::int*>*>* t3 = <self::B<core::int*>*>[new self::B::•<core::int*>(3)];
+static field core::List<self::B<core::int*>*>* t3 = core::_GrowableList::_literal1<self::B<core::int*>*>(new self::B::•<core::int*>(3));
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.strong.transformed.expect
index aaa7123..8a0e9d7 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.strong.transformed.expect
@@ -17,5 +17,5 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::A<core::int*>*>* t2 = <self::A<core::int*>*>[new self::A::•<core::int*>(2)];
+static field core::List<self::A<core::int*>*>* t2 = core::_GrowableList::_literal1<self::A<core::int*>*>(new self::A::•<core::int*>(2));
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.strong.transformed.expect
index d239253..c46cd53 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::double*>* a = <core::double*>[];
+static field core::List<core::double*>* a = core::_GrowableList::•<core::double*>(0);
 static field core::double* b = let final core::List<core::double*>* #t1 = self::a in let final core::int* #t2 = 0 in let final core::double* #t3 = 1.0 in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3) in #t3;
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect
index 30af47a..e068583 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<Null>* x = <Null>[null];
+static field core::List<Null>* x = core::_GrowableList::_literal1<Null>(null);
 static method main() → dynamic {
   self::x;
 }
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.strong.transformed.expect
index 4151ea0..c23ee62 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.strong.transformed.expect
@@ -26,7 +26,7 @@
 static field core::int* field_ref = self::c.{self::C::field};
 static field core::int* getter_ref = self::c.{self::C::getter};
 static field () →* core::int* function_ref = self::c.{self::C::function};
-static field core::List<core::int*>* field_ref_list = <core::int*>[self::c.{self::C::field}];
-static field core::List<core::int*>* getter_ref_list = <core::int*>[self::c.{self::C::getter}];
-static field core::List<() →* core::int*>* function_ref_list = <() →* core::int*>[self::c.{self::C::function}];
+static field core::List<core::int*>* field_ref_list = core::_GrowableList::_literal1<core::int*>(self::c.{self::C::field});
+static field core::List<core::int*>* getter_ref_list = core::_GrowableList::_literal1<core::int*>(self::c.{self::C::getter});
+static field core::List<() →* core::int*>* function_ref_list = core::_GrowableList::_literal1<() →* core::int*>(self::c.{self::C::function});
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect
index 129610f..cf09c4f 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {
   self::v;
 }
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect
index 129610f..cf09c4f 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.strong.transformed.expect
@@ -6,7 +6,7 @@
   return 1;
 });
 static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
-  return <self::f::T*>[g.call()];
+  return core::_GrowableList::_literal1<self::f::T*>(g.call());
 static method main() → dynamic {
   self::v;
 }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.strong.transformed.expect
index 7089cfc..c250022 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.strong.transformed.expect
@@ -22,7 +22,7 @@
     : super core::Object::•()
     ;
   method foo() → dynamic {
-    core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+    core::List<self::A<core::num*>*>* a = core::_GrowableList::•<self::A<core::num*>*>(0);
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -36,5 +36,5 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+  core::List<self::A<core::num*>*>* a = core::_GrowableList::•<self::A<core::num*>*>(0);
 }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.strong.transformed.expect
index 186472b..55af917 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.strong.transformed.expect
@@ -22,8 +22,8 @@
     : super core::Object::•()
     ;
   method fun() → dynamic {
-    core::List<self::A<self::B::U*>*>* foo = <self::A<self::B::U*>*>[];
-    core::List<self::A<core::num*>*>* bar = <self::A<core::num*>*>[];
+    core::List<self::A<self::B::U*>*>* foo = core::_GrowableList::•<self::A<self::B::U*>*>(0);
+    core::List<self::A<core::num*>*>* bar = core::_GrowableList::•<self::A<core::num*>*>(0);
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.strong.transformed.expect
index 0508b6c..7f370d6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.strong.transformed.expect
@@ -8,7 +8,7 @@
     : super core::Object::•()
     ;
   method foo() → dynamic {
-    core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+    core::List<(core::num*) →* dynamic>* a = core::_GrowableList::•<(core::num*) →* dynamic>(0);
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -22,5 +22,5 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+  core::List<(core::num*) →* dynamic>* a = core::_GrowableList::•<(core::num*) →* dynamic>(0);
 }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.strong.transformed.expect
index cf2c35d..f92729b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.strong.transformed.expect
@@ -8,8 +8,8 @@
     : super core::Object::•()
     ;
   method fun() → dynamic {
-    core::List<(self::B::U*) →* dynamic>* foo = <(self::B::U*) →* dynamic>[];
-    core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
+    core::List<(self::B::U*) →* dynamic>* foo = core::_GrowableList::•<(self::B::U*) →* dynamic>(0);
+    core::List<(core::num*) →* dynamic>* bar = core::_GrowableList::•<(core::num*) →* dynamic>(0);
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
@@ -23,5 +23,5 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
+  core::List<(core::num*) →* dynamic>* bar = core::_GrowableList::•<(core::num*) →* dynamic>(0);
 }
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect
index 52cdb64..a4aa8b0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.strong.transformed.expect
@@ -17,6 +17,6 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::C<core::num*, (Null) →* void>*>* lc = <self::C<core::num*, (Null) →* void>*>[];
+static field core::List<self::C<core::num*, (Null) →* void>*>* lc = core::_GrowableList::•<self::C<core::num*, (Null) →* void>*>(0);
 static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc = <self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>{};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect
index eaaf4d5..c874a62 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.strong.transformed.expect
@@ -32,8 +32,8 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld = <self::D<(Null, Null) →* void, (Null, Null) →* void>*>[];
+static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld = core::_GrowableList::•<self::D<(Null, Null) →* void, (Null, Null) →* void>*>(0);
 static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md = <self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>{};
-static field core::List<self::E<(Null) →* void>*>* le = <self::E<(Null) →* void>*>[];
+static field core::List<self::E<(Null) →* void>*>* le = core::_GrowableList::•<self::E<(Null) →* void>*>(0);
 static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me = <self::E<(Null) →* void>*, self::E<(Null) →* void>*>{};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.strong.transformed.expect
index f4627cb..4c4e54a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.strong.transformed.expect
@@ -77,12 +77,12 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::C<dynamic, self::A<dynamic>*>*>* lc = <self::C<dynamic, self::A<dynamic>*>*>[];
+static field core::List<self::C<dynamic, self::A<dynamic>*>*>* lc = core::_GrowableList::•<self::C<dynamic, self::A<dynamic>*>*>(0);
 static field core::Map<self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>* mc = <self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>{};
-static field core::List<self::D<core::num*, self::A<core::num*>*>*>* ld = <self::D<core::num*, self::A<core::num*>*>*>[];
+static field core::List<self::D<core::num*, self::A<core::num*>*>*>* ld = core::_GrowableList::•<self::D<core::num*, self::A<core::num*>*>*>(0);
 static field core::Map<self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>* md = <self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>{};
-static field core::List<self::E<dynamic, () →* dynamic>*>* le = <self::E<dynamic, () →* dynamic>*>[];
+static field core::List<self::E<dynamic, () →* dynamic>*>* le = core::_GrowableList::•<self::E<dynamic, () →* dynamic>*>(0);
 static field core::Map<self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>* me = <self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>{};
-static field core::List<self::F<core::num*, () →* core::num*>*>* lf = <self::F<core::num*, () →* core::num*>*>[];
+static field core::List<self::F<core::num*, () →* core::num*>*>* lf = core::_GrowableList::•<self::F<core::num*, () →* core::num*>*>(0);
 static field core::Map<self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>* mf = <self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>{};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.strong.transformed.expect
index b532365..555394a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.strong.transformed.expect
@@ -77,10 +77,10 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* ld = <self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>[];
+static field core::List<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* ld = core::_GrowableList::•<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>(0);
 static field core::Map<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* md = <self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>{};
-static field core::List<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* le = <self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>[];
+static field core::List<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* le = core::_GrowableList::•<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>(0);
 static field core::Map<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* me = <self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>{};
-static field core::List<self::F<() →* dynamic>*>* lf = <self::F<() →* dynamic>*>[];
+static field core::List<self::F<() →* dynamic>*>* lf = core::_GrowableList::•<self::F<() →* dynamic>*>(0);
 static field core::Map<self::F<() →* dynamic>*, self::F<() →* dynamic>*>* mf = <self::F<() →* dynamic>*, self::F<() →* dynamic>*>{};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect
index edf4bbf..71cc20d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.strong.transformed.expect
@@ -47,8 +47,8 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc = <self::C<dynamic, (Null) →* dynamic>*>[];
+static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc = core::_GrowableList::•<self::C<dynamic, (Null) →* dynamic>*>(0);
 static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc = <self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld = <self::D<core::num*, (Null) →* core::num*>*>[];
+static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld = core::_GrowableList::•<self::D<core::num*, (Null) →* core::num*>*>(0);
 static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md = <self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>{};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.strong.transformed.expect
index 33fac9a..1468342 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.strong.transformed.expect
@@ -17,5 +17,5 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+static field core::List<self::A<core::num*>*>* a = core::_GrowableList::•<self::A<core::num*>*>(0);
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.strong.transformed.expect
index a42b37a..6c9f709 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.strong.transformed.expect
@@ -18,8 +18,8 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 class B<S extends core::Object* = dynamic> extends core::Object {
-  final field core::List<self::A<self::B::S*>*>* foo = <self::A<self::B::S*>*>[];
-  final field core::List<self::A<core::num*>*>* bar = <self::A<core::num*>*>[];
+  final field core::List<self::A<self::B::S*>*>* foo = core::_GrowableList::•<self::A<self::B::S*>*>(0);
+  final field core::List<self::A<core::num*>*>* bar = core::_GrowableList::•<self::A<core::num*>*>(0);
   synthetic constructor •() → self::B<self::B::S*>*
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect
index 57e2111..57d3ec5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.strong.transformed.expect
@@ -152,22 +152,22 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*>[];
+static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1 = core::_GrowableList::•<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>(0);
 static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*>[];
+static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2 = core::_GrowableList::•<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>(0);
 static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
+static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3 = core::_GrowableList::•<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>(0);
 static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
+static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4 = core::_GrowableList::•<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>(0);
 static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
+static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1 = core::_GrowableList::•<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>(0);
 static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
+static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2 = core::_GrowableList::•<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>(0);
 static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
+static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3 = core::_GrowableList::•<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>(0);
 static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
+static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4 = core::_GrowableList::•<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>(0);
 static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::E<(Null) →* dynamic>*>* le = <self::E<(Null) →* dynamic>*>[];
+static field core::List<self::E<(Null) →* dynamic>*>* le = core::_GrowableList::•<self::E<(Null) →* dynamic>*>(0);
 static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me = <self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>{};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.strong.transformed.expect
index e5555e7..94f6c04 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.strong.transformed.expect
@@ -3,5 +3,5 @@
 import "dart:core" as core;
 
 typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
-static field core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+static field core::List<(core::num*) →* dynamic>* a = core::_GrowableList::•<(core::num*) →* dynamic>(0);
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.strong.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.strong.transformed.expect
index 8f09136..db93d8e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.strong.transformed.expect
@@ -4,8 +4,8 @@
 
 typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
 class B<S extends core::Object* = dynamic> extends core::Object {
-  final field core::List<(self::B::S*) →* dynamic>* foo = <(self::B::S*) →* dynamic>[];
-  final field core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
+  final field core::List<(self::B::S*) →* dynamic>* foo = core::_GrowableList::•<(self::B::S*) →* dynamic>(0);
+  final field core::List<(core::num*) →* dynamic>* bar = core::_GrowableList::•<(core::num*) →* dynamic>(0);
   synthetic constructor •() → self::B<self::B::S*>*
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/late_lowering/issue40093.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40093.dart.strong.transformed.expect
index c24f503..9d0dbc9 100644
--- a/pkg/front_end/testcases/late_lowering/issue40093.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40093.dart.strong.transformed.expect
@@ -20,7 +20,7 @@
     core::print(i);
   }
   {
-    core::Iterator<core::int> :sync-for-iterator = <core::int>[].{core::Iterable::iterator};
+    core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::int i = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/late_lowering/issue40093.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/issue40093.dart.weak.transformed.expect
index c24f503..9d0dbc9 100644
--- a/pkg/front_end/testcases/late_lowering/issue40093.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue40093.dart.weak.transformed.expect
@@ -20,7 +20,7 @@
     core::print(i);
   }
   {
-    core::Iterator<core::int> :sync-for-iterator = <core::int>[].{core::Iterable::iterator};
+    core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::int i = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.strong.transformed.expect
index 6e6d809..6854c03 100644
--- a/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
   no-such-method-forwarder get /* from org-dartlang-testcase:///issue41436c_lib.dart */ _#A#x() → core::int?
     return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?;
   no-such-method-forwarder set /* from org-dartlang-testcase:///issue41436c_lib.dart */ _#A#x(core::int? value) → void
-    return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.weak.transformed.expect
index bf446b5..8d7842a 100644
--- a/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/issue41436c/issue41436c.dart.weak.transformed.expect
@@ -14,9 +14,9 @@
   no-such-method-forwarder get /* from org-dartlang-testcase:///issue41436c_lib.dart */ _#A#x() → core::int?
     return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int?;
   no-such-method-forwarder set /* from org-dartlang-testcase:///issue41436c_lib.dart */ _#A#x#isSet(core::bool value) → void
-    return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder set /* from org-dartlang-testcase:///issue41436c_lib.dart */ _#A#x(core::int? value) → void
-    return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{core::Object::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
index f251299..12f0ed3 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.strong.transformed.expect
@@ -122,7 +122,7 @@
     core::print("baz");
   }
   {
-    core::Iterator<core::String> :sync-for-iterator = <core::String>["baz"].{core::Iterable::iterator};
+    core::Iterator<core::String> :sync-for-iterator = core::_GrowableList::_literal1<core::String>("baz").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String s = :sync-for-iterator.{core::Iterator::current};
       {
@@ -131,7 +131,7 @@
     }
   }
   block {
-    final core::List<core::int> #t7 = <core::int>[];
+    final core::List<core::int> #t7 = core::_GrowableList::•<core::int>(0);
     for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1))
       #t7.{core::List::add}{Invariant}(i);
   } =>#t7;
@@ -153,7 +153,7 @@
       #L1:
       {
         {
-          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(<core::String>["hest"]);
+          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(core::_GrowableList::_literal1<core::String>("hest"));
           asy::_StreamIterator<core::String>? :for-iterator = new asy::_StreamIterator::•<core::String>(:stream);
           try
             #L2:
diff --git a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
index 11b98b1..3bcf2b7 100644
--- a/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/later.dart.weak.transformed.expect
@@ -142,7 +142,7 @@
     core::print("baz");
   }
   {
-    core::Iterator<core::String> :sync-for-iterator = <core::String>["baz"].{core::Iterable::iterator};
+    core::Iterator<core::String> :sync-for-iterator = core::_GrowableList::_literal1<core::String>("baz").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String s = :sync-for-iterator.{core::Iterator::current};
       {
@@ -151,7 +151,7 @@
     }
   }
   block {
-    final core::List<core::int> #t7 = <core::int>[];
+    final core::List<core::int> #t7 = core::_GrowableList::•<core::int>(0);
     for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1))
       #t7.{core::List::add}{Invariant}(i);
   } =>#t7;
@@ -173,7 +173,7 @@
       #L1:
       {
         {
-          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(<core::String>["hest"]);
+          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(core::_GrowableList::_literal1<core::String>("hest"));
           asy::_StreamIterator<core::String>? :for-iterator = new asy::_StreamIterator::•<core::String>(:stream);
           try
             #L2:
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
index 78c374f..c299301 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.strong.transformed.expect
@@ -213,14 +213,14 @@
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   A a = x; // Error.
         ^" in let self::B? #t4 = x in #t4.==(null) ?{self::A} #t4 as{TypeError,ForNonNullableByDefault} self::A : #t4{self::A};
-  <self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
+  core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   <A>[...l]; // Error.
-         ^"];
-  <self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:30:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+         ^");
+  core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:30:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   <A>[...l2]; // Error.
-         ^"];
+         ^");
   <self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
@@ -333,12 +333,12 @@
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   List<A> y = x; // Error.
               ^" in x as{TypeError,ForNonNullableByDefault} core::List<self::A>;
-  <core::List<self::A>>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:55:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
+  core::_GrowableList::_literal1<core::List<self::A>>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:55:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   <List<A>>[...l]; // Error.
-               ^"];
+               ^");
   <core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:56:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
diff --git a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
index 1dac388..e439ef1 100644
--- a/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability_error_messages.dart.weak.transformed.expect
@@ -213,14 +213,14 @@
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   A a = x; // Error.
         ^" in x;
-  <self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
+  core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:29:10: Error: Can't assign spread elements of type 'B?' to collection elements of type 'A' because 'B?' is nullable and 'A' isn't.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   <A>[...l]; // Error.
-         ^"];
-  <self::A>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:30:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
+         ^");
+  core::_GrowableList::_literal1<self::A>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:30:10: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   <A>[...l2]; // Error.
-         ^"];
+         ^");
   <self::A, self::A>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:31:13: Error: Can't assign spread entry keys of type 'B?' to map entry keys of type 'A' because 'B?' is nullable and 'A' isn't.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
@@ -333,12 +333,12 @@
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   List<A> y = x; // Error.
               ^" in x;
-  <core::List<self::A>>[invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:55:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
+  core::_GrowableList::_literal1<core::List<self::A>>(invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:55:16: Error: Can't assign spread elements of type 'List<B?>' to collection elements of type 'List<A>' because 'B?' is nullable and 'A' isn't.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
  - 'A' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
   <List<A>>[...l]; // Error.
-               ^"];
+               ^");
   <core::List<self::A>, core::List<self::A>>{invalid-expression "pkg/front_end/testcases/nnbd/assignability_error_messages.dart:56:25: Error: Can't assign spread entry keys of type 'List<B?>' to map entry keys of type 'List<A>' because 'B?' is nullable and 'A' isn't.
  - 'List' is from 'dart:core'.
  - 'B' is from 'pkg/front_end/testcases/nnbd/assignability_error_messages.dart'.
diff --git a/pkg/front_end/testcases/nnbd/const_is.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/const_is.dart.strong.transformed.expect
index 1ba909d..deac28e 100644
--- a/pkg/front_end/testcases/nnbd/const_is.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/const_is.dart.strong.transformed.expect
@@ -37,7 +37,7 @@
     : super core::Object::•()
     ;
 }
-static field core::bool inStrongMode = !(<core::int?>[] is{ForNonNullableByDefault} core::List<core::int>);
+static field core::bool inStrongMode = !(core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>);
 static const field core::bool f_is_fType = #C1;
 static const field core::bool f_is_gType = #C2;
 static const field core::bool g_is_fType = #C1;
diff --git a/pkg/front_end/testcases/nnbd/const_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/const_is.dart.weak.transformed.expect
index 5d2b393..3817966 100644
--- a/pkg/front_end/testcases/nnbd/const_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/const_is.dart.weak.transformed.expect
@@ -37,7 +37,7 @@
     : super core::Object::•()
     ;
 }
-static field core::bool inStrongMode = !(<core::int?>[] is{ForNonNullableByDefault} core::List<core::int>);
+static field core::bool inStrongMode = !(core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>);
 static const field core::bool f_is_fType = #C1;
 static const field core::bool f_is_gType = #C1;
 static const field core::bool g_is_fType = #C1;
diff --git a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect
index 99af770..76b3473 100644
--- a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.strong.transformed.expect
@@ -183,7 +183,7 @@
     : super self::_Class2&Object&TestMixin::•()
     ;
   method _test() → dynamic {
-    final self::PagingResponse<core::String> response = new self::PagingResponse::•<core::String>(new self::PagingResponseData::•<core::String>(<core::String>["test"]));
+    final self::PagingResponse<core::String> response = new self::PagingResponse::•<core::String>(new self::PagingResponseData::•<core::String>(core::_GrowableList::_literal1<core::String>("test")));
     this.{self::_Class2&Object&TestMixin::test}(asy::Future::value<self::PagingResponse<core::String>>(response));
   }
 }
diff --git a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect
index 99af770..76b3473 100644
--- a/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/flutter_issue64155.dart.weak.transformed.expect
@@ -183,7 +183,7 @@
     : super self::_Class2&Object&TestMixin::•()
     ;
   method _test() → dynamic {
-    final self::PagingResponse<core::String> response = new self::PagingResponse::•<core::String>(new self::PagingResponseData::•<core::String>(<core::String>["test"]));
+    final self::PagingResponse<core::String> response = new self::PagingResponse::•<core::String>(new self::PagingResponseData::•<core::String>(core::_GrowableList::_literal1<core::String>("test")));
     this.{self::_Class2&Object&TestMixin::test}(asy::Future::value<self::PagingResponse<core::String>>(response));
   }
 }
diff --git a/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect
index a4e5658..4b3f76a 100644
--- a/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/forin.dart.strong.transformed.expect
@@ -63,7 +63,7 @@
     }
   }
   block {
-    final core::List<core::int> #t3 = <core::int>[];
+    final core::List<core::int> #t3 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t4 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:10:18: Error: The type 'Iterable<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'Iterable<int>?' is nullable and 'Iterable<dynamic>' isn't.
  - 'Iterable' is from 'dart:core'.
@@ -87,7 +87,7 @@
     }
   }
   block {
-    final core::List<core::int> #t8 = <core::int>[];
+    final core::List<core::int> #t8 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t9 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:13:18: Error: The type 'List<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'List<int>?' is nullable and 'Iterable<dynamic>' isn't.
  - 'List' is from 'dart:core'.
@@ -115,7 +115,7 @@
     }
   }
   block {
-    final core::List<core::int> #t13 = <core::int>[];
+    final core::List<core::int> #t13 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t14 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:16:18: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Object' is from 'dart:core'.
@@ -146,7 +146,7 @@
     }
   }
   block {
-    final core::List<core::int> #t18 = <core::int>[];
+    final core::List<core::int> #t18 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t19 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:19:18: Error: The type 'Object?' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Object' is from 'dart:core'.
@@ -172,7 +172,7 @@
     }
   }
   block {
-    final core::List<core::int> #t21 = <core::int>[];
+    final core::List<core::int> #t21 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<core::int> :sync-for-iterator = i1.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -189,7 +189,7 @@
     }
   }
   block {
-    final core::List<core::int> #t22 = <core::int>[];
+    final core::List<core::int> #t22 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<core::int> :sync-for-iterator = l1.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -209,7 +209,7 @@
     }
   }
   block {
-    final core::List<core::int> #t24 = <core::int>[];
+    final core::List<core::int> #t24 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (d as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect
index 43b2e84..346bcb4 100644
--- a/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/forin.dart.weak.transformed.expect
@@ -63,7 +63,7 @@
     }
   }
   block {
-    final core::List<core::int> #t2 = <core::int>[];
+    final core::List<core::int> #t2 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t3 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:10:18: Error: The type 'Iterable<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'Iterable<int>?' is nullable and 'Iterable<dynamic>' isn't.
  - 'Iterable' is from 'dart:core'.
@@ -87,7 +87,7 @@
     }
   }
   block {
-    final core::List<core::int> #t5 = <core::int>[];
+    final core::List<core::int> #t5 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t6 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:13:18: Error: The type 'List<int>?' used in the 'for' loop must implement 'Iterable<dynamic>' because 'List<int>?' is nullable and 'Iterable<dynamic>' isn't.
  - 'List' is from 'dart:core'.
@@ -115,7 +115,7 @@
     }
   }
   block {
-    final core::List<core::int> #t9 = <core::int>[];
+    final core::List<core::int> #t9 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t10 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:16:18: Error: The type 'Object' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Object' is from 'dart:core'.
@@ -146,7 +146,7 @@
     }
   }
   block {
-    final core::List<core::int> #t14 = <core::int>[];
+    final core::List<core::int> #t14 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (let final<BottomType> #t15 = invalid-expression "pkg/front_end/testcases/nnbd/forin.dart:19:18: Error: The type 'Object?' used in the 'for' loop must implement 'Iterable<dynamic>'.
  - 'Object' is from 'dart:core'.
@@ -172,7 +172,7 @@
     }
   }
   block {
-    final core::List<core::int> #t17 = <core::int>[];
+    final core::List<core::int> #t17 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<core::int> :sync-for-iterator = i1.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -189,7 +189,7 @@
     }
   }
   block {
-    final core::List<core::int> #t18 = <core::int>[];
+    final core::List<core::int> #t18 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<core::int> :sync-for-iterator = l1.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -209,7 +209,7 @@
     }
   }
   block {
-    final core::List<core::int> #t20 = <core::int>[];
+    final core::List<core::int> #t20 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (d as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect
index c4ec443..91b9c97 100644
--- a/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/infer_if_null.dart.strong.transformed.expect
@@ -53,7 +53,7 @@
   core::String s2 = let final core::String? #t9 = s in #t9.{core::String::==}(null) ?{core::String} s = "bar" : #t9{core::String};
 }
 static method test4() → dynamic {
-  core::List<core::String?> list = <core::String?>[null];
+  core::List<core::String?> list = core::_GrowableList::_literal1<core::String?>(null);
   core::String s = let final core::List<core::String?> #t10 = list in let final core::int #t11 = 0 in let final core::String? #t12 = #t10.{core::List::[]}(#t11) in #t12.{core::String::==}(null) ?{core::String} let final core::String #t13 = "bar" in let final void #t14 = #t10.{core::List::[]=}(#t11, #t13) in #t13 : #t12{core::String};
 }
 static method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect
index c4ec443..91b9c97 100644
--- a/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/infer_if_null.dart.weak.transformed.expect
@@ -53,7 +53,7 @@
   core::String s2 = let final core::String? #t9 = s in #t9.{core::String::==}(null) ?{core::String} s = "bar" : #t9{core::String};
 }
 static method test4() → dynamic {
-  core::List<core::String?> list = <core::String?>[null];
+  core::List<core::String?> list = core::_GrowableList::_literal1<core::String?>(null);
   core::String s = let final core::List<core::String?> #t10 = list in let final core::int #t11 = 0 in let final core::String? #t12 = #t10.{core::List::[]}(#t11) in #t12.{core::String::==}(null) ?{core::String} let final core::String #t13 = "bar" in let final void #t14 = #t10.{core::List::[]=}(#t11, #t13) in #t13 : #t12{core::String};
 }
 static method E6|[]=(lowered final core::double #this, core::int index, core::String? value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/issue40093.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue40093.dart.strong.transformed.expect
index f5314e4..c7299a7 100644
--- a/pkg/front_end/testcases/nnbd/issue40093.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40093.dart.strong.transformed.expect
@@ -20,7 +20,7 @@
     core::print(i);
   }
   {
-    core::Iterator<core::int> :sync-for-iterator = <core::int>[].{core::Iterable::iterator};
+    core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::int i = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/nnbd/issue40093.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue40093.dart.weak.transformed.expect
index f5314e4..c7299a7 100644
--- a/pkg/front_end/testcases/nnbd/issue40093.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40093.dart.weak.transformed.expect
@@ -20,7 +20,7 @@
     core::print(i);
   }
   {
-    core::Iterator<core::int> :sync-for-iterator = <core::int>[].{core::Iterable::iterator};
+    core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::•<core::int>(0).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::int i = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect
index 0ee6323..d96e91a 100644
--- a/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41102.dart.strong.transformed.expect
@@ -68,7 +68,7 @@
 import "dart:async";
 
 static final field asy::StreamTransformer<core::Object?, core::Object?> t = new asy::_StreamHandlerTransformer::•<core::Object?, core::Object?>(handleData: (core::Object? data, asy::EventSink<core::Object?> sink) → void => asy::Future::microtask<void>(() → void => sink.{asy::EventSink::add}(data)), handleDone: (asy::EventSink<core::Object?> sink) → void => asy::Future::microtask<void>(() → void => sink.{asy::EventSink::close}()));
-static final field core::List<dynamic> s1 = <dynamic>[];
+static final field core::List<dynamic> s1 = core::_GrowableList::•<dynamic>(0);
 static final field core::int? s2 = let final core::List<dynamic> #t1 = self::s1 in #t1.{core::List::==}(null) ?{core::int?} null : #t1.{core::List::length};
 static final field core::List<core::int> s3 = core::_List::filled<core::int>(2, let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41102.dart:17:36: Error: The value 'null' can't be assigned to the parameter type 'int' because 'int' is not nullable.
 final s3 = new List<int>.filled(2, null);
diff --git a/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect
index 61062c1..7a6a1c4 100644
--- a/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41102.dart.weak.transformed.expect
@@ -68,7 +68,7 @@
 import "dart:async";
 
 static final field asy::StreamTransformer<core::Object?, core::Object?> t = new asy::_StreamHandlerTransformer::•<core::Object?, core::Object?>(handleData: (core::Object? data, asy::EventSink<core::Object?> sink) → void => asy::Future::microtask<void>(() → void => sink.{asy::EventSink::add}(data)), handleDone: (asy::EventSink<core::Object?> sink) → void => asy::Future::microtask<void>(() → void => sink.{asy::EventSink::close}()));
-static final field core::List<dynamic> s1 = <dynamic>[];
+static final field core::List<dynamic> s1 = core::_GrowableList::•<dynamic>(0);
 static final field core::int? s2 = let final core::List<dynamic> #t1 = self::s1 in #t1.{core::List::==}(null) ?{core::int?} null : #t1.{core::List::length};
 static final field core::List<core::int> s3 = core::_List::filled<core::int>(2, let final<BottomType> #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41102.dart:17:36: Error: The value 'null' can't be assigned to the parameter type 'int' because 'int' is not nullable.
 final s3 = new List<int>.filled(2, null);
diff --git a/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect
index 5f03cd5..c611839 100644
--- a/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41114.dart.strong.transformed.expect
@@ -15,7 +15,7 @@
     try {
       #L1:
       {
-        core::List<core::String>? a = <core::String>[];
+        core::List<core::String>? a = core::_GrowableList::•<core::String>(0);
         core::Iterable<core::String>? b = let final core::List<core::String>? #t1 = a in #t1.{core::List::==}(null) ?{core::Iterable<core::String>?} null : #t1{core::List<core::String>}.{core::Iterable::map}<core::String>((core::String e) → core::String => e);
         core::Iterable<core::String>? i = let final core::Iterable<core::String>? #t2 = b in #t2.{core::Object::==}(null) ?{core::Iterable<core::String>?} a : #t2{core::Iterable<core::String>};
         core::print(i);
diff --git a/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect
index 5f03cd5..c611839 100644
--- a/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41114.dart.weak.transformed.expect
@@ -15,7 +15,7 @@
     try {
       #L1:
       {
-        core::List<core::String>? a = <core::String>[];
+        core::List<core::String>? a = core::_GrowableList::•<core::String>(0);
         core::Iterable<core::String>? b = let final core::List<core::String>? #t1 = a in #t1.{core::List::==}(null) ?{core::Iterable<core::String>?} null : #t1{core::List<core::String>}.{core::Iterable::map}<core::String>((core::String e) → core::String => e);
         core::Iterable<core::String>? i = let final core::Iterable<core::String>? #t2 = b in #t2.{core::Object::==}(null) ?{core::Iterable<core::String>?} a : #t2{core::Iterable<core::String>};
         core::print(i);
diff --git a/pkg/front_end/testcases/nnbd/issue41386b.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41386b.dart.strong.transformed.expect
index 5e52bce..240cc0d 100644
--- a/pkg/front_end/testcases/nnbd/issue41386b.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41386b.dart.strong.transformed.expect
@@ -5,7 +5,7 @@
 static method test() → void {
   core::Map<dynamic, dynamic> map = <dynamic, dynamic>{};
   map.{core::Map::[]}(0).foo;
-  core::Iterable<core::String> elements = <core::String>[];
+  core::Iterable<core::String> elements = core::_GrowableList::•<core::String>(0);
   core::List<dynamic> list = core::List::from<dynamic>(elements);
   core::List::from<dynamic>(elements).{core::Iterable::forEach}((dynamic element) → void => element.foo);
 }
diff --git a/pkg/front_end/testcases/nnbd/issue41386b.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41386b.dart.weak.transformed.expect
index 5e52bce..240cc0d 100644
--- a/pkg/front_end/testcases/nnbd/issue41386b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41386b.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
 static method test() → void {
   core::Map<dynamic, dynamic> map = <dynamic, dynamic>{};
   map.{core::Map::[]}(0).foo;
-  core::Iterable<core::String> elements = <core::String>[];
+  core::Iterable<core::String> elements = core::_GrowableList::•<core::String>(0);
   core::List<dynamic> list = core::List::from<dynamic>(elements);
   core::List::from<dynamic>(elements).{core::Iterable::forEach}((dynamic element) → void => element.foo);
 }
diff --git a/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect
index b2b28aa..0099f42 100644
--- a/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41657.dart.strong.transformed.expect
@@ -27,9 +27,9 @@
 import self as self;
 import "dart:core" as core;
 
-static final field core::bool isLegacySubtyping1a = <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping1a = core::_GrowableList::•<Null>(0) is{ForNonNullableByDefault} core::List<core::int>;
 static const field core::bool isLegacySubtyping1b = #C1;
-static final field core::bool isLegacySubtyping2a = <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping2a = core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>;
 static const field core::bool isLegacySubtyping2b = #C1;
 static const field core::List<core::int> assertLegacySubtyping1 = invalid-expression "Expected constant '<Null>[]' to be of type 'List<int>', but was of type 'List<Null>'.
  - 'List' is from 'dart:core'.";
diff --git a/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect
index 0065c49..6d6049e 100644
--- a/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41657.dart.weak.transformed.expect
@@ -2,9 +2,9 @@
 import self as self;
 import "dart:core" as core;
 
-static final field core::bool isLegacySubtyping1a = <Null>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping1a = core::_GrowableList::•<Null>(0) is{ForNonNullableByDefault} core::List<core::int>;
 static const field core::bool isLegacySubtyping1b = #C1;
-static final field core::bool isLegacySubtyping2a = <core::int?>[] is{ForNonNullableByDefault} core::List<core::int>;
+static final field core::bool isLegacySubtyping2a = core::_GrowableList::•<core::int?>(0) is{ForNonNullableByDefault} core::List<core::int>;
 static const field core::bool isLegacySubtyping2b = #C1;
 static const field core::List<core::int> assertLegacySubtyping1 = #C2;
 static const field core::List<core::int> assertLegacySubtyping2 = #C3;
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
index b50eeff..abe5174 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
@@ -83,25 +83,25 @@
     final core::List<Never> #t1 = core::List::of<Never>(n1);
   } =>#t1;
   core::List<Never> l2 = block {
-    final core::List<Never> #t2 = <Never>[];
+    final core::List<Never> #t2 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t3 = n1;
     if(!#t3.{core::Object::==}(null))
       #t2.{core::List::addAll}{Invariant}(#t3{core::Iterable<Never>});
   } =>#t2;
-  core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
+  core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
   var l3 = [...n2];
-               ^"];
+               ^");
   core::List<Never> l4 = block {
-    final core::List<Never> #t4 = <Never>[];
+    final core::List<Never> #t4 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t5 = n2;
     if(!#t5.{core::Object::==}(null))
       #t4.{core::List::addAll}{Invariant}(#t5{core::Iterable<Never>});
   } =>#t4;
-  core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
+  core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
   var l5 = [...n3];
-               ^"];
+               ^");
   core::List<Never> l6 = block {
-    final core::List<Never> #t6 = <Never>[];
+    final core::List<Never> #t6 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t7 = n3;
     if(!#t7.{core::Object::==}(null))
       #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>});
@@ -204,25 +204,25 @@
     final core::List<Never> #t28 = core::List::of<Never>(n1);
   } =>#t28;
   core::List<Never> l2 = block {
-    final core::List<Never> #t29 = <Never>[];
+    final core::List<Never> #t29 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t30 = n1;
     if(!#t30.{core::Object::==}(null))
       #t29.{core::List::addAll}{Invariant}(#t30{core::Iterable<Never>});
   } =>#t29;
-  core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
+  core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
   var l3 = [...n2];
-               ^"];
+               ^");
   core::List<Never> l4 = block {
-    final core::List<Never> #t31 = <Never>[];
+    final core::List<Never> #t31 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t32 = n2;
     if(!#t32.{core::Object::==}(null))
       #t31.{core::List::addAll}{Invariant}(#t32{core::Iterable<Never>});
   } =>#t31;
-  core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
+  core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
   var l5 = [...n3];
-               ^"];
+               ^");
   core::List<Never> l6 = block {
-    final core::List<Never> #t33 = <Never>[];
+    final core::List<Never> #t33 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t34 = n3;
     if(!#t34.{core::Object::==}(null))
       #t33.{core::List::addAll}{Invariant}(#t34{core::Iterable<Never>});
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
index ffce698..a2b4bb2 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
@@ -84,25 +84,25 @@
     final core::List<Never> #t1 = core::List::of<Never>(let final Never #t2 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
   } =>#t1;
   core::List<Never> l2 = block {
-    final core::List<Never> #t3 = <Never>[];
+    final core::List<Never> #t3 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t4 = let final Never #t5 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
     if(!#t4.{core::Object::==}(null))
       #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<Never>});
   } =>#t3;
-  core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
+  core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:8:16: Error: Can't spread a value with static type 'Never?'.
   var l3 = [...n2];
-               ^"];
+               ^");
   core::List<Never> l4 = block {
-    final core::List<Never> #t6 = <Never>[];
+    final core::List<Never> #t6 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t7 = n2;
     if(!#t7.{core::Object::==}(null))
       #t6.{core::List::addAll}{Invariant}(#t7{core::Iterable<Never>});
   } =>#t6;
-  core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
+  core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:10:16: Error: Can't spread a value with static type 'Null'.
   var l5 = [...n3];
-               ^"];
+               ^");
   core::List<Never> l6 = block {
-    final core::List<Never> #t8 = <Never>[];
+    final core::List<Never> #t8 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t9 = n3;
     if(!#t9.{core::Object::==}(null))
       #t8.{core::List::addAll}{Invariant}(#t9{core::Iterable<Never>});
@@ -205,25 +205,25 @@
     final core::List<Never> #t52 = core::List::of<Never>(let final self::test2::N1 #t53 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
   } =>#t52;
   core::List<Never> l2 = block {
-    final core::List<Never> #t54 = <Never>[];
+    final core::List<Never> #t54 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t55 = let final self::test2::N1 #t56 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
     if(!#t55.{core::Object::==}(null))
       #t54.{core::List::addAll}{Invariant}(#t55{core::Iterable<Never>});
   } =>#t54;
-  core::List<dynamic> l3 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
+  core::List<dynamic> l3 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:30:16: Error: Can't spread a value with static type 'N2'.
   var l3 = [...n2];
-               ^"];
+               ^");
   core::List<Never> l4 = block {
-    final core::List<Never> #t57 = <Never>[];
+    final core::List<Never> #t57 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t58 = n2;
     if(!#t58.{core::Object::==}(null))
       #t57.{core::List::addAll}{Invariant}(#t58{core::Iterable<Never>});
   } =>#t57;
-  core::List<dynamic> l5 = <dynamic>[invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
+  core::List<dynamic> l5 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/nnbd/issue42758.dart:32:16: Error: Can't spread a value with static type 'N3'.
   var l5 = [...n3];
-               ^"];
+               ^");
   core::List<Never> l6 = block {
-    final core::List<Never> #t59 = <Never>[];
+    final core::List<Never> #t59 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t60 = n3;
     if(!#t60.{core::Object::==}(null))
       #t59.{core::List::addAll}{Invariant}(#t60{core::Iterable<Never>});
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
index 4fddc1b..afc253c 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
@@ -52,9 +52,9 @@
 
 static field core::int i = 1;
 static field core::Map<core::int, core::String>? nullableMap = <core::int, core::String>{1: "Let", 2: "it", 3: "be"};
-static field core::List<core::int>? nullableList = <core::int>[1, 2, 3];
+static field core::List<core::int>? nullableList = core::_GrowableList::_literal3<core::int>(1, 2, 3);
 static field dynamic dynamicMap = <core::int, core::String>{1: "Let", 2: "it", 3: "be"};
-static field dynamic dynamicList = <core::int>[1, 2, 3];
+static field dynamic dynamicList = core::_GrowableList::_literal3<core::int>(1, 2, 3);
 static field core::Map<dynamic, dynamic> map1 = block {
   final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
   if(self::i.{core::num::>}(0))
@@ -89,7 +89,7 @@
     #t4.{core::Set::addAll}{Invariant}(self::nullableList!);
 } =>#t4;
 static field core::List<dynamic> list1 = block {
-  final core::List<dynamic> #t5 = <dynamic>[];
+  final core::List<dynamic> #t5 = core::_GrowableList::•<dynamic>(0);
   if(self::i.{core::num::>}(0))
     #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
@@ -142,7 +142,7 @@
       #t9.{core::Set::addAll}{Invariant}(z);
   } =>#t9;
   core::List<dynamic> list2 = block {
-    final core::List<dynamic> #t10 = <dynamic>[];
+    final core::List<dynamic> #t10 = core::_GrowableList::•<dynamic>(0);
     if(self::i.{core::num::>}(0))
       #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
index 4fddc1b..afc253c 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
@@ -52,9 +52,9 @@
 
 static field core::int i = 1;
 static field core::Map<core::int, core::String>? nullableMap = <core::int, core::String>{1: "Let", 2: "it", 3: "be"};
-static field core::List<core::int>? nullableList = <core::int>[1, 2, 3];
+static field core::List<core::int>? nullableList = core::_GrowableList::_literal3<core::int>(1, 2, 3);
 static field dynamic dynamicMap = <core::int, core::String>{1: "Let", 2: "it", 3: "be"};
-static field dynamic dynamicList = <core::int>[1, 2, 3];
+static field dynamic dynamicList = core::_GrowableList::_literal3<core::int>(1, 2, 3);
 static field core::Map<dynamic, dynamic> map1 = block {
   final core::Map<dynamic, dynamic> #t1 = <dynamic, dynamic>{};
   if(self::i.{core::num::>}(0))
@@ -89,7 +89,7 @@
     #t4.{core::Set::addAll}{Invariant}(self::nullableList!);
 } =>#t4;
 static field core::List<dynamic> list1 = block {
-  final core::List<dynamic> #t5 = <dynamic>[];
+  final core::List<dynamic> #t5 = core::_GrowableList::•<dynamic>(0);
   if(self::i.{core::num::>}(0))
     #t5.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:29:17: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
   if (i > 0) ...nullableList, // error
@@ -142,7 +142,7 @@
       #t9.{core::Set::addAll}{Invariant}(z);
   } =>#t9;
   core::List<dynamic> list2 = block {
-    final core::List<dynamic> #t10 = <dynamic>[];
+    final core::List<dynamic> #t10 = core::_GrowableList::•<dynamic>(0);
     if(self::i.{core::num::>}(0))
       #t10.{core::List::add}{Invariant}(invalid-expression "pkg/front_end/testcases/nnbd/issue43256.dart:53:19: Error: Unexpected type 'X' of a spread.  Expected 'dynamic' or an Iterable.
     if (i > 0) ...x, // error
diff --git a/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
index c198bf3..2aba575 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.strong.transformed.expect
@@ -109,7 +109,7 @@
     core::print("baz");
   }
   {
-    core::Iterator<core::String> :sync-for-iterator = <core::String>["baz"].{core::Iterable::iterator};
+    core::Iterator<core::String> :sync-for-iterator = core::_GrowableList::_literal1<core::String>("baz").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String s = :sync-for-iterator.{core::Iterator::current};
       {
@@ -118,7 +118,7 @@
     }
   }
   block {
-    final core::List<core::int> #t1 = <core::int>[];
+    final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
     for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1))
       #t1.{core::List::add}{Invariant}(i);
   } =>#t1;
@@ -140,7 +140,7 @@
       #L1:
       {
         {
-          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(<core::String>["hest"]);
+          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(core::_GrowableList::_literal1<core::String>("hest"));
           asy::_StreamIterator<core::String>? :for-iterator = new asy::_StreamIterator::•<core::String>(:stream);
           try
             #L2:
diff --git a/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
index c198bf3..2aba575 100644
--- a/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/later.dart.weak.transformed.expect
@@ -109,7 +109,7 @@
     core::print("baz");
   }
   {
-    core::Iterator<core::String> :sync-for-iterator = <core::String>["baz"].{core::Iterable::iterator};
+    core::Iterator<core::String> :sync-for-iterator = core::_GrowableList::_literal1<core::String>("baz").{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::String s = :sync-for-iterator.{core::Iterator::current};
       {
@@ -118,7 +118,7 @@
     }
   }
   block {
-    final core::List<core::int> #t1 = <core::int>[];
+    final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
     for (core::int i = 0; i.{core::num::<}(10); i = i.{core::num::+}(1))
       #t1.{core::List::add}{Invariant}(i);
   } =>#t1;
@@ -140,7 +140,7 @@
       #L1:
       {
         {
-          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(<core::String>["hest"]);
+          asy::Stream<core::String> :stream = asy::Stream::fromIterable<core::String>(core::_GrowableList::_literal1<core::String>("hest"));
           asy::_StreamIterator<core::String>? :for-iterator = new asy::_StreamIterator::•<core::String>(:stream);
           try
             #L2:
diff --git a/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.strong.transformed.expect
index 5af0f3e..51e735b 100644
--- a/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.strong.transformed.expect
@@ -77,7 +77,7 @@
   static set staticMember2(core::int? value) → void {}
   static method staticMethod() → void {}
   static get property() → core::List<core::int>
-    return <core::int>[0];
+    return core::_GrowableList::_literal1<core::int>(0);
   static get property2() → core::Map<core::int, core::int?>
     return <core::int, core::int?>{};
 }
diff --git a/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.weak.transformed.expect
index 5af0f3e..51e735b 100644
--- a/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/null_aware_static_access.dart.weak.transformed.expect
@@ -77,7 +77,7 @@
   static set staticMember2(core::int? value) → void {}
   static method staticMethod() → void {}
   static get property() → core::List<core::int>
-    return <core::int>[0];
+    return core::_GrowableList::_literal1<core::int>(0);
   static get property2() → core::Map<core::int, core::int?>
     return <core::int, core::int?>{};
 }
diff --git a/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect
index b1e0890..a1e7f4f 100644
--- a/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_null.dart.strong.transformed.expect
@@ -20,10 +20,10 @@
     return n;
 }
 static method foo() → dynamic {
-  return <core::List<self::A<Null>?>>[<Null>[], <self::A<Null>>[]];
+  return core::_GrowableList::_literal2<core::List<self::A<Null>?>>(core::_GrowableList::•<Null>(0), core::_GrowableList::•<self::A<Null>>(0));
 }
 static method bar() → dynamic {
-  return <core::List<self::A<Null>?>>[#C1, #C2];
+  return core::_GrowableList::_literal2<core::List<self::A<Null>?>>(#C1, #C2);
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect
index 82c9494..99a17fe 100644
--- a/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_null.dart.weak.transformed.expect
@@ -20,10 +20,10 @@
     return n;
 }
 static method foo() → dynamic {
-  return <core::List<self::A<Null>?>>[<Null>[], <self::A<Null>>[]];
+  return core::_GrowableList::_literal2<core::List<self::A<Null>?>>(core::_GrowableList::•<Null>(0), core::_GrowableList::•<self::A<Null>>(0));
 }
 static method bar() → dynamic {
-  return <core::List<self::A<Null>?>>[#C1, #C2];
+  return core::_GrowableList::_literal2<core::List<self::A<Null>?>>(#C1, #C2);
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
index a75a6aa..675eae5 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.strong.transformed.expect
@@ -6,40 +6,40 @@
 static method main() → dynamic {
   core::List<core::int>? list = null;
   core::print( block {
-    final core::List<core::int> #t1 = <core::int>[1, 2];
+    final core::List<core::int> #t1 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t2 = list;
     if(!#t2.{core::Object::==}(null))
       #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>});
     #t1.{core::List::add}{Invariant}(3);
   } =>#t1);
   core::print( block {
-    final core::List<core::int> #t3 = <core::int>[1, 2];
+    final core::List<core::int> #t3 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t4 = null;
     if(!#t4.{core::Object::==}(null))
       #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>});
     #t3.{core::List::add}{Invariant}(3);
   } =>#t3);
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t5 = <core::int>[];
+    final core::List<core::int> #t5 = core::_GrowableList::•<core::int>(0);
     final core::Iterable<core::int>? #t6 = list;
     if(!#t6.{core::Object::==}(null))
       #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>});
   } =>#t5;
   core::List<Never> list2 = block {
-    final core::List<Never> #t7 = <Never>[];
+    final core::List<Never> #t7 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t8 = null;
     if(!#t8.{core::Object::==}(null))
       #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>});
   } =>#t7;
   core::List<core::int> list3 = block {
-    final core::List<core::int> #t9 = <core::int>[1, 2];
+    final core::List<core::int> #t9 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t10 = list;
     if(!#t10.{core::Object::==}(null))
       #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>});
     #t9.{core::List::add}{Invariant}(3);
   } =>#t9;
   core::List<core::int> list4 = block {
-    final core::List<core::int> #t11 = <core::int>[1, 2];
+    final core::List<core::int> #t11 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t12 = null;
     if(!#t12.{core::Object::==}(null))
       #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>});
diff --git a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
index a75a6aa..675eae5 100644
--- a/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/spread_if_null.dart.weak.transformed.expect
@@ -6,40 +6,40 @@
 static method main() → dynamic {
   core::List<core::int>? list = null;
   core::print( block {
-    final core::List<core::int> #t1 = <core::int>[1, 2];
+    final core::List<core::int> #t1 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t2 = list;
     if(!#t2.{core::Object::==}(null))
       #t1.{core::List::addAll}{Invariant}(#t2{core::Iterable<core::int>});
     #t1.{core::List::add}{Invariant}(3);
   } =>#t1);
   core::print( block {
-    final core::List<core::int> #t3 = <core::int>[1, 2];
+    final core::List<core::int> #t3 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t4 = null;
     if(!#t4.{core::Object::==}(null))
       #t3.{core::List::addAll}{Invariant}(#t4{core::Iterable<core::int>});
     #t3.{core::List::add}{Invariant}(3);
   } =>#t3);
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t5 = <core::int>[];
+    final core::List<core::int> #t5 = core::_GrowableList::•<core::int>(0);
     final core::Iterable<core::int>? #t6 = list;
     if(!#t6.{core::Object::==}(null))
       #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::int>});
   } =>#t5;
   core::List<Never> list2 = block {
-    final core::List<Never> #t7 = <Never>[];
+    final core::List<Never> #t7 = core::_GrowableList::•<Never>(0);
     final core::Iterable<Never>? #t8 = null;
     if(!#t8.{core::Object::==}(null))
       #t7.{core::List::addAll}{Invariant}(#t8{core::Iterable<Never>});
   } =>#t7;
   core::List<core::int> list3 = block {
-    final core::List<core::int> #t9 = <core::int>[1, 2];
+    final core::List<core::int> #t9 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t10 = list;
     if(!#t10.{core::Object::==}(null))
       #t9.{core::List::addAll}{Invariant}(#t10{core::Iterable<core::int>});
     #t9.{core::List::add}{Invariant}(3);
   } =>#t9;
   core::List<core::int> list4 = block {
-    final core::List<core::int> #t11 = <core::int>[1, 2];
+    final core::List<core::int> #t11 = core::_GrowableList::_literal2<core::int>(1, 2);
     final core::Iterable<core::int>? #t12 = null;
     if(!#t12.{core::Object::==}(null))
       #t11.{core::List::addAll}{Invariant}(#t12{core::Iterable<core::int>});
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
index 7896b4b..d5ce000 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.strong.transformed.expect
@@ -138,7 +138,7 @@
   let final core::String #t4 = s in #t4.{core::String::==}(null) ?{core::String} "foo" : #t4;
   s.{core::String::==}(null) ?{core::String} s = "foo" : null;
   block {
-    final core::List<core::String> #t5 = <core::String>[];
+    final core::List<core::String> #t5 = core::_GrowableList::•<core::String>(0);
     final core::Iterable<core::String>? #t6 = l;
     if(!#t6.{core::Object::==}(null))
       #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>});
diff --git a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
index 7896b4b..d5ce000 100644
--- a/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/strictly_non_nullable_warnings.dart.weak.transformed.expect
@@ -138,7 +138,7 @@
   let final core::String #t4 = s in #t4.{core::String::==}(null) ?{core::String} "foo" : #t4;
   s.{core::String::==}(null) ?{core::String} s = "foo" : null;
   block {
-    final core::List<core::String> #t5 = <core::String>[];
+    final core::List<core::String> #t5 = core::_GrowableList::•<core::String>(0);
     final core::Iterable<core::String>? #t6 = l;
     if(!#t6.{core::Object::==}(null))
       #t5.{core::List::addAll}{Invariant}(#t6{core::Iterable<core::String>});
diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect
index 2955bef..e524f56 100644
--- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect
@@ -207,9 +207,9 @@
   no-such-method-forwarder get finalField() → core::int
     return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 1, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   no-such-method-forwarder set setter(core::int value) → void
-    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set field(core::int value) → void
-    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 class FromSuperConcreteAbstract extends self::SuperConcrete implements self::SuperAbstract, self::Interface {
   synthetic constructor •() → self::FromSuperConcreteAbstract
@@ -224,9 +224,9 @@
   no-such-method-forwarder get finalField() → core::int
     return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 1, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   no-such-method-forwarder set setter(core::int value) → void
-    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set field(core::int value) → void
-    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 class MixinAbstract extends core::Object {
   synthetic constructor •() → self::MixinAbstract
@@ -270,9 +270,9 @@
   no-such-method-forwarder get finalField() → core::int
     return this.{self::_FromMixinConcrete&Object&MixinConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 1, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   no-such-method-forwarder set setter(core::int value) → void
-    return this.{self::_FromMixinConcrete&Object&MixinConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::_FromMixinConcrete&Object&MixinConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set field(core::int value) → void
-    return this.{self::_FromMixinConcrete&Object&MixinConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::_FromMixinConcrete&Object&MixinConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 abstract class _FromMixinConcreteAbstract&Object&MixinConcrete extends core::Object implements self::MixinConcrete /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::_FromMixinConcreteAbstract&Object&MixinConcrete
@@ -302,9 +302,9 @@
   no-such-method-forwarder get finalField() → core::int
     return this.{self::MixinAbstract::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 1, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   no-such-method-forwarder set setter(core::int value) → void
-    return this.{self::MixinAbstract::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::MixinAbstract::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set field(core::int value) → void
-    return this.{self::MixinAbstract::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::MixinAbstract::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 class InterfaceAbstract extends core::Object {
   synthetic constructor •() → self::InterfaceAbstract
@@ -354,9 +354,9 @@
   no-such-method-forwarder get finalField() → core::int
     return this.{self::DeclaredConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 1, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
   no-such-method-forwarder set setter(core::int value) → void
-    return this.{self::DeclaredConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::DeclaredConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set field(core::int value) → void
-    return this.{self::DeclaredConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::DeclaredConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
index 267b93e..d9beb51 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
@@ -25,16 +25,16 @@
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
 static method main() → dynamic {
-  core::List<dynamic>* local0 = <dynamic>[];
-  core::List<inf::C<dynamic>*>* local1a = <inf::C<dynamic>*>[inf::field1];
-  core::List<inf::C<dynamic>*>* local1b = <inf::C<dynamic>*>[inf::field2];
-  core::List<inf::C<core::int*>*>* local1c = <inf::C<core::int*>*>[inf::field3];
-  core::List<inf::C<core::int*>*>* local1d = <inf::C<core::int*>*>[inf::field4];
-  core::List<inf::C<core::int*>*>* local1e = <inf::C<core::int*>*>[inf::field5];
-  core::List<inf::C<core::int*>*>* local1f = <inf::C<core::int*>*>[inf::field6];
-  core::List<core::int*>* local1g = <core::int*>[inf::field7];
-  core::List<core::int*>* local1h = <core::int*>[inf::field8];
-  core::List<Null>* local1i = <Null>[null];
+  core::List<dynamic>* local0 = core::_GrowableList::•<dynamic>(0);
+  core::List<inf::C<dynamic>*>* local1a = core::_GrowableList::_literal1<inf::C<dynamic>*>(inf::field1);
+  core::List<inf::C<dynamic>*>* local1b = core::_GrowableList::_literal1<inf::C<dynamic>*>(inf::field2);
+  core::List<inf::C<core::int*>*>* local1c = core::_GrowableList::_literal1<inf::C<core::int*>*>(inf::field3);
+  core::List<inf::C<core::int*>*>* local1d = core::_GrowableList::_literal1<inf::C<core::int*>*>(inf::field4);
+  core::List<inf::C<core::int*>*>* local1e = core::_GrowableList::_literal1<inf::C<core::int*>*>(inf::field5);
+  core::List<inf::C<core::int*>*>* local1f = core::_GrowableList::_literal1<inf::C<core::int*>*>(inf::field6);
+  core::List<core::int*>* local1g = core::_GrowableList::_literal1<core::int*>(inf::field7);
+  core::List<core::int*>* local1h = core::_GrowableList::_literal1<core::int*>(inf::field8);
+  core::List<Null>* local1i = core::_GrowableList::_literal1<Null>(null);
   core::Set<inf::C<dynamic>*>* local2a = block {
     final core::Set<inf::C<dynamic>*>* #t1 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>*>();
     #t1.{core::Set::add}{Invariant}(inf::field1);
@@ -155,16 +155,16 @@
 static field core::int field7;
 static field core::int? field8;
 static method method() → dynamic {
-  core::List<dynamic> local0 = <dynamic>[];
-  core::List<inf::C<dynamic>> local1a = <inf::C<dynamic>>[inf::field1];
-  core::List<inf::C<dynamic>?> local1b = <inf::C<dynamic>?>[inf::field2];
-  core::List<inf::C<core::int>> local1c = <inf::C<core::int>>[inf::field3];
-  core::List<inf::C<core::int>?> local1d = <inf::C<core::int>?>[inf::field4];
-  core::List<inf::C<core::int?>> local1e = <inf::C<core::int?>>[inf::field5];
-  core::List<inf::C<core::int?>?> local1f = <inf::C<core::int?>?>[inf::field6];
-  core::List<core::int> local1g = <core::int>[inf::field7];
-  core::List<core::int?> local1h = <core::int?>[inf::field8];
-  core::List<Null> local1i = <Null>[null];
+  core::List<dynamic> local0 = core::_GrowableList::•<dynamic>(0);
+  core::List<inf::C<dynamic>> local1a = core::_GrowableList::_literal1<inf::C<dynamic>>(inf::field1);
+  core::List<inf::C<dynamic>?> local1b = core::_GrowableList::_literal1<inf::C<dynamic>?>(inf::field2);
+  core::List<inf::C<core::int>> local1c = core::_GrowableList::_literal1<inf::C<core::int>>(inf::field3);
+  core::List<inf::C<core::int>?> local1d = core::_GrowableList::_literal1<inf::C<core::int>?>(inf::field4);
+  core::List<inf::C<core::int?>> local1e = core::_GrowableList::_literal1<inf::C<core::int?>>(inf::field5);
+  core::List<inf::C<core::int?>?> local1f = core::_GrowableList::_literal1<inf::C<core::int?>?>(inf::field6);
+  core::List<core::int> local1g = core::_GrowableList::_literal1<core::int>(inf::field7);
+  core::List<core::int?> local1h = core::_GrowableList::_literal1<core::int?>(inf::field8);
+  core::List<Null> local1i = core::_GrowableList::_literal1<Null>(null);
   core::Set<inf::C<dynamic>?> local2a = block {
     final core::Set<inf::C<dynamic>?> #t17 = new col::_CompactLinkedHashSet::•<inf::C<dynamic>?>();
     #t17.{core::Set::add}{Invariant}(inf::field1);
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.transformed.expect
index 7f3adb4..9128000 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixed_mixin.dart.weak.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•()
     ;
   get /*isNonNullableByDefault, from org-dartlang-testcase:///mixed_mixin_lib.dart */ a() → core::List<(core::int) → core::int>
-    return <(core::int) → core::int>[];
+    return core::_GrowableList::•<(core::int) → core::int>(0);
   set /*isNonNullableByDefault, from org-dartlang-testcase:///mixed_mixin_lib.dart */ a(core::List<(core::int) → core::int> _) → void {}
   method /*isNonNullableByDefault, from org-dartlang-testcase:///mixed_mixin_lib.dart */ m((core::int) → core::int x) → (core::int) → core::int
     return x;
@@ -44,7 +44,7 @@
     : super core::Object::•()
     ;
   get a() → core::List<(core::int) → core::int>
-    return <(core::int) → core::int>[];
+    return core::_GrowableList::•<(core::int) → core::int>(0);
   set a(core::List<(core::int) → core::int> _) → void {}
   method m((core::int) → core::int x) → (core::int) → core::int
     return x;
@@ -54,7 +54,7 @@
     : super core::Object::•()
     ;
   get a() → core::List<(core::int?) → core::int?>
-    return <(core::int?) → core::int?>[];
+    return core::_GrowableList::•<(core::int?) → core::int?>(0);
   set a(core::List<(core::int?) → core::int?> _) → void {}
   method m((core::int?) → core::int? x) → (core::int?) → core::int?
     return x;
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect
index 1dced2e..82b6e2d 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect
@@ -46,7 +46,7 @@
     : super mix::C0::•()
     ;
   get /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a() → core::List<(core::int) → core::int>
-    return <(core::int) → core::int>[];
+    return core::_GrowableList::•<(core::int) → core::int>(0);
   set /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a(core::List<(core::int) → core::int> _) → void {}
   method /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ m((core::int) → core::int x) → (core::int) → core::int
     return x;
@@ -70,7 +70,7 @@
     : super mix::C0::•()
     ;
   get /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a() → core::List<(core::int?) → core::int?>
-    return <(core::int?) → core::int?>[];
+    return core::_GrowableList::•<(core::int?) → core::int?>(0);
   set /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a(core::List<(core::int?) → core::int?> _) → void {}
   method /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ m((core::int?) → core::int? x) → (core::int?) → core::int?
     return x;
@@ -128,7 +128,7 @@
     : super mix::C3::•()
     ;
   get /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a() → core::List<(core::int) → core::int>
-    return <(core::int) → core::int>[];
+    return core::_GrowableList::•<(core::int) → core::int>(0);
   set /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a(core::List<(core::int) → core::int> _) → void {}
   method /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ m((core::int) → core::int x) → (core::int) → core::int
     return x;
@@ -152,7 +152,7 @@
     : super mix::C3::•()
     ;
   get /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a() → core::List<(core::int?) → core::int?>
-    return <(core::int?) → core::int?>[];
+    return core::_GrowableList::•<(core::int?) → core::int?>(0);
   set /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ a(core::List<(core::int?) → core::int?> _) → void {}
   method /* from org-dartlang-testcase:///mixin_from_opt_in_out_in_lib2.dart */ m((core::int?) → core::int? x) → (core::int?) → core::int?
     return x;
@@ -226,7 +226,7 @@
     : super core::Object::•()
     ;
   get a() → core::List<(core::int) → core::int>
-    return <(core::int) → core::int>[];
+    return core::_GrowableList::•<(core::int) → core::int>(0);
   set a(core::List<(core::int) → core::int> _) → void {}
   method m((core::int) → core::int x) → (core::int) → core::int
     return x;
@@ -236,7 +236,7 @@
     : super core::Object::•()
     ;
   get a() → core::List<(core::int?) → core::int?>
-    return <(core::int?) → core::int?>[];
+    return core::_GrowableList::•<(core::int?) → core::int?>(0);
   set a(core::List<(core::int?) → core::int?> _) → void {}
   method m((core::int?) → core::int? x) → (core::int?) → core::int?
     return x;
diff --git a/pkg/front_end/testcases/nnbd_mixed/mock_http_headers.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mock_http_headers.dart.weak.transformed.expect
index c929e9f..e26b189 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mock_http_headers.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mock_http_headers.dart.weak.transformed.expect
@@ -28,55 +28,55 @@
   no-such-method-forwarder get date() → core::DateTime*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::DateTime*;
   no-such-method-forwarder set date(core::DateTime* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get expires() → core::DateTime*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::DateTime*;
   no-such-method-forwarder set expires(core::DateTime* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get ifModifiedSince() → core::DateTime*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::DateTime*;
   no-such-method-forwarder set ifModifiedSince(core::DateTime* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get host() → core::String*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::String*;
   no-such-method-forwarder set host(core::String* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C11, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C11, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get port() → core::int*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C12, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::int*;
   no-such-method-forwarder set port(core::int* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C13, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C13, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get contentType() → _ht::ContentType*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C14, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} _ht::ContentType*;
   no-such-method-forwarder set contentType(_ht::ContentType* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C15, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C15, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get contentLength() → core::int*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C16, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::int*;
   no-such-method-forwarder set contentLength(core::int* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C17, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C17, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get persistentConnection() → core::bool*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C18, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::bool*;
   no-such-method-forwarder set persistentConnection(core::bool* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C19, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C19, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder get chunkedTransferEncoding() → core::bool*
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C20, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::bool*;
   no-such-method-forwarder set chunkedTransferEncoding(core::bool* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C21, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C21, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder operator [](core::String* name) → core::List<core::String*>*
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C22, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[name]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::List<core::String*>*;
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C22, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(name)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::List<core::String*>*;
   no-such-method-forwarder method value(core::String* name) → core::String*
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C23, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[name]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::String*;
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C23, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(name)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::String*;
   no-such-method-forwarder method add(core::String* name, core::Object* value, {core::bool* preserveHeaderCase = #C24}) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C25, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[name, value]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C26: preserveHeaderCase})));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C25, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal2<dynamic>(name, value)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C26: preserveHeaderCase})));
   no-such-method-forwarder method set(core::String* name, core::Object* value, {core::bool* preserveHeaderCase = #C24}) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C27, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[name, value]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C26: preserveHeaderCase})));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C27, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal2<dynamic>(name, value)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C26: preserveHeaderCase})));
   no-such-method-forwarder method remove(core::String* name, core::Object* value) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C28, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[name, value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C28, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal2<dynamic>(name, value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder method removeAll(core::String* name) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C29, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[name]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C29, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(name)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder method forEach((core::String*, core::List<core::String*>*) →* void action) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C30, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C30, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder method noFolding(core::String* name) → void
-    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C31, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[name]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C31, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(name)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/_http/http.dart */ clear() → void
     return this.{self::Mock::noSuchMethod}(new core::_InvocationMirror::_withType(#C32, 0, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
diff --git a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
index 34765b6..3c36b77 100644
--- a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
@@ -180,7 +180,7 @@
 static method boundedGenericMethod1<T extends Never = Never>() → nev::boundedGenericMethod1::T
   return throw "Should never return";
 static method boundedGenericMethod2<T extends Never = Never>() → core::List<nev::boundedGenericMethod2::T>
-  return <nev::boundedGenericMethod2::T>[];
+  return core::_GrowableList::•<nev::boundedGenericMethod2::T>(0);
 
 
 Extra constant evaluation status:
diff --git a/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.weak.transformed.expect
index 3869af1..d4d8eca 100644
--- a/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/opt_out.dart.weak.transformed.expect
@@ -23,7 +23,7 @@
     : super self::A::•()
     ;
 }
-static field core::List<core::String?> l = <core::String?>[];
+static field core::List<core::String?> l = core::_GrowableList::•<core::String?>(0);
 static field core::String? s = null;
 static field core::String t = self::s!;
 late static field core::int field = 42;
@@ -158,7 +158,7 @@
     : super self2::A::•()
     ;
 }
-static field core::List<core::String?>* l = <core::String*>[];
+static field core::List<core::String?>* l = core::_GrowableList::•<core::String*>(0);
 static field core::String? s = null;
 static field core::String* t = self2::s!;
 static field core::int* field = 42;
diff --git a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
index 11de2a4..a873a8e 100644
--- a/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/regress_null_aware.dart.weak.transformed.expect
@@ -10,11 +10,11 @@
     ;
   method method(core::String* node, core::Set<core::String*>* set) → core::List<core::String*>*
     return set.{core::Set::add}(node) ?{core::List<core::String*>*} block {
-      final core::List<core::String*>* #t1 = <core::String*>[node];
+      final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>(node);
       final core::Iterable<core::String*>* #t2 = let final core::Iterable<core::String*>* #t3 = let final core::Set<core::String*>* #t4 = this.{self::Class::map}.{core::Map::[]}(node) in #t4.{core::Object::==}(null) ?{core::Iterable<core::String*>*} null : #t4.{core::Iterable::expand}<core::String*>((core::String* node) → core::List<core::String*>* => this.{self::Class::method}(node, set)) in #t3.{core::Object::==}(null) ?{core::List<core::String*>*} null : #t3.{core::Iterable::toList}();
       if(!#t2.{core::Object::==}(null))
         #t1.{core::List::addAll}{Invariant}(#t2);
-    } =>#t1 : <core::String*>[];
+    } =>#t1 : core::_GrowableList::•<core::String*>(0);
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
   abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
diff --git a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
index 29a758c..b6a0853 100644
--- a/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/unsound_checks.dart.weak.transformed.expect
@@ -250,8 +250,8 @@
   uns::unnecessaryNullCheck(() → Null => null);
   self::expect(0, uns::unnecessaryIfNull(() → core::int* => 0, () → core::int* => 42));
   self::expect(42, uns::unnecessaryIfNull(() → Null => null, () → core::int* => 42));
-  uns::unnecessaryIfNullAssign(<core::int*>[0], () → core::int* => 42);
-  uns::unnecessaryIfNullAssign(<core::int*>[null], () → core::int* => 42);
+  uns::unnecessaryIfNullAssign(core::_GrowableList::_literal1<core::int*>(0), () → core::int* => 42);
+  uns::unnecessaryIfNullAssign(core::_GrowableList::_literal1<core::int*>(null), () → core::int* => 42);
   uns::unnecessaryNullAwareAccess(() → core::int* => 0);
   uns::unnecessaryNullAwareAccess(() → Null => null);
   self::throws(() → dynamic => uns::callReturningNever(() → <BottomType>=> throw "foo"), (core::Object* e) → core::bool* => e.{core::Object::==}("foo"));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect
index 99db49e..168474b 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect
@@ -36,7 +36,7 @@
   no-such-method-forwarder get foo() → core::int*
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::int*;
   no-such-method-forwarder set foo(core::int* value) → void
-    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 class B extends self::A {
   synthetic constructor •() → self::B*
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect
index 7d0ab93..4609d1a 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect
@@ -38,7 +38,7 @@
   no-such-method-forwarder get foo() → core::int*
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::int*;
   no-such-method-forwarder set foo(core::int* value) → void
-    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 abstract class _C&Object&B extends core::Object implements self::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::_C&Object&B*
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect
index 1d02227..3640888 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect
@@ -41,7 +41,7 @@
     : super self::B::•()
     ;
   no-such-method-forwarder set foo(core::int* value) → void
-    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 abstract class D extends core::Object implements self::A {
   synthetic constructor •() → self::D*
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect
index 94eb66f..ba39cc0 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect
@@ -23,7 +23,7 @@
     : super core::Object::•()
     ;
   method noSuchMethod(core::Invocation* i) → dynamic
-    return <dynamic>[];
+    return core::_GrowableList::•<dynamic>(0);
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
   abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
@@ -36,7 +36,7 @@
   no-such-method-forwarder get foo() → core::List<core::int*>*
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::List<core::int*>*;
   no-such-method-forwarder set foo(generic-covariant-impl core::List<core::int*>* value) → void
-    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method expectTypeError(() →* dynamic callback) → void {
   try {
@@ -49,7 +49,7 @@
 static method main() → dynamic {
   self::B* b = new self::B::•();
   self::expectTypeError(() → core::List<core::int*>* => b.{self::A::foo});
-  self::expectTypeError(() → core::List<dynamic>* => (b as dynamic).foo = <dynamic>[]);
+  self::expectTypeError(() → core::List<dynamic>* => (b as dynamic).foo = core::_GrowableList::•<dynamic>(0));
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_abstract_different_type.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_abstract_different_type.dart.strong.transformed.expect
index 3abbfff..ca335bc 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_abstract_different_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_abstract_different_type.dart.strong.transformed.expect
@@ -7,9 +7,9 @@
     : super core::Object::•()
     ;
   no-such-method-forwarder set push(core::int* x) → void
-    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder set float(covariant core::int* x) → void
-    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   method noSuchMethod(core::Invocation* i) → dynamic
     return core::print("${this.{self::Base::runtimeType}}: ${i.{core::Invocation::positionalArguments}.{core::List::[]}(0)}");
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -32,12 +32,12 @@
     : super self::Base::•()
     ;
   no-such-method-forwarder set push(core::num* x) → void
-    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   no-such-method-forwarder set float(covariant core::num* x) → void
-    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::Base::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method main() → dynamic {
-  core::List<self::Base*>* list = <self::Base*>[new self::Me::•(), new self::You::•()];
+  core::List<self::Base*>* list = core::_GrowableList::_literal2<self::Base*>(new self::Me::•(), new self::You::•());
   {
     core::Iterator<self::Base*>* :sync-for-iterator = list.{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_with_different_signature.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_with_different_signature.dart.strong.transformed.expect
index 3979bfc..675ecfb 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_with_different_signature.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_override_with_different_signature.dart.strong.transformed.expect
@@ -37,7 +37,7 @@
   abstract member-signature method toString() → core::String*; -> core::Object::toString
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
   no-such-method-forwarder method eatFood(core::String* food) → core::bool*
-    return this.{self::MockCat::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[food]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::bool*;
+    return this.{self::MockCat::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(food)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} core::bool*;
 }
 class MockCat2 extends self::MockCat {
   synthetic constructor •() → self::MockCat2*
@@ -50,14 +50,14 @@
     : super self::MockCat2::•()
     ;
   no-such-method-forwarder method eatFood(core::String* food, {core::double* amount = #C5}) → core::bool*
-    return this.{self::MockCat2::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[food]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C6: amount}))) as{TypeError,ForDynamic} core::bool*;
+    return this.{self::MockCat2::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(food)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C6: amount}))) as{TypeError,ForDynamic} core::bool*;
 }
 class MockCat4 extends self::MockCat2 implements self::HungryCat {
   synthetic constructor •() → self::MockCat4*
     : super self::MockCat2::•()
     ;
   no-such-method-forwarder method eatFood(core::String* food, {core::double* amount = #C5, core::double* yetAnother = #C5}) → core::bool*
-    return this.{self::MockCat2::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[food]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C6: amount, #C7: yetAnother}))) as{TypeError,ForDynamic} core::bool*;
+    return this.{self::MockCat2::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(food)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C6: amount, #C7: yetAnother}))) as{TypeError,ForDynamic} core::bool*;
 }
 abstract class HungryCat extends core::Object {
   synthetic constructor •() → self::HungryCat*
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect
index 72909b5..a5a0b39 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect
@@ -35,7 +35,7 @@
   no-such-method-forwarder method foo({core::String* bar = #C4}) → core::String*
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C6, #C7, core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C2: bar}))) as{TypeError,ForDynamic} core::String*;
   no-such-method-forwarder method hest([core::int* fisk = #C5]) → core::int*
-    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C3, 0, #C6, core::List::unmodifiable<dynamic>(<dynamic>[fisk]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C8))) as{TypeError,ForDynamic} core::int*;
+    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C3, 0, #C6, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(fisk)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C8))) as{TypeError,ForDynamic} core::int*;
 }
 static method main() → dynamic {
   self::B* b = new self::B::•();
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarder_propagation.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarder_propagation.dart.strong.transformed.expect
index d0e5a4c..410396b 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/forwarder_propagation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarder_propagation.dart.strong.transformed.expect
@@ -40,9 +40,9 @@
   no-such-method-forwarder get bar() → core::int*
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 1, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic} core::int*;
   no-such-method-forwarder method baz(core::int* x, {core::String* y = #C1, core::double* z = #C1}) → void
-    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C7: y, #C8: z})));
+    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C7: y, #C8: z})));
   no-such-method-forwarder set foo(core::int* value) → void
-    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 class C extends self::B {
   synthetic constructor •() → self::C*
@@ -70,9 +70,9 @@
   no-such-method-forwarder method /* from org-dartlang-testcase:///forwarder_propagation_lib.dart */ _privateMethod() → void
     return this.{self::E::noSuchMethod}(new core::_InvocationMirror::_withType(#C12, 0, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set /* from org-dartlang-testcase:///forwarder_propagation_lib.dart */ _privateSetter(core::int* value) → void
-    return this.{self::E::noSuchMethod}(new core::_InvocationMirror::_withType(#C13, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::E::noSuchMethod}(new core::_InvocationMirror::_withType(#C13, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set /* from org-dartlang-testcase:///forwarder_propagation_lib.dart */ _privateField(core::int* value) → void
-    return this.{self::E::noSuchMethod}(new core::_InvocationMirror::_withType(#C14, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::E::noSuchMethod}(new core::_InvocationMirror::_withType(#C14, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 class F extends self::E {
   synthetic constructor •() → self::F*
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect
index 297ab3b..d5f3d88 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/multiple_abstract_setters.dart.strong.transformed.expect
@@ -74,7 +74,7 @@
   no-such-method-forwarder get bar() → Null
     return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))) as{TypeError,ForDynamic} Null;
   no-such-method-forwarder set foo(core::num* value) → void
-    return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::D::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_inherited.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_inherited.dart.strong.transformed.expect
index 9d5a43e..0428014 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_inherited.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_inherited.dart.strong.transformed.expect
@@ -23,7 +23,7 @@
     : super self::M::•()
     ;
   no-such-method-forwarder method call(core::String* s) → void
-    return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[s]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(s)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
 }
 static method main() → dynamic {}
 
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/setter_not_shadowed_by_method.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/setter_not_shadowed_by_method.dart.strong.transformed.expect
index b37c6af5..a110b1a 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/setter_not_shadowed_by_method.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/setter_not_shadowed_by_method.dart.strong.transformed.expect
@@ -18,7 +18,7 @@
     ;
   method foo(core::int* x) → void {}
   no-such-method-forwarder set foo(core::int* x) → void
-    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
+    return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 2, #C2, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C4)));
   method noSuchMethod(core::Invocation* i) → dynamic
     return null;
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/rasta/issue_000002.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000002.dart.strong.transformed.expect
index 0b76554..669881c 100644
--- a/pkg/front_end/testcases/rasta/issue_000002.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000002.dart.strong.transformed.expect
@@ -25,7 +25,7 @@
   abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
   abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
 }
-static field core::List<core::int*>* list = <core::int*>[1, 2, 3];
+static field core::List<core::int*>* list = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
 static method main() → dynamic {
   exp::Expect::isTrue(typ::Uint8List::fromList(self::list).{core::List::[]}(1).{core::num::==}(2));
   exp::Expect::isTrue(self::Foo::fac(10).{self::Foo::value}.{core::Object::==}(10));
diff --git a/pkg/front_end/testcases/rasta/issue_000004.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000004.dart.strong.transformed.expect
index b17c1d1..9abdbc2 100644
--- a/pkg/front_end/testcases/rasta/issue_000004.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000004.dart.strong.transformed.expect
@@ -9,7 +9,7 @@
 static method fact4() → dynamic {
   core::int* f = 1;
   {
-    core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2, 3, 4].{core::Iterable::iterator};
+    core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal4<core::int*>(1, 2, 3, 4).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::int* n = :sync-for-iterator.{core::Iterator::current};
       {
@@ -23,7 +23,7 @@
   core::int* f = 1;
   dynamic n;
   {
-    core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[1, 2, 3, 4, 5].{core::Iterable::iterator};
+    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal5<dynamic>(1, 2, 3, 4, 5).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       final dynamic #t1 = :sync-for-iterator.{core::Iterator::current};
       {
@@ -37,7 +37,7 @@
 static method fact6() → dynamic {
   core::int* f = 1;
   {
-    core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[1, 2, 3, 4, 5, 6].{core::Iterable::iterator};
+    core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::_literal6<dynamic>(1, 2, 3, 4, 5, 6).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
       {
diff --git a/pkg/front_end/testcases/rasta/issue_000006.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000006.dart.strong.transformed.expect
index a79616d..435535b 100644
--- a/pkg/front_end/testcases/rasta/issue_000006.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000006.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
 import self as self;
 import "dart:core" as core;
 
-static field core::List<core::int*>* list = <core::int*>[1, 2, 3];
+static field core::List<core::int*>* list = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
 static method main() → dynamic {
   self::list.{core::List::add}(1);
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000042.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000042.dart.strong.transformed.expect
index 3e7ecfd..5561da6 100644
--- a/pkg/front_end/testcases/rasta/issue_000042.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000042.dart.strong.transformed.expect
@@ -29,7 +29,7 @@
   for (var x, y in []) {}
        ^^^";
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t1 = :sync-for-iterator.{core::Iterator::current};
         {
diff --git a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
index f3f37e7..6240e38 100644
--- a/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000070.dart.strong.transformed.expect
@@ -8,7 +8,7 @@
 class A<N extends core::Object* = dynamic, S extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/  {
   final field core::List<self::A::U*>* field;
   constructor •(self::A::N* n, self::A::S* s) → self::A<self::A::N*, self::A::S*, self::A::U*>*
-    : self::A::field = <self::A::U*>[], super core::Object::•() {
+    : self::A::field = core::_GrowableList::•<self::A::U*>(0), super core::Object::•() {
     exp::Expect::isTrue(n is self::A::N*);
     exp::Expect::isTrue(s is self::A::S*);
   }
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect
index 501253f..b1d4d3f 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.strong.transformed.expect
@@ -30,7 +30,7 @@
 }
 static method main() → dynamic {
   core::print(new self::Sub::•().{self::Sub::hashCode});
-  core::List<Null>* l = <Null>[null];
+  core::List<Null>* l = core::_GrowableList::_literal1<Null>(null);
   let final core::List<Null>* #t2 = l in let final core::int* #t3 = 0 in #t2.{core::List::[]}(#t3).{core::Object::==}(null) ?{core::String*} #t2.{core::List::[]=}(#t3, "fisk" as{TypeError} Null) : null;
 }
 
diff --git a/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect
index 07a6b9a7..462aa91 100644
--- a/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29937.dart.strong.transformed.expect
@@ -7,7 +7,8 @@
 //    ^
 //
 import self as self;
+import "dart:core" as core;
 
 static method main() → dynamic {
-  <() →* Null>[let final () →* Null f = () → Null {} in f];
+  core::_GrowableList::_literal1<() →* Null>(let final () →* Null f = () → Null {} in f);
 }
diff --git a/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect
index ccb6dec..581c2ce 100644
--- a/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_39040.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 static method main() → void {
-  core::List<core::String*>* whereWasI = <core::String*>[];
+  core::List<core::String*>* whereWasI = core::_GrowableList::•<core::String*>(0);
   core::int* outer = 1;
   core::int* inner = 0;
   #L1:
diff --git a/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect
index 5913720..1ee9e4cd 100644
--- a/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_42423.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
 }
 static method test2(dynamic stringList) → dynamic {
   core::List<core::int*>* intList = block {
-    final core::List<core::int*>* #t5 = <core::int*>[];
+    final core::List<core::int*>* #t5 = core::_GrowableList::•<core::int*>(0);
     final core::Iterable<dynamic>* #t6 = stringList as{TypeError,ForDynamic} core::Iterable<dynamic>*;
     if(!#t6.{core::Object::==}(null)) {
       core::Iterator<dynamic>* :sync-for-iterator = #t6.{core::Iterable::iterator};
@@ -56,7 +56,7 @@
   } =>#t9;
 }
 static method main() → dynamic {
-  dynamic stringList = <core::String*>["string"];
+  dynamic stringList = core::_GrowableList::_literal1<core::String*>("string");
   exp::Expect::throwsTypeError(() → Null {
     self::test1(stringList);
   });
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.strong.transformed.expect
index c696e93..6d29b6e 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return.dart.strong.transformed.expect
@@ -9,7 +9,7 @@
     ;
   method f1() → (self::C::T*) →* void {}
   method f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}()];
+    return core::_GrowableList::_literal1<(self::C::T*) →* void>(this.{self::C::f1}());
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.dart.strong.transformed.expect
index ff20fa1..ca43160 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_return_null_aware.dart.strong.transformed.expect
@@ -9,7 +9,7 @@
     ;
   method f1() → (self::C::T*) →* void {}
   method f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}()];
+    return core::_GrowableList::_literal1<(self::C::T*) →* void>(this.{self::C::f1}());
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.strong.transformed.expect
index cfbae18..bf505b2 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return.dart.strong.transformed.expect
@@ -10,7 +10,7 @@
   get f1() → (self::C::T*) →* void
     return null;
   get f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}];
+    return core::_GrowableList::_literal1<(self::C::T*) →* void>(this.{self::C::f1});
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.dart.strong.transformed.expect
index b1c9392..441c6fa 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_getter_return_null_aware.dart.strong.transformed.expect
@@ -10,7 +10,7 @@
   get f1() → (self::C::T*) →* void
     return null;
   get f2() → core::List<(self::C::T*) →* void>* {
-    return <(self::C::T*) →* void>[this.{self::C::f1}];
+    return core::_GrowableList::_literal1<(self::C::T*) →* void>(this.{self::C::f1});
   }
   abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
   abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
diff --git a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.transformed.expect
index a31aa80..3a5d78d 100644
--- a/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/for_in_call_kinds.dart.strong.transformed.expect
@@ -13,7 +13,7 @@
   method test() → void {
     dynamic localVar;
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t1 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -22,7 +22,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t2 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -31,7 +31,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t3 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -40,7 +40,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t4 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -49,7 +49,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t5 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -58,7 +58,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t6 = :sync-for-iterator.{core::Iterator::current};
         {
@@ -67,7 +67,7 @@
       }
     }
     {
-      core::Iterator<dynamic>* :sync-for-iterator = <dynamic>[].{core::Iterable::iterator};
+      core::Iterator<dynamic>* :sync-for-iterator = core::_GrowableList::•<dynamic>(0).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
         final dynamic #t7 = :sync-for-iterator.{core::Iterator::current};
         {
diff --git a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
index 9108424..09431d2 100644
--- a/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/fold_initial.dart.weak.transformed.expect
@@ -8,7 +8,7 @@
   core::num* element1 = 1;
   core::int* element2 = 2;
   core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t1 = <core::int*>[element0 as{TypeError,ForDynamic} core::int*, element1 as{TypeError} core::int*, element2];
+    final core::List<core::int*>* #t1 = core::_GrowableList::_literal3<core::int*>(element0 as{TypeError,ForDynamic} core::int*, element1 as{TypeError} core::int*, element2);
     if(true)
       #t1.{core::List::add}{Invariant}(3);
     #t1.{core::List::add}{Invariant}(4);
@@ -30,9 +30,9 @@
   self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
 }
 static method foldInitialSpread1() → void {
-  dynamic initial = <core::int*>[0, 1, 2];
+  dynamic initial = core::_GrowableList::_literal3<core::int*>(0, 1, 2);
   core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t3 = <core::int*>[];
+    final core::List<core::int*>* #t3 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<dynamic>* :sync-for-iterator = (initial as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -71,9 +71,9 @@
   self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
 }
 static method foldInitialSpread2() → void {
-  core::Iterable<core::num*>* initial = <core::num*>[0, 1, 2];
+  core::Iterable<core::num*>* initial = core::_GrowableList::_literal3<core::num*>(0, 1, 2);
   core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t9 = <core::int*>[];
+    final core::List<core::int*>* #t9 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<core::num*>* :sync-for-iterator = initial.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -112,9 +112,9 @@
   self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
 }
 static method foldInitialSpread3() → void {
-  core::List<core::num*>* initial = <core::num*>[0, 1, 2];
+  core::List<core::num*>* initial = core::_GrowableList::_literal3<core::num*>(0, 1, 2);
   core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t15 = <core::int*>[];
+    final core::List<core::int*>* #t15 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<core::num*>* :sync-for-iterator = initial.{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -153,7 +153,7 @@
   self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
 }
 static method foldInitialSpread4() → void {
-  core::Iterable<core::int*>* initial = <core::int*>[0, 1, 2];
+  core::Iterable<core::int*>* initial = core::_GrowableList::_literal3<core::int*>(0, 1, 2);
   core::List<core::int*>* list = block {
     final core::List<core::int*>* #t21 = core::List::of<core::int*>(initial);
     if(true)
@@ -174,7 +174,7 @@
   self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
 }
 static method foldInitialSpread5() → void {
-  core::List<core::int*>* initial = <core::int*>[0, 1, 2];
+  core::List<core::int*>* initial = core::_GrowableList::_literal3<core::int*>(0, 1, 2);
   core::List<core::int*>* list = block {
     final core::List<core::int*>* #t23 = core::List::of<core::int*>(initial);
     if(true)
@@ -195,9 +195,9 @@
   self::expect(core::_GrowableList::generate<core::int*>(7, (core::int* i) → core::int* => i), set.{core::Iterable::toList}());
 }
 static method foldInitialSpread6() → void {
-  core::List<core::int*>* initial = <core::int*>[0, 1, 2];
+  core::List<core::int*>* initial = core::_GrowableList::_literal3<core::int*>(0, 1, 2);
   core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t25 = <core::int*>[];
+    final core::List<core::int*>* #t25 = core::_GrowableList::•<core::int*>(0);
     final core::Iterable<core::int*>* #t26 = initial;
     if(!#t26.{core::Object::==}(null))
       #t25.{core::List::addAll}{Invariant}(#t26);
diff --git a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
index 8970ba8..5655ae8 100644
--- a/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/invariance.dart.weak.transformed.expect
@@ -4,11 +4,11 @@
 import "dart:collection" as col;
 
 static method main() → dynamic {
-  core::List<core::int*>* list1 = <core::int*>[0];
-  core::List<core::num*>* list2 = <core::num*>[0];
-  dynamic list3 = <core::int*>[0];
+  core::List<core::int*>* list1 = core::_GrowableList::_literal1<core::int*>(0);
+  core::List<core::num*>* list2 = core::_GrowableList::_literal1<core::num*>(0);
+  dynamic list3 = core::_GrowableList::_literal1<core::int*>(0);
   core::List<core::int*>* list = block {
-    final core::List<core::int*>* #t1 = <core::int*>[0];
+    final core::List<core::int*>* #t1 = core::_GrowableList::_literal1<core::int*>(0);
     #t1.{core::List::addAll}{Invariant}(list1);
     {
       core::Iterator<core::num*>* :sync-for-iterator = list2.{core::Iterable::iterator};
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
index 5f72074..1f0299e 100644
--- a/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/list_add_all.dart.weak.transformed.expect
@@ -3,16 +3,16 @@
 import "dart:core" as core;
 
 static method useAddAll() → void {
-  dynamic dynamicList1 = <core::int*>[0, 1, 2];
-  dynamic dynamicList2 = <core::num*>[3, 4, 5];
-  core::Iterable<core::int*>* iterableIntList = <core::int*>[6, 7, 8];
-  core::Iterable<core::num*>* iterableNumList1 = <core::int*>[9, 10, 11];
-  core::Iterable<core::num*>* iterableNumList2 = <core::num*>[12, 13, 14];
-  core::List<core::int*>* intList = <core::int*>[15, 16, 17];
-  core::List<core::num*>* numList1 = <core::int*>[18, 19, 20];
-  core::List<core::num*>* numList2 = <core::num*>[21, 22, 23];
+  dynamic dynamicList1 = core::_GrowableList::_literal3<core::int*>(0, 1, 2);
+  dynamic dynamicList2 = core::_GrowableList::_literal3<core::num*>(3, 4, 5);
+  core::Iterable<core::int*>* iterableIntList = core::_GrowableList::_literal3<core::int*>(6, 7, 8);
+  core::Iterable<core::num*>* iterableNumList1 = core::_GrowableList::_literal3<core::int*>(9, 10, 11);
+  core::Iterable<core::num*>* iterableNumList2 = core::_GrowableList::_literal3<core::num*>(12, 13, 14);
+  core::List<core::int*>* intList = core::_GrowableList::_literal3<core::int*>(15, 16, 17);
+  core::List<core::num*>* numList1 = core::_GrowableList::_literal3<core::int*>(18, 19, 20);
+  core::List<core::num*>* numList2 = core::_GrowableList::_literal3<core::num*>(21, 22, 23);
   core::List<core::int*>* list1 = block {
-    final core::List<core::int*>* #t1 = <core::int*>[];
+    final core::List<core::int*>* #t1 = core::_GrowableList::•<core::int*>(0);
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -78,7 +78,7 @@
   } =>#t1;
   self::expect(core::_GrowableList::generate<core::int*>(24, (core::int* i) → core::int* => i), list1);
   core::List<core::num*>* list2 = block {
-    final core::List<core::num*>* #t14 = <core::num*>[];
+    final core::List<core::num*>* #t14 = core::_GrowableList::•<core::num*>(0);
     {
       core::Iterator<dynamic>* :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -108,7 +108,7 @@
   } =>#t14;
   self::expect(core::_GrowableList::generate<core::num*>(24, (core::int* i) → core::int* => i), list2);
   core::List<core::int*>* list3 = block {
-    final core::List<core::int*>* #t19 = <core::int*>[];
+    final core::List<core::int*>* #t19 = core::_GrowableList::•<core::int*>(0);
     final core::Iterable<dynamic>* #t20 = dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
     if(!#t20.{core::Object::==}(null)) {
       core::Iterator<dynamic>* :sync-for-iterator = #t20.{core::Iterable::iterator};
@@ -184,7 +184,7 @@
   } =>#t19;
   self::expect(core::_GrowableList::generate<core::int*>(24, (core::int* i) → core::int* => i), list3);
   core::List<core::num*>* list4 = block {
-    final core::List<core::num*>* #t40 = <core::num*>[];
+    final core::List<core::num*>* #t40 = core::_GrowableList::•<core::num*>(0);
     final core::Iterable<dynamic>* #t41 = dynamicList1 as{TypeError,ForDynamic} core::Iterable<dynamic>*;
     if(!#t41.{core::Object::==}(null)) {
       core::Iterator<dynamic>* :sync-for-iterator = #t41.{core::Iterable::iterator};
diff --git a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
index e9211e8..e94bf35 100644
--- a/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/list_add_all_nnbd.dart.weak.transformed.expect
@@ -3,13 +3,13 @@
 import "dart:core" as core;
 
 static method useAddAll() → void {
-  dynamic dynamicList1 = <core::int>[0, 1, 2];
-  dynamic dynamicList2 = <core::num>[3, 4, 5];
-  dynamic dynamicList3 = <core::int?>[6, 7, 8];
-  core::Iterable<core::int> iterableIntList = <core::int>[9, 10, 11];
-  core::List<core::int> intList = <core::int>[12, 13, 14];
+  dynamic dynamicList1 = core::_GrowableList::_literal3<core::int>(0, 1, 2);
+  dynamic dynamicList2 = core::_GrowableList::_literal3<core::num>(3, 4, 5);
+  dynamic dynamicList3 = core::_GrowableList::_literal3<core::int?>(6, 7, 8);
+  core::Iterable<core::int> iterableIntList = core::_GrowableList::_literal3<core::int>(9, 10, 11);
+  core::List<core::int> intList = core::_GrowableList::_literal3<core::int>(12, 13, 14);
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t1 = <core::int>[];
+    final core::List<core::int> #t1 = core::_GrowableList::•<core::int>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -45,7 +45,7 @@
   } =>#t1;
   self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i), list1);
   core::List<core::num> list2 = block {
-    final core::List<core::num> #t8 = <core::num>[];
+    final core::List<core::num> #t8 = core::_GrowableList::•<core::num>(0);
     {
       core::Iterator<dynamic> :sync-for-iterator = (dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator};
       for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -82,13 +82,13 @@
   self::expect(core::_GrowableList::generate<core::num>(15, (core::int i) → core::int => i), list2);
 }
 static method useAddAllNullable() → void {
-  dynamic dynamicList1 = <core::int>[0, 1, 2];
-  dynamic dynamicList2 = <core::num>[3, 4, 5];
-  dynamic dynamicList3 = <core::int?>[6, 7, 8];
-  core::Iterable<core::int>? iterableIntList = true ?{core::List<core::int>?} <core::int>[9, 10, 11] : null;
-  core::List<core::int>? intList = true ?{core::List<core::int>?} <core::int>[12, 13, 14] : null;
+  dynamic dynamicList1 = core::_GrowableList::_literal3<core::int>(0, 1, 2);
+  dynamic dynamicList2 = core::_GrowableList::_literal3<core::num>(3, 4, 5);
+  dynamic dynamicList3 = core::_GrowableList::_literal3<core::int?>(6, 7, 8);
+  core::Iterable<core::int>? iterableIntList = true ?{core::List<core::int>?} core::_GrowableList::_literal3<core::int>(9, 10, 11) : null;
+  core::List<core::int>? intList = true ?{core::List<core::int>?} core::_GrowableList::_literal3<core::int>(12, 13, 14) : null;
   core::List<core::int> list1 = block {
-    final core::List<core::int> #t15 = <core::int>[];
+    final core::List<core::int> #t15 = core::_GrowableList::•<core::int>(0);
     final core::Iterable<dynamic>? #t16 = dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!#t16.{core::Object::==}(null)) {
       core::Iterator<dynamic> :sync-for-iterator = #t16{core::Iterable<dynamic>}.{core::Iterable::iterator};
@@ -131,7 +131,7 @@
   } =>#t15;
   self::expect(core::_GrowableList::generate<core::int>(15, (core::int i) → core::int => i), list1);
   core::List<core::num> list2 = block {
-    final core::List<core::num> #t27 = <core::num>[];
+    final core::List<core::num> #t27 = core::_GrowableList::•<core::num>(0);
     final core::Iterable<dynamic>? #t28 = dynamicList1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>?;
     if(!#t28.{core::Object::==}(null)) {
       core::Iterator<dynamic> :sync-for-iterator = #t28{core::Iterable<dynamic>}.{core::Iterable::iterator};
diff --git a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
index 691c149..6444381 100644
--- a/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/mixed_entries.dart.weak.transformed.expect
@@ -42,7 +42,7 @@
 import "dart:core" as core;
 
 static field core::bool* b = false;
-static field core::List<dynamic>* list = <dynamic>[];
+static field core::List<dynamic>* list = core::_GrowableList::•<dynamic>(0);
 static field core::Map<dynamic, dynamic>* map0 = <dynamic, dynamic>{};
 static field core::Map<dynamic, dynamic>* map1 = block {
   final core::Map<dynamic, dynamic>* #t1 = <dynamic, dynamic>{};
diff --git a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
index b8d8ac8..33e84e4 100644
--- a/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/unified_collections/string_concatenation.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
 static method main() → dynamic {
   core::bool* b = false;
   block {
-    final core::List<core::String*>* #t1 = <core::String*>["ab"];
+    final core::List<core::String*>* #t1 = core::_GrowableList::_literal1<core::String*>("ab");
     if(b)
       #t1.{core::List::add}{Invariant}("cd");
   } =>#t1;
diff --git a/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect b/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect
index 4b64468..8f2b714 100644
--- a/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/variance/generic_covariance_sound_variance.dart.strong.transformed.expect
@@ -158,11 +158,11 @@
   no-such-method-forwarder get x() → self::NoSuchMethod::T*
     return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 1, #C3, #C4, core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic} self::NoSuchMethod::T*;
   no-such-method-forwarder method method(self::NoSuchMethod::T* x) → self::NoSuchMethod::T*
-    return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic} self::NoSuchMethod::T*;
+    return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5))) as{TypeError,ForDynamic} self::NoSuchMethod::T*;
   no-such-method-forwarder set y(self::NoSuchMethod::T* x) → void
-    return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[x]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(x)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
   no-such-method-forwarder set x(self::NoSuchMethod::T* value) → void
-    return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 2, #C3, core::List::unmodifiable<dynamic>(<dynamic>[value]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
+    return this.{self::NoSuchMethod::noSuchMethod}(new core::_InvocationMirror::_withType(#C8, 2, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(value)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C5)));
 }
 static method main() → dynamic {
   self::A<core::int*, core::num*, core::String*>* a = new self::A::•<core::int*, core::num*, core::String*>();
diff --git a/pkg/front_end/tool/_fasta/generate_messages.dart b/pkg/front_end/tool/_fasta/generate_messages.dart
index 3d565a8..4cde3ec 100644
--- a/pkg/front_end/tool/_fasta/generate_messages.dart
+++ b/pkg/front_end/tool/_fasta/generate_messages.dart
@@ -210,7 +210,7 @@
         parameters.add("String character");
         conversions.add("if (character.runes.length != 1)"
             "throw \"Not a character '\${character}'\";");
-        arguments.add("'character': character");
+        arguments.add("'$name': character");
         break;
 
       case "unicode":
@@ -220,34 +220,34 @@
         parameters.add("int codePoint");
         conversions.add("String unicode = \"U+\${codePoint.toRadixString(16)"
             ".toUpperCase().padLeft(4, '0')}\";");
-        arguments.add("'codePoint': codePoint");
+        arguments.add("'$name': codePoint");
         break;
 
       case "name":
         parameters.add("String name");
         conversions.add("if (name.isEmpty) throw 'No name provided';");
-        arguments.add("'name': name");
+        arguments.add("'$name': name");
         conversions.add("name = demangleMixinApplicationName(name);");
         break;
 
       case "name2":
         parameters.add("String name2");
         conversions.add("if (name2.isEmpty) throw 'No name provided';");
-        arguments.add("'name2': name2");
+        arguments.add("'$name': name2");
         conversions.add("name2 = demangleMixinApplicationName(name2);");
         break;
 
       case "name3":
         parameters.add("String name3");
         conversions.add("if (name3.isEmpty) throw 'No name provided';");
-        arguments.add("'name3': name3");
+        arguments.add("'$name': name3");
         conversions.add("name3 = demangleMixinApplicationName(name3);");
         break;
 
       case "name4":
         parameters.add("String name4");
         conversions.add("if (name4.isEmpty) throw 'No name provided';");
-        arguments.add("'name4': name4");
+        arguments.add("'$name': name4");
         conversions.add("name4 = demangleMixinApplicationName(name4);");
         break;
 
@@ -262,38 +262,38 @@
       case "names":
         parameters.add("List<String> _names");
         conversions.add("if (_names.isEmpty) throw 'No names provided';");
-        arguments.add("'names': _names");
+        arguments.add("'$name': _names");
         conversions.add("String names = itemizeNames(_names);");
         break;
 
       case "lexeme":
         parameters.add("Token token");
         conversions.add("String lexeme = token.lexeme;");
-        arguments.add("'token': token");
+        arguments.add("'$name': token");
         break;
 
       case "lexeme2":
         parameters.add("Token token2");
         conversions.add("String lexeme2 = token2.lexeme;");
-        arguments.add("'token2': token2");
+        arguments.add("'$name': token2");
         break;
 
       case "string":
         parameters.add("String string");
         conversions.add("if (string.isEmpty) throw 'No string provided';");
-        arguments.add("'string': string");
+        arguments.add("'$name': string");
         break;
 
       case "string2":
         parameters.add("String string2");
         conversions.add("if (string2.isEmpty) throw 'No string provided';");
-        arguments.add("'string2': string2");
+        arguments.add("'$name': string2");
         break;
 
       case "string3":
         parameters.add("String string3");
         conversions.add("if (string3.isEmpty) throw 'No string provided';");
-        arguments.add("'string3': string3");
+        arguments.add("'$name': string3");
         break;
 
       case "stringOKEmpty":
@@ -301,7 +301,7 @@
         conversions.add("$ignoreNotNull\n"
             "if (stringOKEmpty == null || stringOKEmpty.isEmpty) "
             "stringOKEmpty = '(empty)';");
-        arguments.add("'stringOKEmpty': stringOKEmpty");
+        arguments.add("'$name': stringOKEmpty");
         break;
 
       case "type":
@@ -319,33 +319,33 @@
       case "uri":
         parameters.add("Uri uri_");
         conversions.add("String? uri = relativizeUri(uri_);");
-        arguments.add("'uri': uri_");
+        arguments.add("'$name': uri_");
         break;
 
       case "uri2":
         parameters.add("Uri uri2_");
         conversions.add("String? uri2 = relativizeUri(uri2_);");
-        arguments.add("'uri2': uri2_");
+        arguments.add("'$name': uri2_");
         break;
 
       case "uri3":
         parameters.add("Uri uri3_");
         conversions.add("String? uri3 = relativizeUri(uri3_);");
-        arguments.add("'uri3': uri3_");
+        arguments.add("'$name': uri3_");
         break;
 
       case "count":
         parameters.add("int count");
         conversions.add(
             "$ignoreNotNull\n" "if (count == null) throw 'No count provided';");
-        arguments.add("'count': count");
+        arguments.add("'$name': count");
         break;
 
       case "count2":
         parameters.add("int count2");
         conversions.add("$ignoreNotNull\n"
             "if (count2 == null) throw 'No count provided';");
-        arguments.add("'count2': count2");
+        arguments.add("'$name': count2");
         break;
 
       case "constant":
@@ -354,7 +354,7 @@
         conversions.add(
             "List<Object> ${name}Parts = labeler.labelConstant(_${name});");
         conversions2.add("String ${name} = ${name}Parts.join();");
-        arguments.add("'constant': _constant");
+        arguments.add("'$name': _constant");
         break;
 
       case "num1":
@@ -362,7 +362,7 @@
         conversions.add("$ignoreNotNull\n"
             "if (_num1 == null) throw 'No number provided';");
         conversions.add("String num1 = ${format('_num1')};");
-        arguments.add("'num1': _num1");
+        arguments.add("'$name': _num1");
         break;
 
       case "num2":
@@ -370,7 +370,7 @@
         conversions.add("$ignoreNotNull\n"
             "if (_num2 == null) throw 'No number provided';");
         conversions.add("String num2 = ${format('_num2')};");
-        arguments.add("'num2': _num2");
+        arguments.add("'$name': _num2");
         break;
 
       case "num3":
@@ -378,7 +378,7 @@
         conversions.add("$ignoreNotNull\n"
             "if (_num3 == null) throw 'No number provided';");
         conversions.add("String num3 = ${format('_num3')};");
-        arguments.add("'num3': _num3");
+        arguments.add("'$name': _num3");
         break;
 
       default:
diff --git a/pkg/vm/lib/target/vm.dart b/pkg/vm/lib/target/vm.dart
index d943670..e08f278 100644
--- a/pkg/vm/lib/target/vm.dart
+++ b/pkg/vm/lib/target/vm.dart
@@ -21,7 +21,8 @@
     show VmConstantsBackend;
 
 import '../transformations/call_site_annotator.dart' as callSiteAnnotator;
-import '../transformations/lowering.dart' as lowering show transformLibraries;
+import '../transformations/lowering.dart' as lowering
+    show transformLibraries, transformProcedure;
 import '../transformations/ffi_definitions.dart' as transformFfiDefinitions
     show transformLibraries;
 import '../transformations/ffi_use_sites.dart' as transformFfiUseSites
@@ -189,6 +190,10 @@
     transformAsync.transformProcedure(
         new TypeEnvironment(coreTypes, hierarchy), procedure);
     logger?.call("Transformed async functions");
+
+    lowering.transformProcedure(
+        procedure, coreTypes, hierarchy, flags.enableNullSafety);
+    logger?.call("Lowering transformations performed");
   }
 
   Expression _instantiateInvocationMirrorWithType(
diff --git a/pkg/vm/lib/transformations/list_literals_lowering.dart b/pkg/vm/lib/transformations/list_literals_lowering.dart
new file mode 100644
index 0000000..e6b5e13
--- /dev/null
+++ b/pkg/vm/lib/transformations/list_literals_lowering.dart
@@ -0,0 +1,59 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:front_end/src/api_unstable/vm.dart'
+    show isRedirectingFactoryField;
+import 'package:kernel/ast.dart';
+import 'package:kernel/core_types.dart' show CoreTypes;
+
+/// VM-specific specialization of list literals.
+///
+/// Transforms list literals of small length into calls to specialized
+/// list constructors.
+class ListLiteralsLowering {
+  // Number of specialized factories for list literals.
+  static const numSpecializedFactories = 8;
+
+  final CoreTypes coreTypes;
+
+  // Default _GrowableList(int length) factory. Used to generate empty list
+  // literals.
+  final Procedure _defaultFactory;
+
+  // Specialized _GrowableList._literalN(e1, ..., eN) factories.
+  final List<Procedure> _specializedFactories =
+      List<Procedure>.filled(numSpecializedFactories, null);
+
+  ListLiteralsLowering(this.coreTypes)
+      : _defaultFactory =
+            coreTypes.index.getMember('dart:core', '_GrowableList', '');
+
+  Procedure getSpecializedFactory(int length) =>
+      (_specializedFactories[length - 1] ??= coreTypes.index
+          .getMember('dart:core', '_GrowableList', '_literal$length'));
+
+  Expression transformListLiteral(ListLiteral node) {
+    if (node.isConst) {
+      throw 'Unexpected constant ListLiteral node'
+          ' (such nodes should be converted to ConstantExpression): $node';
+    }
+    if (node.parent is Field && isRedirectingFactoryField(node.parent)) {
+      // Do not transform list literals which are used to represent
+      // redirecting factories.
+      return node;
+    }
+    final int length = node.expressions.length;
+    if (length == 0) {
+      return StaticInvocation(_defaultFactory,
+          Arguments([IntLiteral(0)], types: [node.typeArgument]))
+        ..fileOffset = node.fileOffset;
+    } else if (length <= numSpecializedFactories) {
+      final factory = getSpecializedFactory(length);
+      return StaticInvocation(
+          factory, Arguments(node.expressions, types: [node.typeArgument]))
+        ..fileOffset = node.fileOffset;
+    }
+    return node;
+  }
+}
diff --git a/pkg/vm/lib/transformations/lowering.dart b/pkg/vm/lib/transformations/lowering.dart
index 19fee1a..4b320ad 100644
--- a/pkg/vm/lib/transformations/lowering.dart
+++ b/pkg/vm/lib/transformations/lowering.dart
@@ -11,6 +11,7 @@
     show StaticTypeContext, TypeEnvironment;
 import 'package:vm/transformations/specializer/factory_specializer.dart';
 import 'late_var_init_transformer.dart' show LateVarInitTransformer;
+import 'list_literals_lowering.dart' show ListLiteralsLowering;
 
 /// VM-specific lowering transformations and optimizations combined into a
 /// single transformation pass.
@@ -23,11 +24,18 @@
   libraries.forEach(transformer.visitLibrary);
 }
 
+void transformProcedure(Procedure procedure, CoreTypes coreTypes,
+    ClassHierarchy hierarchy, bool nullSafety) {
+  final transformer = _Lowering(coreTypes, hierarchy, nullSafety);
+  procedure.accept(transformer);
+}
+
 class _Lowering extends Transformer {
   final TypeEnvironment env;
   final bool nullSafety;
   final LateVarInitTransformer lateVarInitTransformer;
   final FactorySpecializer factorySpecializer;
+  final ListLiteralsLowering listLiteralsLowering;
 
   Member _currentMember;
   StaticTypeContext _cachedStaticTypeContext;
@@ -35,7 +43,8 @@
   _Lowering(CoreTypes coreTypes, ClassHierarchy hierarchy, this.nullSafety)
       : env = TypeEnvironment(coreTypes, hierarchy),
         lateVarInitTransformer = LateVarInitTransformer(),
-        factorySpecializer = FactorySpecializer(coreTypes);
+        factorySpecializer = FactorySpecializer(coreTypes),
+        listLiteralsLowering = ListLiteralsLowering(coreTypes);
 
   StaticTypeContext get _staticTypeContext =>
       _cachedStaticTypeContext ??= StaticTypeContext(_currentMember, env);
@@ -76,4 +85,10 @@
     node.transformChildren(this);
     return lateVarInitTransformer.transformAssertBlock(node);
   }
+
+  @override
+  visitListLiteral(ListLiteral node) {
+    node.transformChildren(this);
+    return listLiteralsLowering.transformListLiteral(node);
+  }
 }
diff --git a/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect b/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect
index 250bacb..d0227dd 100644
--- a/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/summary_collector/control_flow.dart.expect
@@ -156,10 +156,11 @@
 t5 = _TypeCheck (t4 against dart.core::bool*) (for #lib::foo(x = new #lib::C2()) as dart.core::bool*)
 t6 = _Call direct [#lib::C3.] (_T (#lib::C3))
 t7 = _Call direct [#lib::C4.] (_T (#lib::C4))
-t8* = _Call direct [#lib::foo] (_T (dart.core::_GrowableList<#lib::C4*>))
-t9 = _Call direct [#lib::foo] (_T (#lib::C3))
-t10 = _Join [dynamic] (_T (#lib::C3), t8)
-t11 = _Call direct [#lib::bar] (t10)
+t8* = _Call direct [dart.core::_GrowableList._literal2] (#lib::C4*, _T (#lib::C4), _T {})
+t9* = _Call direct [#lib::foo] (t8)
+t10 = _Call direct [#lib::foo] (_T (#lib::C3))
+t11 = _Join [dynamic] (_T (#lib::C3), t9)
+t12 = _Call direct [#lib::bar] (t11)
 RESULT: _T {}?
 ------------ loop1 ------------
 t0 = _Call direct [#lib::C1.] (_T (#lib::C1))
@@ -190,14 +191,15 @@
 ------------ loop4 ------------
 t0 = _Call direct [#lib::C1.] (_T (#lib::C1))
 t1 = _Call direct [#lib::C2.] (_T (#lib::C2))
-t2 = _Call direct [#lib::foo] (_T (#lib::C2))
-t3* = _Call get [dart.core::Iterable.iterator] (_T (dart.core::_GrowableList<dynamic?>))
-t4* = _Call [dart.core::Iterator.moveNext] (t3)
-t5 = _Narrow (t3 to _T ANY)
-t6 = _Call get [dart.core::Iterator.current] (t5)
+t2* = _Call direct [#lib::foo] (_T (#lib::C2))
+t3* = _Call direct [dart.core::_GrowableList._literal1] (dynamic?, t2)
+t4* = _Call get [dart.core::Iterable.iterator] (t3)
+t5* = _Call [dart.core::Iterator.moveNext] (t4)
+t6 = _Narrow (t4 to _T ANY)
+t7 = _Call get [dart.core::Iterator.current] (t6)
 x_0 = _Join [dynamic] (_T (#lib::C2), _T (#lib::C3))
-t8 = _Call direct [#lib::foo] (x_0)
-t9 = _Call direct [#lib::C3.] (_T (#lib::C3))
+t9 = _Call direct [#lib::foo] (x_0)
+t10 = _Call direct [#lib::C3.] (_T (#lib::C3))
 RESULT: x_0
 ------------ loop5 ------------
 t0 = _Call direct [#lib::C1.] (_T (#lib::C1))
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_set_field2.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_set_field2.dart.expect
index b4f873e..63fc423 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_set_field2.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_set_field2.dart.expect
@@ -37,7 +37,7 @@
   new self::T1::•();
 }
 static method main(core::List<core::String*>* args) → dynamic {
-  self::foo1(<self::T1*>[]);
+  self::foo1([@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::T1*>] core::_GrowableList::•<self::T1*>(0));
   self::foo2NewValue();
   self::foo3NewT1();
 }
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/lists.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/lists.dart.expect
index c02e36d..7bb6dcf 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/lists.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/lists.dart.expect
@@ -4,8 +4,8 @@
 import "dart:_internal" as _in;
 
 class A extends core::Object {
-[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:1]  final field core::List<core::int*>* literal1 = <core::int*>[];
-[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:2]  final field core::List<core::int*>* literal2 = <core::int*>[1, 2, 3];
+[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:1]  final field core::List<core::int*>* literal1 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::_GrowableList::•<core::int*>(0);
+[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:2]  final field core::List<core::int*>* literal2 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::_GrowableList::_literal3<core::int*>(1, 2, 3);
 [@vm.inferred-type.metadata=dart.core::_ImmutableList (value: const <dart.core::int*>[])] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:3]  final field core::List<core::int*>* constLiteral1 = #C1;
 [@vm.inferred-type.metadata=dart.core::_ImmutableList (value: const <dart.core::int*>[1, 2])] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:4]  final field core::List<core::int*>* constLiteral2 = #C4;
 [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:5]  final field core::List<core::int*>* defaultConstructor1 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::_GrowableList::•<core::int*>(0);
@@ -22,7 +22,7 @@
 [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:16]  final field core::List<core::int*>* generateFactory2 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::_GrowableList::generate<core::int*>(2, (core::int* i) → core::int* => i);
 [@vm.inferred-type.metadata=dart.core::_List<dart.core::int*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:17]  final field core::List<core::int*>* generateFactory3 = [@vm.inferred-type.metadata=dart.core::_List<dart.core::int*>] core::_List::generate<core::int*>((core::int* i) → core::int* => i);
 [@vm.inferred-type.metadata=!] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:18]  final field core::List<core::int*>* generateFactory4 = let final (core::int*) →* core::int* #t3 = (core::int* i) → core::int* => i in let final core::bool #t4 = _in::unsafeCast<core::bool>([@vm.inferred-type.metadata=dart.core::bool] self::nonConstant()) in [@vm.inferred-type.metadata=!] core::List::generate<core::int*>(#t3, #t4);
-[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int*>*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:19]  final field core::List<core::List<core::int*>*>* generateFactory5 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int*>*>] core::_GrowableList::generate<core::List<core::int*>*>(2, (core::int* _) → core::List<core::int*>* => <core::int*>[]);
+[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int*>*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:19]  final field core::List<core::List<core::int*>*>* generateFactory5 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int*>*>] core::_GrowableList::generate<core::List<core::int*>*>(2, (core::int* _) → core::List<core::int*>* => core::_GrowableList::•<core::int*>(0));
   synthetic constructor •() → self::A*
     : super core::Object::•()
     ;
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/lists_nnbd.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/lists_nnbd.dart.expect
index 8d53437..2f2f5db 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/lists_nnbd.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/lists_nnbd.dart.expect
@@ -4,8 +4,8 @@
 import "dart:_internal" as _in;
 
 class A extends core::Object {
-[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:1]  final field core::List<core::int> literal1 = <core::int>[];
-[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:2]  final field core::List<core::int> literal2 = <core::int>[1, 2, 3];
+[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:1]  final field core::List<core::int> literal1 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] core::_GrowableList::•<core::int>(0);
+[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:2]  final field core::List<core::int> literal2 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] core::_GrowableList::_literal3<core::int>(1, 2, 3);
 [@vm.inferred-type.metadata=dart.core::_ImmutableList (value: const <dart.core::int*>[])] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:3]  final field core::List<core::int> constLiteral1 = #C1;
 [@vm.inferred-type.metadata=dart.core::_ImmutableList (value: const <dart.core::int*>[1, 2])] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:4]  final field core::List<core::int> constLiteral2 = #C4;
 [@vm.inferred-type.metadata=dart.core::_List<dart.core::int>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:5]  final field core::List<core::int> filledFactory1 = [@vm.inferred-type.metadata=dart.core::_List<dart.core::int>] core::_List::filled<core::int>(2, 0);
@@ -20,7 +20,7 @@
 [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:14]  final field core::List<core::int> generateFactory2 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int>] core::_GrowableList::generate<core::int>(2, (core::int i) → core::int => i);
 [@vm.inferred-type.metadata=dart.core::_List<dart.core::int>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:15]  final field core::List<core::int> generateFactory3 = [@vm.inferred-type.metadata=dart.core::_List<dart.core::int>] core::_List::generate<core::int>((core::int i) → core::int => i);
 [@vm.inferred-type.metadata=!] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:16]  final field core::List<core::int> generateFactory4 = let final (core::int) → core::int #t3 = (core::int i) → core::int => i in let final core::bool #t4 = _in::unsafeCast<core::bool>([@vm.inferred-type.metadata=dart.core::bool] self::nonConstant()) in [@vm.inferred-type.metadata=!] core::List::generate<core::int>(#t3, #t4);
-[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int>>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:17]  final field core::List<core::List<core::int>> generateFactory5 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int>>] core::_GrowableList::generate<core::List<core::int>>(2, (core::int _) → core::List<core::int> => <core::int>[]);
+[@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int>>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:17]  final field core::List<core::List<core::int>> generateFactory5 = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::List<dart.core::int>>] core::_GrowableList::generate<core::List<core::int>>(2, (core::int _) → core::List<core::int> => core::_GrowableList::•<core::int>(0));
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect
index 5b69347..6aeb4eb 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/no_such_method.dart.expect
@@ -53,7 +53,7 @@
 [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2]  no-such-method-forwarder method foo() → dynamic
     return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::B.noSuchMethod] [@vm.inferred-type.metadata=#lib::T1 (skip check)] this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))));
 [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:4,getterSelectorId:5] [@vm.unboxing-info.metadata=(i,i,i,i)->b]  no-such-method-forwarder method bazz([@vm.inferred-type.metadata=dart.core::_Smi (value: 1)] dynamic a1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 2)] dynamic a2, [@vm.inferred-type.metadata=dart.core::_Smi (value: 3)] dynamic a3, [@vm.inferred-type.metadata=dart.core::_Smi (value: 4)] dynamic a4) → dynamic
-    return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::B.noSuchMethod] [@vm.inferred-type.metadata=#lib::T1 (skip check)] this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[a1, a2, a3, a4, #C7]), [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))));
+    return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::B.noSuchMethod] [@vm.inferred-type.metadata=#lib::T1 (skip check)] this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, core::List::unmodifiable<dynamic>([@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic>] core::_GrowableList::_literal5<dynamic>()), [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))));
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C*
@@ -72,7 +72,7 @@
 [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:1,getterSelectorId:2]  no-such-method-forwarder method foo() → dynamic
     return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::C.noSuchMethod] [@vm.inferred-type.metadata=#lib::T2 (skip check)] this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))));
 [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:4,getterSelectorId:5] [@vm.unboxing-info.metadata=(i,i,i,i)->b]  no-such-method-forwarder method bazz([@vm.inferred-type.metadata=dart.core::_Smi (value: 1)] dynamic a1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 2)] dynamic a2, [@vm.inferred-type.metadata=dart.core::_Smi (value: 3)] dynamic a3, [@vm.inferred-type.metadata=dart.core::_Smi (value: 4)] dynamic a4) → dynamic
-    return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::C.noSuchMethod] [@vm.inferred-type.metadata=#lib::T2 (skip check)] this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, core::List::unmodifiable<dynamic>(<dynamic>[a1, a2, a3, a4, #C7]), [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))));
+    return _in::unsafeCast<dynamic>([@vm.direct-call.metadata=#lib::C.noSuchMethod] [@vm.inferred-type.metadata=#lib::T2 (skip check)] this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#C6, 0, #C2, core::List::unmodifiable<dynamic>([@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic>] core::_GrowableList::_literal5<dynamic>()), [@vm.inferred-type.metadata=dart.collection::UnmodifiableMapView<dart.core::Symbol*, dynamic>] core::Map::unmodifiable<core::Symbol*, dynamic>(#C4))));
 }
 class E extends core::Object implements self::A {
   synthetic constructor •() → self::E*
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/null_check_elimination_nnbd.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/null_check_elimination_nnbd.dart.expect
index 1b24ebc..90d79cb 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/null_check_elimination_nnbd.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/null_check_elimination_nnbd.dart.expect
@@ -19,7 +19,7 @@
 static method testAlwaysNull([@vm.inferred-type.metadata=#lib::A?] self::A a) → dynamic
   return [@vm.direct-call.metadata=#lib::A.alwaysNull??] [@vm.inferred-type.metadata=dart.core::Null? (value: null)] a.{self::A::alwaysNull}!;
 static method main() → void {
-  final core::List<self::A> list = <self::A>[new self::A::•("foo", null), self::staticField];
+  final core::List<self::A> list = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::A>] core::_GrowableList::_literal2<self::A>(new self::A::•("foo", null), [@vm.inferred-type.metadata=#lib::A?] self::staticField);
   {
     core::Iterator<self::A> :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::A>] list.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/null_test_elimination.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/null_test_elimination.dart.expect
index 17ed46c..2c04a27 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/null_test_elimination.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/null_test_elimination.dart.expect
@@ -51,7 +51,7 @@
 static method someCondition() → dynamic
   return [@vm.direct-call.metadata=dart.core::_IntegerImplementation.==] [@vm.inferred-type.metadata=dart.core::bool (skip check)] [@vm.inferred-type.metadata=int] core::int::parse("1").{core::num::==}(1);
 static method main() → void {
-  final core::List<self::A*>* list = <self::A*>[new self::A::•("foo", null), self::staticField];
+  final core::List<self::A*>* list = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::A*>] core::_GrowableList::_literal2<self::A*>(new self::A::•("foo", null), [@vm.inferred-type.metadata=#lib::A?] self::staticField);
   {
     core::Iterator<self::A*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::A*>] list.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/name_mangling_test.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/name_mangling_test.dart.expect
index 6f760ed..2afead4 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/name_mangling_test.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/name_mangling_test.dart.expect
@@ -7,7 +7,7 @@
 import "file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/name_mangling.pb.dart";
 
 static method main() → dynamic {
-  pb::NameManglingKeep* n = [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/name_mangling.pb.dart::NameManglingKeep] pb::NameManglingKeep::fromBuffer(<core::int*>[]);
+  pb::NameManglingKeep* n = [@vm.inferred-type.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/name_mangling.pb.dart::NameManglingKeep] pb::NameManglingKeep::fromBuffer([@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::_GrowableList::•<core::int*>(0));
   if([@vm.direct-call.metadata=library file:pkg/vm/testcases/transformations/type_flow/transformer/protobuf_handler/lib/generated/name_mangling.pb.dart::NameManglingKeep.hasClone_10] [@vm.inferred-type.metadata=dart.core::bool (skip check)] n.{pb::NameManglingKeep::hasClone_10}()) {
     core::print("Has clone field");
   }
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/regress_37455.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/regress_37455.dart.expect
index 416164b..b142142 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/regress_37455.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/regress_37455.dart.expect
@@ -3,29 +3,29 @@
 import "dart:core" as core;
 
 class A extends core::Object {
-[@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:1]  final field core::List<dynamic>* afield;
-  constructor •([@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic>] core::List<dynamic>* afield) → self::A*
+[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasNonThisUses:false,hasTearOffUses:false,getterSelectorId:1]  final field core::List<dynamic>* afield;
+  constructor •(core::List<dynamic>* afield) → self::A*
     : self::A::afield = afield, super core::Object::•()
     ;
 [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:2,getterSelectorId:3]  method toString() → core::String*
-    return [@vm.direct-call.metadata=dart.core::_GrowableList.toString] [@vm.inferred-type.metadata=!? (skip check) (receiver not int)] [@vm.direct-call.metadata=#lib::A.afield] [@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic>] this.{self::A::afield}.{core::Object::toString}();
+    return [@vm.inferred-type.metadata=!? (receiver not int)] [@vm.direct-call.metadata=#lib::A.afield] this.{self::A::afield}.{core::Object::toString}();
 }
 class B extends core::Object {
   synthetic constructor •() → self::B*
     : super core::Object::•()
     ;
 [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasTearOffUses:false,methodOrSetterSelectorId:4,getterSelectorId:5]  method _foo([@vm.inferred-type.metadata=dart._internal::ListIterator<dart.core::int*>] core::Iterator<core::int*>* iter) → core::List<dynamic>* {
-    core::List<dynamic>* result = <dynamic>[];
+    core::List<dynamic>* result = [@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic>] core::_GrowableList::•<dynamic>(0);
     while ([@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] iter.{core::Iterator::moveNext}()) {
       if([@vm.direct-call.metadata=dart.core::_IntegerImplementation.<??] [@vm.inferred-type.metadata=dart.core::bool (skip check)] [@vm.direct-call.metadata=dart._internal::ListIterator.current] [@vm.inferred-type.metadata=int?] iter.{core::Iterator::current}.{core::num::<}(0)) {
         return result;
       }
-      [@vm.call-site-attributes.metadata=receiverType:dart.core::List<dynamic>*] [@vm.direct-call.metadata=dart.core::_GrowableList.add] [@vm.inferred-type.metadata=!? (skip check)] result.{core::List::add}(new self::A::•([@vm.direct-call.metadata=#lib::B._foo] [@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic> (skip check)] this.{self::B::_foo}(iter)));
+      [@vm.call-site-attributes.metadata=receiverType:dart.core::List<dynamic>*] [@vm.direct-call.metadata=dart.core::_GrowableList.add] [@vm.inferred-type.metadata=!? (skip check)] result.{core::List::add}(new self::A::•([@vm.direct-call.metadata=#lib::B._foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::B::_foo}(iter)));
     }
     return result;
   }
 }
 static method main() → void {
-  core::List<dynamic>* list = [@vm.direct-call.metadata=#lib::B._foo] [@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic> (skip check)] new self::B::•().{self::B::_foo}([@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<dart.core::int*>]<core::int*>[1, 2, 3].{core::Iterable::iterator});
+  core::List<dynamic>* list = [@vm.direct-call.metadata=#lib::B._foo] [@vm.inferred-type.metadata=dart.core::_GrowableList<dynamic> (skip check)] new self::B::•().{self::B::_foo}([@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<dart.core::int*>] [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator});
   core::print(list);
 }
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/regress_37719.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/regress_37719.dart.expect
index 662b365..3798fa8 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/regress_37719.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/regress_37719.dart.expect
@@ -5,4 +5,4 @@
 [@vm.unboxing-info.metadata=(b)->i]static method foo([@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::List<core::int*>* x) → dynamic
   return [@vm.direct-call.metadata=dart.core::_IntegerImplementation.+] [@vm.inferred-type.metadata=int (skip check)] 1.{core::num::+}([@vm.direct-call.metadata=dart.core::_GrowableList.[]] [@vm.inferred-type.metadata=int? (skip check)] x.{core::List::[]}(0));
 static method main() → dynamic
-  return [@vm.inferred-type.metadata=dart.core::Null? (value: null)] core::print([@vm.inferred-type.metadata=int] self::foo(<core::int*>[1]));
+  return [@vm.inferred-type.metadata=dart.core::Null? (value: null)] core::print([@vm.inferred-type.metadata=int] self::foo([@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::int*>] core::_GrowableList::_literal1<core::int*>(1)));
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/regress_42413.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/regress_42413.dart.expect
index c79f877..187070f 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/regress_42413.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/regress_42413.dart.expect
@@ -14,7 +14,7 @@
 [@vm.inferred-type.metadata=dart.core::_GrowableList?<#lib::B*>] [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasNonThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:2,getterSelectorId:3]  field dynamic list = null;
   constructor •() → self::A*
     : super core::Object::•() {
-    [@vm.direct-call.metadata=#lib::A.list] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A::list} = <self::B*>[new self::B::•()];
+    [@vm.direct-call.metadata=#lib::A.list] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A::list} = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::B*>] core::_GrowableList::_literal1<self::B*>(new self::B::•());
   }
 [@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:4,getterSelectorId:5]  @#C3
   method forIn() → void {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_1_test.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_1_test.dart.expect
index 5df0c21..3162618 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_1_test.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_1_test.dart.expect
@@ -36,7 +36,7 @@
     [@vm.direct-call.metadata=#lib::B.foo] [@vm.inferred-type.metadata=!? (skip check)] new self::B::•().{self::B::foo}([@vm.direct-call.metadata=dart.math::_Random.nextInt] [@vm.inferred-type.metadata=int (skip check)] r.{math::Random::nextInt}(10));
     [@vm.direct-call.metadata=#lib::A.foo] [@vm.inferred-type.metadata=!? (skip check)] new self::A::•().{self::A::foo}(null);
   }
-  final core::List<self::B*>* l = <self::B*>[new self::B::•(), new self::C::•()];
+  final core::List<self::B*>* l = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::B*>] core::_GrowableList::_literal2<self::B*>(new self::B::•(), new self::C::•());
   {
     core::Iterator<self::B*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::B*>] l.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_2_test.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_2_test.dart.expect
index 11a9912..a700bd1 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_2_test.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/regress_42418_2_test.dart.expect
@@ -36,7 +36,7 @@
     [@vm.direct-call.metadata=#lib::B.bar] [@vm.inferred-type.metadata=!? (skip check)] new self::B::•().{self::B::bar}([@vm.direct-call.metadata=dart.math::_Random.nextInt] [@vm.inferred-type.metadata=int (skip check)] r.{math::Random::nextInt}(10));
     [@vm.direct-call.metadata=#lib::B.bar] [@vm.inferred-type.metadata=!? (skip check)] new self::B::•().{self::B::bar}(null);
   }
-  final core::List<self::B*>* l = <self::B*>[new self::B::•(), new self::C::•()];
+  final core::List<self::B*>* l = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::B*>] core::_GrowableList::_literal2<self::B*>(new self::B::•(), new self::C::•());
   {
     core::Iterator<self::B*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::B*>] l.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/selector_id_assignments.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/selector_id_assignments.dart.expect
index 7b4579e..53f54b7 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/selector_id_assignments.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/selector_id_assignments.dart.expect
@@ -101,7 +101,7 @@
     ;
 }
 static method main() → dynamic {
-  core::List<self::A1*>* x1 = <self::A1*>[new self::A1::•(), new self::B1::•(), new self::C1::•()];
+  core::List<self::A1*>* x1 = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::A1*>] core::_GrowableList::_literal3<self::A1*>(new self::A1::•(), new self::B1::•(), new self::C1::•());
   {
     core::Iterator<self::A1*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::A1*>] x1.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -109,7 +109,7 @@
       o.{self::A1::foo}();
     }
   }
-  core::List<self::A2*>* x2 = <self::A2*>[new self::A2::•(), new self::B2::•()];
+  core::List<self::A2*>* x2 = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::A2*>] core::_GrowableList::_literal2<self::A2*>(new self::A2::•(), new self::B2::•());
   {
     core::Iterator<self::A2*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::A2*>] x2.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -117,7 +117,7 @@
       o.{self::A2::foo}();
     }
   }
-  core::List<self::A3*>* x3 = <self::A3*>[new self::B3::•(), new self::C3::•()];
+  core::List<self::A3*>* x3 = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::A3*>] core::_GrowableList::_literal2<self::A3*>(new self::B3::•(), new self::C3::•());
   {
     core::Iterator<self::A3*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::A3*>] x3.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -125,7 +125,7 @@
       o.{self::A3::foo}();
     }
   }
-  core::List<self::A4*>* x4 = <self::A4*>[new self::A4::•(), new self::D4::•()];
+  core::List<self::A4*>* x4 = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::A4*>] core::_GrowableList::_literal2<self::A4*>(new self::A4::•(), new self::D4::•());
   {
     core::Iterator<self::A4*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::A4*>] x4.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -133,7 +133,7 @@
       o.{self::A4::foo}();
     }
   }
-  core::List<self::B4*>* y4 = <self::B4*>[new self::B4::•(), new self::D4::•(), new self::E4::•()];
+  core::List<self::B4*>* y4 = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::B4*>] core::_GrowableList::_literal3<self::B4*>(new self::B4::•(), new self::D4::•(), new self::E4::•());
   {
     core::Iterator<self::B4*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::B4*>] y4.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
@@ -141,7 +141,7 @@
       o.{self::B4::foo}();
     }
   }
-  core::List<self::C4*>* z4 = <self::C4*>[new self::C4::•(), new self::E4::•()];
+  core::List<self::C4*>* z4 = [@vm.inferred-type.metadata=dart.core::_GrowableList<#lib::C4*>] core::_GrowableList::_literal2<self::C4*>(new self::C4::•(), new self::E4::•());
   {
     core::Iterator<self::C4*>* :sync-for-iterator = [@vm.direct-call.metadata=dart.core::_GrowableList.iterator] [@vm.inferred-type.metadata=dart._internal::ListIterator<#lib::C4*>] z4.{core::Iterable::iterator};
     for (; [@vm.direct-call.metadata=dart._internal::ListIterator.moveNext] [@vm.inferred-type.metadata=dart.core::bool (skip check)] :sync-for-iterator.{core::Iterator::moveNext}(); ) {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method.dart.expect
index 34bb4b0..b66946e 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method.dart.expect
@@ -125,7 +125,7 @@
   [@vm.inferred-type.metadata=!? (receiver not int)] self::usedObject.{core::Object::==}(null) ?{dynamic} self::usedObject = object : null;
 }
 static method main() → dynamic {
-  final core::List<core::Object*>* values = <core::Object*>[new self::Impl1::•(), new self::BaseImpl2::•(), new self::SubImpl3::•()];
+  final core::List<core::Object*>* values = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::Object*>] core::_GrowableList::_literal3<core::Object*>(new self::Impl1::•(), new self::BaseImpl2::•(), new self::SubImpl3::•());
   final self::Impl1* a = [@vm.direct-call.metadata=dart.core::_GrowableList.[]] [@vm.inferred-type.metadata=!? (skip check)] values.{core::List::[]}([@vm.inferred-type.metadata=int] core::int::parse("0")) as self::Impl1*;
   final self::BaseImpl2* b = [@vm.direct-call.metadata=dart.core::_GrowableList.[]] [@vm.inferred-type.metadata=!? (skip check)] values.{core::List::[]}([@vm.inferred-type.metadata=int] core::int::parse("1")) as self::BaseImpl2*;
   final self::SubImpl3* c = [@vm.direct-call.metadata=dart.core::_GrowableList.[]] [@vm.inferred-type.metadata=!? (skip check)] values.{core::List::[]}([@vm.inferred-type.metadata=int] core::int::parse("2")) as self::SubImpl3*;
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method_tearoff.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method_tearoff.dart.expect
index 0b24d0e..2411b2f 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method_tearoff.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/unboxed_instance_method_tearoff.dart.expect
@@ -125,7 +125,7 @@
   [@vm.inferred-type.metadata=!? (receiver not int)] self::usedObject.{core::Object::==}(null) ?{dynamic} self::usedObject = object : null;
 }
 static method main() → dynamic {
-  final core::List<core::Object*>* values = <core::Object*>[new self::Impl1::•(), new self::BaseImpl2::•(), new self::SubImpl3::•()];
+  final core::List<core::Object*>* values = [@vm.inferred-type.metadata=dart.core::_GrowableList<dart.core::Object*>] core::_GrowableList::_literal3<core::Object*>(new self::Impl1::•(), new self::BaseImpl2::•(), new self::SubImpl3::•());
   final self::Impl1* a = [@vm.direct-call.metadata=dart.core::_GrowableList.[]] [@vm.inferred-type.metadata=!? (skip check)] values.{core::List::[]}([@vm.inferred-type.metadata=int] core::int::parse("0")) as self::Impl1*;
   final self::BaseImpl2* b = [@vm.direct-call.metadata=dart.core::_GrowableList.[]] [@vm.inferred-type.metadata=!? (skip check)] values.{core::List::[]}([@vm.inferred-type.metadata=int] core::int::parse("1")) as self::BaseImpl2*;
   final self::SubImpl3* c = [@vm.direct-call.metadata=dart.core::_GrowableList.[]] [@vm.inferred-type.metadata=!? (skip check)] values.{core::List::[]}([@vm.inferred-type.metadata=int] core::int::parse("2")) as self::SubImpl3*;
diff --git a/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect b/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect
index c1d8144..d27c9fc 100644
--- a/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect
+++ b/pkg/vm/testcases/transformations/unreachable_code_elimination/uce_testcases.dart.expect
@@ -67,7 +67,7 @@
   for (; ; ) {
   }
   {
-    core::Iterator<core::int*>* :sync-for-iterator = <core::int*>[1, 2].{core::Iterable::iterator};
+    core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal2<core::int*>(1, 2).{core::Iterable::iterator};
     for (; :sync-for-iterator.{core::Iterator::moveNext}(); ) {
       core::int* i = :sync-for-iterator.{core::Iterator::current};
     }
diff --git a/runtime/bin/dartdev_isolate.cc b/runtime/bin/dartdev_isolate.cc
index df01614..468ef64 100644
--- a/runtime/bin/dartdev_isolate.cc
+++ b/runtime/bin/dartdev_isolate.cc
@@ -57,13 +57,14 @@
           (strncmp(script_uri, "google3://", 10) != 0));
 }
 
-Utils::CStringUniquePtr DartDevIsolate::TryResolveDartDevSnapshotPath() {
+Utils::CStringUniquePtr DartDevIsolate::TryResolveArtifactPath(
+    const char* filename) {
   // |dir_prefix| includes the last path seperator.
   auto dir_prefix = EXEUtils::GetDirectoryPrefixFromExeName();
 
   // First assume we're in dart-sdk/bin.
   char* snapshot_path =
-      Utils::SCreate("%ssnapshots/dartdev.dill", dir_prefix.get());
+      Utils::SCreate("%ssnapshots/%s", dir_prefix.get(), filename);
   if (File::Exists(nullptr, snapshot_path)) {
     return Utils::CreateCStringUniquePtr(snapshot_path);
   }
@@ -71,7 +72,7 @@
 
   // If we're not in dart-sdk/bin, we might be in one of the $SDK/out/*
   // directories. Try to use a snapshot from a previously built SDK.
-  snapshot_path = Utils::SCreate("%sdartdev.dill", dir_prefix.get());
+  snapshot_path = Utils::SCreate("%s%s", dir_prefix.get(), filename);
   if (File::Exists(nullptr, snapshot_path)) {
     return Utils::CreateCStringUniquePtr(snapshot_path);
   }
@@ -79,6 +80,14 @@
   return Utils::CreateCStringUniquePtr(nullptr);
 }
 
+Utils::CStringUniquePtr DartDevIsolate::TryResolveDartDevSnapshotPath() {
+  return TryResolveArtifactPath("dartdev.dart.snapshot");
+}
+
+Utils::CStringUniquePtr DartDevIsolate::TryResolveDartDevKernelPath() {
+  return TryResolveArtifactPath("dartdev.dill");
+}
+
 void DartDevIsolate::DartDevRunner::Run(
     Dart_IsolateGroupCreateCallback create_isolate,
     char** packages_file,
diff --git a/runtime/bin/dartdev_isolate.h b/runtime/bin/dartdev_isolate.h
index 8fd0bd9..a25664c 100644
--- a/runtime/bin/dartdev_isolate.h
+++ b/runtime/bin/dartdev_isolate.h
@@ -41,8 +41,10 @@
 
   static bool should_run_dart_dev() { return should_run_dart_dev_; }
 
-  // Attempts to find the DartDev snapshot. If the snapshot cannot be found,
-  // the VM will shutdown.
+  // Attempts to find the path of the DartDev kernel file.
+  static Utils::CStringUniquePtr TryResolveDartDevKernelPath();
+
+  // Attempts to find the path of the DartDev snapshot.
   static Utils::CStringUniquePtr TryResolveDartDevSnapshotPath();
 
   // Starts a DartDev instance in a new isolate and runs it to completion.
@@ -89,6 +91,8 @@
   };
 
  private:
+  static Utils::CStringUniquePtr TryResolveArtifactPath(const char* filename);
+
   static DartDevRunner runner_;
   static bool should_run_dart_dev_;
 
diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
index 7299ade..cdffae9 100644
--- a/runtime/bin/main.cc
+++ b/runtime/bin/main.cc
@@ -584,40 +584,76 @@
   int64_t start = Dart_TimelineGetMicros();
 
   auto dartdev_path = DartDevIsolate::TryResolveDartDevSnapshotPath();
-  if (dartdev_path == nullptr) {
-    *error = Utils::StrDup("Unable to find DartDev snapshot");
-    return nullptr;
-  }
 
+  Dart_Isolate isolate = nullptr;
   const uint8_t* isolate_snapshot_data = core_isolate_snapshot_data;
   const uint8_t* isolate_snapshot_instructions =
       core_isolate_snapshot_instructions;
+  IsolateGroupData* isolate_group_data = nullptr;
+  IsolateData* isolate_data = nullptr;
 
-  auto isolate_group_data =
-      new IsolateGroupData(DART_DEV_ISOLATE_NAME, packages_config, nullptr,
-                           /*isolate_run_app_snapshot*/ false);
-  uint8_t* application_kernel_buffer = NULL;
-  intptr_t application_kernel_buffer_size = 0;
-  dfe.ReadScript(dartdev_path.get(), &application_kernel_buffer,
-                 &application_kernel_buffer_size);
-  isolate_group_data->SetKernelBufferNewlyOwned(application_kernel_buffer,
-                                                application_kernel_buffer_size);
+  AppSnapshot* app_snapshot;
+  bool isolate_run_app_snapshot = true;
+  if (dartdev_path.get() != nullptr &&
+      (app_snapshot = Snapshot::TryReadAppSnapshot(dartdev_path.get())) !=
+          nullptr) {
+    const uint8_t* isolate_snapshot_data = NULL;
+    const uint8_t* isolate_snapshot_instructions = NULL;
+    const uint8_t* ignore_vm_snapshot_data;
+    const uint8_t* ignore_vm_snapshot_instructions;
+    app_snapshot->SetBuffers(
+        &ignore_vm_snapshot_data, &ignore_vm_snapshot_instructions,
+        &isolate_snapshot_data, &isolate_snapshot_instructions);
+    isolate_group_data =
+        new IsolateGroupData(dartdev_path.get(), packages_config, app_snapshot,
+                             isolate_run_app_snapshot);
+    isolate_data = new IsolateData(isolate_group_data);
+    isolate = Dart_CreateIsolateGroup(
+        DART_DEV_ISOLATE_NAME, DART_DEV_ISOLATE_NAME, isolate_snapshot_data,
+        isolate_snapshot_instructions, flags, isolate_group_data, isolate_data,
+        error);
+  }
 
-  auto isolate_data = new IsolateData(isolate_group_data);
-  Dart_Isolate isolate = nullptr;
-  isolate = Dart_CreateIsolateGroup(
-      DART_DEV_ISOLATE_NAME, DART_DEV_ISOLATE_NAME, isolate_snapshot_data,
-      isolate_snapshot_instructions, flags, isolate_group_data, isolate_data,
-      error);
+  if (isolate == nullptr) {
+    isolate_run_app_snapshot = false;
+    dartdev_path = DartDevIsolate::TryResolveDartDevKernelPath();
+    // Clear error from app snapshot and retry from kernel.
+    free(*error);
+    *error = nullptr;
+
+    if (app_snapshot != nullptr) {
+      delete app_snapshot;
+    }
+
+    if (dartdev_path.get() != nullptr) {
+      isolate_group_data =
+          new IsolateGroupData(DART_DEV_ISOLATE_NAME, packages_config, nullptr,
+                               isolate_run_app_snapshot);
+      uint8_t* application_kernel_buffer = NULL;
+      intptr_t application_kernel_buffer_size = 0;
+      dfe.ReadScript(dartdev_path.get(), &application_kernel_buffer,
+                     &application_kernel_buffer_size);
+      isolate_group_data->SetKernelBufferNewlyOwned(
+          application_kernel_buffer, application_kernel_buffer_size);
+
+      isolate_data = new IsolateData(isolate_group_data);
+      isolate = Dart_CreateIsolateGroup(
+          DART_DEV_ISOLATE_NAME, DART_DEV_ISOLATE_NAME, isolate_snapshot_data,
+          isolate_snapshot_instructions, flags, isolate_group_data,
+          isolate_data, error);
+    }
+  }
 
   Dart_Isolate created_isolate = nullptr;
   if (isolate == nullptr) {
+    Syslog::PrintErr("Failed to start the Dart CLI isolate\n");
     delete isolate_data;
     delete isolate_group_data;
+    return nullptr;
   } else {
     created_isolate = IsolateSetupHelper(
         isolate, false, DART_DEV_ISOLATE_NAME, packages_config,
-        /*isolate_run_app_snapshot*/ false, flags, error, exit_code);
+        isolate_run_app_snapshot, flags, error, exit_code);
   }
   int64_t end = Dart_TimelineGetMicros();
   Dart_TimelineEvent("CreateAndSetupDartDevIsolate", start, end,
diff --git a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
index 3fb0587..78c6eda 100644
--- a/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
+++ b/runtime/vm/compiler/frontend/kernel_binary_flowgraph.cc
@@ -3577,14 +3577,10 @@
   // The type argument for the factory call.
   Fragment instructions = TranslateInstantiatedTypeArguments(type_arguments);
 
-  if (length == 0) {
-    instructions += IntConstant(0);
-    instructions += StaticCall(
-        position,
-        Function::ZoneHandle(Z, IG->object_store()->growable_list_factory()), 2,
-        ICData::kStatic);
-    return instructions;
-  }
+  // List literals up to 8 elements are lowered in the front-end
+  // (pkg/vm/lib/transformations/list_literals_lowering.dart)
+  const intptr_t kNumSpecializedListLiteralConstructors = 8;
+  ASSERT(length > kNumSpecializedListLiteralConstructors);
 
   LocalVariable* type = MakeTemporary();
   instructions += LoadLocal(type);
@@ -3602,11 +3598,14 @@
     instructions += StoreIndexed(kArrayCid);
   }
 
-  const Class& factory_class =
-      Class::Handle(Z, Library::LookupCoreClass(Symbols::List()));
-  const Function& factory_method = Function::ZoneHandle(
-      Z, factory_class.LookupFactory(
-             Library::PrivateCoreLibName(Symbols::ListLiteralFactory())));
+  const Class& growable_list_class =
+      Class::Handle(Z, Library::LookupCoreClass(Symbols::_GrowableList()));
+  ASSERT(!growable_list_class.IsNull());
+
+  const Function& factory_method =
+      Function::ZoneHandle(Z, growable_list_class.LookupFunctionAllowPrivate(
+                                  Symbols::_GrowableListLiteralFactory()));
+  ASSERT(!factory_method.IsNull());
 
   instructions += StaticCall(position, factory_method, 2, ICData::kStatic);
   instructions += DropTempsPreserveTop(1);  // Instantiated type_arguments.
diff --git a/runtime/vm/compiler/recognized_methods_list.h b/runtime/vm/compiler/recognized_methods_list.h
index e104c69..185af0a 100644
--- a/runtime/vm/compiler/recognized_methods_list.h
+++ b/runtime/vm/compiler/recognized_methods_list.h
@@ -195,7 +195,7 @@
   V(::, reachabilityFence, ReachabilityFence, 0xde1dc5bd)                      \
   V(_Utf8Decoder, _scan, Utf8DecoderScan, 0xb35ced99)                          \
   V(_Future, timeout, FutureTimeout, 0x6ad7d1ef)                               \
-  V(Future, wait, FutureWait, 0xb4396ca1)                                      \
+  V(Future, wait, FutureWait, 0x264aacc2)                                      \
 
 // List of intrinsics:
 // (class-name, function-name, intrinsification method, fingerprint).
diff --git a/runtime/vm/symbols.h b/runtime/vm/symbols.h
index 3ab0824..b9d33eb 100644
--- a/runtime/vm/symbols.h
+++ b/runtime/vm/symbols.h
@@ -206,7 +206,6 @@
   V(List, "List")                                                              \
   V(ListFactory, "List.")                                                      \
   V(ListFilledFactory, "List.filled")                                          \
-  V(ListLiteralFactory, "List._fromLiteral")                                   \
   V(LoadLibrary, "_loadLibrary")                                               \
   V(LocalVarDescriptors, "LocalVarDescriptors")                                \
   V(Map, "Map")                                                                \
@@ -350,6 +349,7 @@
   V(_GrowableListFactory, "_GrowableList.")                                    \
   V(_GrowableListFilledFactory, "_GrowableList.filled")                        \
   V(_GrowableListGenerateFactory, "_GrowableList.generate")                    \
+  V(_GrowableListLiteralFactory, "_GrowableList._literal")                     \
   V(_GrowableListWithData, "_GrowableList._withData")                          \
   V(_ImmutableList, "_ImmutableList")                                          \
   V(_Int16ArrayFactory, "Int16List.")                                          \
diff --git a/sdk/BUILD.gn b/sdk/BUILD.gn
index efa745a..4214311 100644
--- a/sdk/BUILD.gn
+++ b/sdk/BUILD.gn
@@ -48,6 +48,7 @@
 # ........dart2js.dart.snapshot
 # ........dart2native.dart.snapshot (if not on ia32)
 # ........dartanalyzer.dart.snapshot
+# ........dartdev.dart.snapshot
 # ........dartdev.dill
 # ........dartdevc.dart.snapshot
 # ........dartdoc.dart.snapshot
@@ -118,6 +119,10 @@
     "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
   ],
   [
+    "dartdev",
+    "../utils/dartdev:dartdev",
+  ],
+  [
     "dartdoc",
     "../utils/dartdoc",
   ],
@@ -163,6 +168,10 @@
     "../utils/dartanalyzer:generate_dartanalyzer_snapshot",
   ],
   [
+    "dartdev",
+    "../utils/dartdev:generate_dartdev_snapshot",
+  ],
+  [
     "dartdevc",
     "../utils/dartdevc",
   ],
diff --git a/sdk/lib/_internal/vm/bin/common_patch.dart b/sdk/lib/_internal/vm/bin/common_patch.dart
index cd9f149..f788ec7 100644
--- a/sdk/lib/_internal/vm/bin/common_patch.dart
+++ b/sdk/lib/_internal/vm/bin/common_patch.dart
@@ -21,7 +21,7 @@
         Zone,
         scheduleMicrotask;
 
-import "dart:collection" show HashMap;
+import "dart:collection" show HashMap, Queue;
 
 import "dart:convert" show Encoding, utf8;
 
diff --git a/sdk/lib/_internal/vm/bin/socket_patch.dart b/sdk/lib/_internal/vm/bin/socket_patch.dart
index 151fffe..fb9e7a9 100644
--- a/sdk/lib/_internal/vm/bin/socket_patch.dart
+++ b/sdk/lib/_internal/vm/bin/socket_patch.dart
@@ -491,21 +491,32 @@
   // a HttpServer, a WebSocket connection, a process pipe, etc.
   Object? owner;
 
-  static Future<List<InternetAddress>> lookup(String host,
+  static Future<List<_InternetAddress>> lookup(String host,
       {InternetAddressType type: InternetAddressType.any}) {
     return _IOService._dispatch(_IOService.socketLookup, [host, type._value])
         .then((response) {
       if (isErrorResponse(response)) {
         throw createError(response, "Failed host lookup: '$host'");
-      } else {
-        return response.skip(1).map<InternetAddress>((result) {
-          var type = InternetAddressType._from(result[0]);
-          return _InternetAddress(type, result[1], host, result[2], result[3]);
-        }).toList();
       }
+      return [
+        for (var result in response.skip(1))
+          _InternetAddress(InternetAddressType._from(result[0]), result[1],
+              host, result[2], result[3])
+      ];
     });
   }
 
+  static Stream<List<_InternetAddress>> lookupAsStream(String host,
+      {InternetAddressType type: InternetAddressType.any}) {
+    final controller = StreamController<List<_InternetAddress>>();
+    controller.onListen = () {
+      lookup(host, type: type).then((list) {
+        controller.add(list);
+      }, onError: controller.addError).whenComplete(controller.close);
+    };
+    return controller.stream;
+  }
+
   static Future<InternetAddress> reverseLookup(InternetAddress addr) {
     return _IOService._dispatch(_IOService.socketReverseLookup,
         [(addr as _InternetAddress)._in_addr]).then((response) {
@@ -572,6 +583,69 @@
         (char == '8' || char == '9' || char == 'a' || char == 'b');
   }
 
+  /// Explicitly makes two separate OS lookup requests: first for IPv4, then
+  /// after short delay for IPv6.
+  /// This avoids making single OS lookup request that internally does both IPv4
+  /// and IPv6 together, which on iOS sometimes seems to be taking unreasonably
+  /// long because of slow IPv6 lookup even though IPv4 lookup is fast.
+  static Stream<List<_InternetAddress>> staggeredLookup(String host) {
+    final controller = StreamController<List<_InternetAddress>>(sync: true);
+
+    controller.onListen = () {
+      // Completed when there are no further addresses, or when the returned
+      // stream is canceled,
+      // The latter signals that no further addresses are needed.
+      // When both completers are completed, one way or another, the stream is
+      // closed.
+      final ipv4Completer = Completer<void>();
+      final ipv6Completer = Completer<void>();
+
+      void lookupAddresses(InternetAddressType type, Completer<void> done) {
+        lookup(host, type: type).then((addresses) {
+          if (done.isCompleted) {
+            // By the time lookup is done, [connectNext] might have
+            // been able to connect to one of the resolved addresses.
+            return;
+          }
+          controller.add(addresses);
+        }, onError: (e, st) {
+          if (done.isCompleted) {
+            // By the time lookup is done, [connectNext] might have
+            // been able to connect to one of the resolved addresses.
+            return;
+          }
+          controller.addError(e, st);
+        }).whenComplete(() {
+          if (!done.isCompleted) {
+            done.complete();
+          }
+        });
+      }
+
+      lookupAddresses(InternetAddressType.IPv4, ipv4Completer);
+      // Give a chance for a connect to an IPv4 address to complete before
+      // starting an IPv6 lookup. If IPv4 connect succeeds before timer goes
+      // off, the timer gets cancelled.
+      const concurrentLookupDelay = Duration(milliseconds: 10);
+      final ipv6LookupDelay = Timer(concurrentLookupDelay, () {
+        lookupAddresses(InternetAddressType.IPv6, ipv6Completer);
+      });
+
+      Future.wait([ipv4Completer.future, ipv6Completer.future])
+          .then((_) => controller.close());
+
+      controller.onCancel = () {
+        // This is invoked when [connectNext] managed to connect to one of the
+        // looked-up addresses at which point we want to stop looking up
+        // the addresses.
+        if (!ipv4Completer.isCompleted) ipv4Completer.complete();
+        if (!ipv6Completer.isCompleted) ipv6Completer.complete();
+        ipv6LookupDelay.cancel();
+      };
+    };
+    return controller.stream;
+  }
+
   static Future<ConnectionTask<_NativeSocket>> startConnect(
       dynamic host, int port, dynamic sourceAddress) {
     // Looks up [sourceAddress] to one or more IP addresses,
@@ -596,174 +670,222 @@
             "Must be a string or native InternetAddress");
       }
     }
-    return new Future.value(host).then<List<InternetAddress>>((host) {
-      if (host is _InternetAddress) return [host];
-      return lookup(host).then((addresses) {
-        if (addresses.isEmpty) {
-          throw createError(null, "Failed host lookup: '$host'");
-        }
-        return addresses;
-      });
-    }).then((addresses) {
-      assert(addresses.isNotEmpty);
-      // Completer for result.
-      var result = new Completer<_NativeSocket>();
-      // Index of next address in [addresses] to try.
-      var index = 0;
-      // Error, set if an error occurs.
-      // Keeps first error if multiple errors occour.
-      var error = null;
-      // Active timers for on-going connection attempts.
-      // Contains all sockets which haven't received and initial
-      // write or error event.
-      var connecting = <_NativeSocket>{};
-      // Timer counting down from the last connection attempt.
-      // Reset when a new connection is attempted,
-      // which happens either when a previous timer runs out,
-      // or when a previous connection attempt fails.
-      Timer? timer;
+    return new Future.value(host).then<ConnectionTask<_NativeSocket>>((host) {
+      if (host is _InternetAddress) {
+        return tryConnectToResolvedAddresses(
+            host, port, source, Stream.value(<_InternetAddress>[host]));
+      }
+      final hostname = host as String;
+      final staggeredLookupOverride = bool.fromEnvironment(
+          "dart.library.io.force_staggered_ipv6_lookup",
+          defaultValue: false);
 
-      // Attempt to connect to the next address in [addresses].
-      //
-      // Called initially, then when either a connection attempt fails,
-      // or an amount of time has passed since the last connection
-      // was attempted.
-      void connectNext() {
-        timer?.cancel();
-        if (index >= addresses.length) {
-          if (connecting.isEmpty) {
-            assert(error != null);
-            assert(!result.isCompleted);
-            result.completeError(error);
-          }
-          return;
-        }
-        final address = addresses[index++] as _InternetAddress;
-        var socket = new _NativeSocket.normal(address);
-        // Will contain values of various types representing the result
-        // of trying to create a connection.
-        // A value of `true` means success, everything else means failure.
-        Object? connectionResult;
-        if (address.type == InternetAddressType.unix) {
-          if (source == null) {
-            connectionResult = socket.nativeCreateUnixDomainConnect(
-                address.address, _Namespace._namespace);
-          } else {
-            assert(source.type == InternetAddressType.unix);
-            connectionResult = socket.nativeCreateUnixDomainBindConnect(
-                address.address, source.address, _Namespace._namespace);
-          }
-          assert(connectionResult == true ||
-              connectionResult is Error ||
-              connectionResult is OSError);
+      // On ios name resolution can get delayed by slow IPv6 name resolution,
+      // so we run IPv4 and IPv6 name resolution in parallel(IPv6 slightly
+      // delayed so if IPv4 is successfully looked up, we don't do IPv6 look up
+      // at all) and grab first successfully resolved name we are able to connect to.
+      final Stream<List<_InternetAddress>> stream =
+          Platform.isIOS || staggeredLookupOverride
+              ? staggeredLookup(hostname)
+              : lookupAsStream(hostname);
+
+      return tryConnectToResolvedAddresses(host, port, source, stream);
+    });
+  }
+
+  static ConnectionTask<_NativeSocket> tryConnectToResolvedAddresses(
+      dynamic host,
+      int port,
+      _InternetAddress? source,
+      Stream<List<_InternetAddress>> addresses) {
+    // Completer for result.
+    final result = new Completer<_NativeSocket>();
+    // Error, set if an error occurs.
+    // Keeps first error if multiple errors occur.
+    var error = null;
+    // Contains all sockets which haven't received an initial
+    // write or error event.
+    final connecting = <_NativeSocket>{};
+    // Timer counting down from the last connection attempt.
+    // Reset when a new connection is attempted,
+    // which happens either when a previous timer runs out,
+    // or when a previous connection attempt fails.
+    Timer? timer;
+    // Addresses arrived from lookup stream, but haven't been tried to connect
+    // to yet due to Timer-based throttling.
+    final pendingLookedUp = Queue<_InternetAddress>();
+
+    // When deciding how to handle errors we need to know whether more
+    // addresses potentially are coming from the lookup stream.
+    bool isLookedUpStreamClosed = false;
+    late StreamSubscription<List<_InternetAddress>> addressesSubscription;
+
+    Object? createConnection(_InternetAddress address, _InternetAddress? source,
+        _NativeSocket socket) {
+      Object? connectionResult;
+      if (address.type == InternetAddressType.unix) {
+        if (source == null) {
+          connectionResult = socket.nativeCreateUnixDomainConnect(
+              address.address, _Namespace._namespace);
         } else {
-          if (source == null) {
-            connectionResult = socket.nativeCreateConnect(
-                address._in_addr, port, address._scope_id);
-          } else {
-            connectionResult = socket.nativeCreateBindConnect(
-                address._in_addr, port, source._in_addr, address._scope_id);
-          }
-          assert(connectionResult == true || connectionResult is OSError);
+          assert(source.type == InternetAddressType.unix);
+          connectionResult = socket.nativeCreateUnixDomainBindConnect(
+              address.address, source.address, _Namespace._namespace);
         }
-        if (connectionResult != true) {
-          // connectionResult was not a success.
-          if (connectionResult is OSError) {
-            int errorCode = connectionResult.errorCode;
-            if (source != null &&
-                errorCode != null &&
-                socket.isBindError(errorCode)) {
-              error = createError(connectionResult, "Bind failed", source);
-            } else {
-              error = createError(
-                  connectionResult, "Connection failed", address, port);
-            }
-          } else if (connectionResult is Error) {
-            error = connectionResult;
-          } else {
-            error = createError(null, "Connection failed", address);
-          }
-          connectNext(); // Try again after failure to connect.
-          return;
+        assert(connectionResult == true ||
+            connectionResult is Error ||
+            connectionResult is OSError);
+      } else {
+        if (source == null) {
+          connectionResult = socket.nativeCreateConnect(
+              address._in_addr, port, address._scope_id);
+        } else {
+          connectionResult = socket.nativeCreateBindConnect(
+              address._in_addr, port, source._in_addr, address._scope_id);
         }
-        // Query the local port for error messages.
-        try {
-          socket.port;
-        } catch (e) {
-          error ??= createError(e, "Connection failed", address, port);
-          connectNext(); // Try again after failure to connect.
-          return;
-        }
+        assert(connectionResult == true || connectionResult is OSError);
+      }
+      return connectionResult;
+    }
 
-        // Try again if no response (failure or success) within a duration.
-        // If this occurs, the socket is still trying to connect, and might
-        // succeed or fail later.
-        var duration =
-            address.isLoopback ? _retryDurationLoopback : _retryDuration;
-        timer = new Timer(duration, connectNext);
+    createConnectionError(Object? connectionResult, _InternetAddress address,
+        int port, _NativeSocket socket) {
+      if (connectionResult is OSError) {
+        final errorCode = connectionResult.errorCode;
+        if (source != null &&
+            errorCode != null &&
+            socket.isBindError(errorCode)) {
+          return createError(connectionResult, "Bind failed", source);
+        } else {
+          return createError(
+              connectionResult, "Connection failed", address, port);
+        }
+      } else if (connectionResult is Error) {
+        return connectionResult;
+      }
+      return createError(null, "Connection failed", address);
+    }
 
-        connecting.add(socket);
-        // Setup handlers for receiving the first write event which
-        // indicate that the socket is fully connected.
-        socket.setHandlers(write: () {
-          // First remote response on connection.
-          // If error, drop the socket and go to the next address.
-          // If success, complete with the socket
-          // and stop all other open connection attempts.
-          connecting.remove(socket);
-          // From 'man 2 connect':
-          // After select(2) indicates writability, use getsockopt(2) to read
-          // the SO_ERROR option at level SOL_SOCKET to determine whether
-          // connect() completed successfully (SO_ERROR is zero) or
-          // unsuccessfully.
-          OSError osError = socket.nativeGetError();
-          if (osError.errorCode != 0) {
-            socket.close();
-            error ??= osError;
-            connectNext(); // Try again after failure to connect.
-            return;
-          }
-          // Connection success!
-          // Stop all other connecting sockets and timers.
-          timer!.cancel();
-          socket.setListening(read: false, write: false);
-          for (var s in connecting) {
-            s.close();
-            s.setHandlers();
-            s.setListening(read: false, write: false);
-          }
-          connecting.clear();
-          result.complete(socket);
-        }, error: (e, st) {
-          connecting.remove(socket);
-          socket.close();
-          socket.setHandlers();
-          socket.setListening(read: false, write: false);
-          // Keep first error, if present.
-          error ??= e;
-          connectNext(); // Try again after failure to connect.
-        });
-        socket.setListening(read: false, write: true);
+    // Invoked either directly or via throttling Timer callback when we
+    // are ready to verify that we can connect to resolved address.
+    connectNext() {
+      timer?.cancel();
+      if (isLookedUpStreamClosed &&
+          connecting.isEmpty &&
+          pendingLookedUp.isEmpty) {
+        assert(error != null);
+        if (!result.isCompleted) {
+          // Might be already completed via onCancel
+          result.completeError(error);
+        }
+        return;
+      }
+      if (pendingLookedUp.isEmpty) {
+        assert(!isLookedUpStreamClosed || connecting.isNotEmpty);
+        return;
+      }
+      final address = pendingLookedUp.removeFirst();
+      final socket = new _NativeSocket.normal(address);
+      // Will contain values of various types representing the result
+      // of trying to create a connection.
+      // A value of `true` means success, everything else means failure.
+      final Object? connectionResult =
+          createConnection(address, source, socket);
+      if (connectionResult != true) {
+        // connectionResult was not a success.
+        error = createConnectionError(connectionResult, address, port, socket);
+        connectNext(); // Try again after failure to connect.
+        return;
+      }
+      // Query the local port for error messages.
+      try {
+        socket.port;
+      } catch (e) {
+        error ??= createError(e, "Connection failed", address, port);
+        connectNext(); // Try again after failure to connect.
+        return;
       }
 
-      void onCancel() {
-        timer?.cancel();
+      // Try again if no response (failure or success) within a duration.
+      // If this occurs, the socket is still trying to connect, and might
+      // succeed or fail later.
+      final duration =
+          address.isLoopback ? _retryDurationLoopback : _retryDuration;
+      timer = new Timer(duration, connectNext);
+      connecting.add(socket);
+      // Setup handlers for receiving the first write event which
+      // indicate that the socket is fully connected.
+      socket.setHandlers(write: () {
+        // First remote response on connection.
+        // If error, drop the socket and go to the next address.
+        // If success, complete with the socket
+        // and stop all other open connection attempts.
+        connecting.remove(socket);
+        // From 'man 2 connect':
+        // After select(2) indicates writability, use getsockopt(2) to read
+        // the SO_ERROR option at level SOL_SOCKET to determine whether
+        // connect() completed successfully (SO_ERROR is zero) or
+        // unsuccessfully.
+        final OSError osError = socket.nativeGetError();
+        if (osError.errorCode != 0) {
+          socket.close();
+          error ??= osError;
+          connectNext();
+          return;
+        }
+        // Connection success!
+        // Stop all other connecting sockets and the timer.
+        timer!.cancel();
+        socket.setListening(read: false, write: false);
         for (var s in connecting) {
           s.close();
           s.setHandlers();
           s.setListening(read: false, write: false);
         }
         connecting.clear();
-        if (!result.isCompleted) {
-          error ??= createError(null,
-              "Connection attempt cancelled, host: ${host}, port: ${port}");
-          result.completeError(error);
-        }
-      }
+        addressesSubscription.cancel();
+        result.complete(socket);
+      }, error: (e, st) {
+        connecting.remove(socket);
+        socket.close();
+        socket.setHandlers();
+        socket.setListening(read: false, write: false);
+        // Keep first error, if present.
+        error ??= e;
+        connectNext(); // Try again after failure to connect.
+      });
+      socket.setListening(read: false, write: true);
+    }
 
+    void onCancel() {
+      timer?.cancel();
+      for (var s in connecting) {
+        s.close();
+        s.setHandlers();
+        s.setListening(read: false, write: false);
+      }
+      connecting.clear();
+      if (!result.isCompleted) {
+        error ??= createError(
+            null, "Connection attempt cancelled, host: ${host}, port: ${port}");
+        result.completeError(error);
+      }
+    }
+
+    addressesSubscription = addresses.listen((address) {
+      pendingLookedUp.addAll(address);
+      if (timer == null || !timer!.isActive) {
+        connectNext();
+      }
+    }, onDone: () {
+      isLookedUpStreamClosed = true;
       connectNext();
-      return new ConnectionTask<_NativeSocket>._(result.future, onCancel);
+    }, onError: (e, st) {
+      error = e;
     });
+
+    connectNext();
+    return new ConnectionTask<_NativeSocket>._(result.future, onCancel);
   }
 
   static Future<_NativeSocket> connect(
diff --git a/sdk/lib/_internal/vm/lib/array_patch.dart b/sdk/lib/_internal/vm/lib/array_patch.dart
index 07d7e75..f6edca3 100644
--- a/sdk/lib/_internal/vm/lib/array_patch.dart
+++ b/sdk/lib/_internal/vm/lib/array_patch.dart
@@ -70,13 +70,4 @@
     final result = new List<E>.from(elements, growable: false);
     return makeFixedListUnmodifiable(result);
   }
-
-  // Factory constructing a mutable List from a parser generated List literal.
-  // [elements] contains elements that are already type checked.
-  @pragma("vm:entry-point", "call")
-  factory List._fromLiteral(_List elements) {
-    final result = new _GrowableList<E>._withData(elements);
-    result._setLength(elements.length);
-    return result;
-  }
 }
diff --git a/sdk/lib/_internal/vm/lib/growable_array.dart b/sdk/lib/_internal/vm/lib/growable_array.dart
index 059454e..519f095 100644
--- a/sdk/lib/_internal/vm/lib/growable_array.dart
+++ b/sdk/lib/_internal/vm/lib/growable_array.dart
@@ -521,4 +521,108 @@
   Set<T> toSet() {
     return new Set<T>.of(this);
   }
+
+  // Factory constructing a mutable List from a parser generated List literal.
+  // [elements] contains elements that are already type checked.
+  @pragma("vm:entry-point", "call")
+  factory _GrowableList._literal(_List elements) {
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(elements.length);
+    return result;
+  }
+
+  // Specialized list literal constructors.
+  // Used by pkg/vm/lib/transformations/list_literals_lowering.dart.
+  factory _GrowableList._literal1(T e0) {
+    _List elements = _List(1);
+    elements[0] = e0;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(1);
+    return result;
+  }
+
+  factory _GrowableList._literal2(T e0, T e1) {
+    _List elements = _List(2);
+    elements[0] = e0;
+    elements[1] = e1;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(2);
+    return result;
+  }
+
+  factory _GrowableList._literal3(T e0, T e1, T e2) {
+    _List elements = _List(3);
+    elements[0] = e0;
+    elements[1] = e1;
+    elements[2] = e2;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(3);
+    return result;
+  }
+
+  factory _GrowableList._literal4(T e0, T e1, T e2, T e3) {
+    _List elements = _List(4);
+    elements[0] = e0;
+    elements[1] = e1;
+    elements[2] = e2;
+    elements[3] = e3;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(4);
+    return result;
+  }
+
+  factory _GrowableList._literal5(T e0, T e1, T e2, T e3, T e4) {
+    _List elements = _List(5);
+    elements[0] = e0;
+    elements[1] = e1;
+    elements[2] = e2;
+    elements[3] = e3;
+    elements[4] = e4;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(5);
+    return result;
+  }
+
+  factory _GrowableList._literal6(T e0, T e1, T e2, T e3, T e4, T e5) {
+    _List elements = _List(6);
+    elements[0] = e0;
+    elements[1] = e1;
+    elements[2] = e2;
+    elements[3] = e3;
+    elements[4] = e4;
+    elements[5] = e5;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(6);
+    return result;
+  }
+
+  factory _GrowableList._literal7(T e0, T e1, T e2, T e3, T e4, T e5, T e6) {
+    _List elements = _List(7);
+    elements[0] = e0;
+    elements[1] = e1;
+    elements[2] = e2;
+    elements[3] = e3;
+    elements[4] = e4;
+    elements[5] = e5;
+    elements[6] = e6;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(7);
+    return result;
+  }
+
+  factory _GrowableList._literal8(
+      T e0, T e1, T e2, T e3, T e4, T e5, T e6, T e7) {
+    _List elements = _List(8);
+    elements[0] = e0;
+    elements[1] = e1;
+    elements[2] = e2;
+    elements[3] = e3;
+    elements[4] = e4;
+    elements[5] = e5;
+    elements[6] = e6;
+    elements[7] = e7;
+    final result = new _GrowableList<T>._withData(elements);
+    result._setLength(8);
+    return result;
+  }
 }
diff --git a/tests/language/call/method_implicit_invoke_local_test.dart b/tests/language/call/method_implicit_invoke_local_test.dart
index 1e58c47..0e15829 100644
--- a/tests/language/call/method_implicit_invoke_local_test.dart
+++ b/tests/language/call/method_implicit_invoke_local_test.dart
@@ -32,7 +32,8 @@
   // [analyzer] COMPILE_TIME_ERROR.NOT_ENOUGH_POSITIONAL_ARGUMENTS
   // [cfe] Too few positional arguments: 1 required, 0 given.
   c2(3, 4);
-  //^^^^^^
+  //    ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language/compile_time_constant/arguments_test.dart b/tests/language/compile_time_constant/arguments_test.dart
index 70d7fd3b..ca56413 100644
--- a/tests/language/compile_time_constant/arguments_test.dart
+++ b/tests/language/compile_time_constant/arguments_test.dart
@@ -15,8 +15,9 @@
   // [analyzer] COMPILE_TIME_ERROR.NOT_ENOUGH_POSITIONAL_ARGUMENTS
   // [cfe] Too few positional arguments: 1 required, 0 given.
   const A(1, 2);
-  //     ^^^^^^
+  //         ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //     ^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
   const A.named();
   const A.named(b: 1);
@@ -34,7 +35,8 @@
   const A.optional();
   const A.optional(42);
   const A.optional(42, 54);
-  //              ^^^^^^^^
+  //                   ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //              ^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language/constructor/constructor13_test.dart b/tests/language/constructor/constructor13_test.dart
index f6790ec..24b8841 100644
--- a/tests/language/constructor/constructor13_test.dart
+++ b/tests/language/constructor/constructor13_test.dart
@@ -16,7 +16,8 @@
   // [cfe] Too few positional arguments: 1 required, 0 given.
   new Klass(1);
   new Klass(1, 2);
-  //       ^^^^^^
+  //           ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //       ^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language/constructor/no_such_constructor_test.dart b/tests/language/constructor/no_such_constructor_test.dart
index b106273..28c05a6 100644
--- a/tests/language/constructor/no_such_constructor_test.dart
+++ b/tests/language/constructor/no_such_constructor_test.dart
@@ -8,7 +8,8 @@
 
 main() {
   new A(42);
-  //   ^^^^
+  //    ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //   ^^^^
   // [cfe] Too many positional arguments: 0 allowed, but 1 found.
 }
diff --git a/tests/language/constructor/redirect2_test.dart b/tests/language/constructor/redirect2_test.dart
index 30d7ab6..85fc234 100644
--- a/tests/language/constructor/redirect2_test.dart
+++ b/tests/language/constructor/redirect2_test.dart
@@ -32,8 +32,9 @@
   //                          ^^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.SUPER_IN_REDIRECTING_CONSTRUCTOR
   // [cfe] A redirecting constructor can't have other initializers.
-  //                               ^^^
+  //                                ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //                               ^^^
   // [cfe] Too many positional arguments: 0 allowed, but 1 found.
 }
 
diff --git a/tests/language/deferred/load_library_wrong_args_test.dart b/tests/language/deferred/load_library_wrong_args_test.dart
index c991e2e6..3903e19 100644
--- a/tests/language/deferred/load_library_wrong_args_test.dart
+++ b/tests/language/deferred/load_library_wrong_args_test.dart
@@ -5,6 +5,6 @@
   lib.loadLibrary(10);
 //^
 // [cfe] 'loadLibrary' takes no arguments.
-//               ^^^^
+//                ^^
 // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
 }
diff --git a/tests/language/instance/call_wrong_argument_count_test.dart b/tests/language/instance/call_wrong_argument_count_test.dart
index 8f0c710..6256051 100644
--- a/tests/language/instance/call_wrong_argument_count_test.dart
+++ b/tests/language/instance/call_wrong_argument_count_test.dart
@@ -14,7 +14,8 @@
   var niederhorn = Niederhorn();
   niederhorn.goodCall(1, 2, 3);
   niederhorn.goodCall(1, 2, 3, 4);
-  //                 ^^^^^^^^^^^^
+  //                           ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //                 ^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 3 allowed, but 4 found.
 }
diff --git a/tests/language/mixin/illegal_constructor_test.dart b/tests/language/mixin/illegal_constructor_test.dart
index 864889f..a4a8723 100644
--- a/tests/language/mixin/illegal_constructor_test.dart
+++ b/tests/language/mixin/illegal_constructor_test.dart
@@ -97,16 +97,18 @@
   new D6();
 
   new C0(1,2,3);
-  //    ^^^^^^^
+  //     ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //    ^^^^^^^
   // [cfe] Too many positional arguments: 0 allowed, but 3 found.
   new C0.named();
   //     ^^^^^
   // [analyzer] COMPILE_TIME_ERROR.NEW_WITH_UNDEFINED_CONSTRUCTOR
   // [cfe] Method not found: 'C0.named'.
   new D0(1,2,3);
-  //    ^^^^^^^
+  //     ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //    ^^^^^^^
   // [cfe] Too many positional arguments: 0 allowed, but 3 found.
   new D0.named();
   //     ^^^^^
diff --git a/tests/language/parameter/bad_named_parameters_test.dart b/tests/language/parameter/bad_named_parameters_test.dart
index 35b1e79..9db032b 100644
--- a/tests/language/parameter/bad_named_parameters_test.dart
+++ b/tests/language/parameter/bad_named_parameters_test.dart
@@ -20,14 +20,16 @@
 
   // Parameter b passed twice.
   np.f42(10, 25, b: 25);
-  //    ^^^^^^^^^^^^^^^
+  //         ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+  //    ^^^^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 
   // Parameter x does not exist.
   np.f42(10, 25, x: 99);
-  //    ^^^^^^^^^^^^^^^
+  //         ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+  //    ^^^^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
   //             ^
   // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_NAMED_PARAMETER
@@ -40,8 +42,9 @@
 
   // Too many parameters.
   np.f42(10, 20, 30, 40);
-  //    ^^^^^^^^^^^^^^^^
+  //         ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+  //    ^^^^^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 4 found.
 
   // Too few parameters.
diff --git a/tests/language/parameter/named_aggregated_test.dart b/tests/language/parameter/named_aggregated_test.dart
index 87e6140..252f67d 100644
--- a/tests/language/parameter/named_aggregated_test.dart
+++ b/tests/language/parameter/named_aggregated_test.dart
@@ -37,8 +37,9 @@
 main() {
   // Expect compile-time error due to missing comma in function definition.
   NamedParametersAggregatedTests.f_missing_comma(10, 25);
-  //                                            ^^^^^^^^
+  //                                                 ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //                                            ^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 
   // Expect compile-time error due to duplicate named argument.
diff --git a/tests/language/parameter/optional_named_test.dart b/tests/language/parameter/optional_named_test.dart
index 20413ad..56f2adf 100644
--- a/tests/language/parameter/optional_named_test.dart
+++ b/tests/language/parameter/optional_named_test.dart
@@ -63,36 +63,42 @@
     Expect.equals(20, F10());
     Expect.equals(20, np.f21());
     Expect.equals(20, F10(20));
-    //                   ^^^^
+    //                    ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                   ^^^^
     // [cfe] Too many positional arguments: 0 allowed, but 1 found.
     Expect.equals(20, np.f21(20));
-    //                      ^^^^
+    //                       ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                      ^^^^
     // [cfe] Too many positional arguments: 0 allowed, but 1 found.
     Expect.equals(20, F10(b: 20));
     Expect.equals(20, np.f21(b: 20));
     Expect.equals(1020, F21(10));
     Expect.equals(1020, np.f32(10));
     Expect.equals(1025, F21(10, 25));
-    //                     ^^^^^^^^
+    //                          ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                     ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(1025, np.f32(10, 25));
-    //                        ^^^^^^^^
+    //                             ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                        ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(1025, F21(10, b: 25));
     Expect.equals(1025, np.f32(10, b: 25));
     Expect.equals(102030, F31(10));
     Expect.equals(102030, np.f42(10));
     Expect.equals(102530, F31(10, 25));
-    //                       ^^^^^^^^
+    //                            ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                       ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102530, np.f42(10, 25));
-    //                          ^^^^^^^^
+    //                               ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                          ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102530, F31(10, b: 25));
     Expect.equals(102530, np.f42(10, b: 25));
@@ -101,12 +107,14 @@
     Expect.equals(102535, F31(10, b: 25, c: 35));
     Expect.equals(102535, np.f42(10, b: 25, c: 35));
     Expect.equals(102535, F31(10, 25, c:35));
-    //                       ^^^^^^^^^^^^^^
+    //                            ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                       ^^^^^^^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102535, np.f42(10, 25, c:35));
-    //                          ^^^^^^^^^^^^^^
+    //                               ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                          ^^^^^^^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102535, F31(10, c: 35, b: 25));
     Expect.equals(102535, np.f42(10, c: 35, b: 25));
@@ -116,8 +124,9 @@
     Expect.equals(10203540, np.f52(10, c: 35));
     Expect.equals(10250045, F41(10, d: 45, b: 25));
     Expect.equals(10250045, F41(10, 25, d:45));
-    //                         ^^^^^^^^^^^^^^
+    //                              ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                         ^^^^^^^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(10250045, np.f52(10, d: 45, b: 25));
     Expect.equals(10253545, F41(10, d: 45, c: 35, b: 25));
diff --git a/tests/language/redirecting/factory_default_values_test.dart b/tests/language/redirecting/factory_default_values_test.dart
index 84a7d17..23a0e3c 100644
--- a/tests/language/redirecting/factory_default_values_test.dart
+++ b/tests/language/redirecting/factory_default_values_test.dart
@@ -33,7 +33,8 @@
   Expect.equals(x.b, 0);
 
   var y = new A.f(42, 43);
-  //             ^^^^^^^^
+  //                  ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //             ^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language/regress/regress35258_test.dart b/tests/language/regress/regress35258_test.dart
index d36f45f..a5707b0 100644
--- a/tests/language/regress/regress35258_test.dart
+++ b/tests/language/regress/regress35258_test.dart
@@ -6,7 +6,7 @@
   new C(42);
   //  ^
   // [cfe] Can't use 'C' because it is declared more than once.
-  //   ^^^^
+  //    ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
 }
 
diff --git a/tests/language/static/call_wrong_argument_count_test.dart b/tests/language/static/call_wrong_argument_count_test.dart
index 575c486..ca34e7cd 100644
--- a/tests/language/static/call_wrong_argument_count_test.dart
+++ b/tests/language/static/call_wrong_argument_count_test.dart
@@ -13,7 +13,8 @@
   Niesen.goodCall(1, 2, 3);
 
   Niesen.goodCall(1, 2, 3, 4);
-  //             ^^^^^^^^^^^^
+  //                       ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //             ^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 3 allowed, but 4 found.
 }
diff --git a/tests/language_2/call/method_implicit_invoke_local_test.dart b/tests/language_2/call/method_implicit_invoke_local_test.dart
index 1e58c47..0e15829 100644
--- a/tests/language_2/call/method_implicit_invoke_local_test.dart
+++ b/tests/language_2/call/method_implicit_invoke_local_test.dart
@@ -32,7 +32,8 @@
   // [analyzer] COMPILE_TIME_ERROR.NOT_ENOUGH_POSITIONAL_ARGUMENTS
   // [cfe] Too few positional arguments: 1 required, 0 given.
   c2(3, 4);
-  //^^^^^^
+  //    ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language_2/compile_time_constant/arguments_test.dart b/tests/language_2/compile_time_constant/arguments_test.dart
index 70d7fd3b..ca56413 100644
--- a/tests/language_2/compile_time_constant/arguments_test.dart
+++ b/tests/language_2/compile_time_constant/arguments_test.dart
@@ -15,8 +15,9 @@
   // [analyzer] COMPILE_TIME_ERROR.NOT_ENOUGH_POSITIONAL_ARGUMENTS
   // [cfe] Too few positional arguments: 1 required, 0 given.
   const A(1, 2);
-  //     ^^^^^^
+  //         ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //     ^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
   const A.named();
   const A.named(b: 1);
@@ -34,7 +35,8 @@
   const A.optional();
   const A.optional(42);
   const A.optional(42, 54);
-  //              ^^^^^^^^
+  //                   ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //              ^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language_2/constructor/constructor13_test.dart b/tests/language_2/constructor/constructor13_test.dart
index f6790ec..24b8841 100644
--- a/tests/language_2/constructor/constructor13_test.dart
+++ b/tests/language_2/constructor/constructor13_test.dart
@@ -16,7 +16,8 @@
   // [cfe] Too few positional arguments: 1 required, 0 given.
   new Klass(1);
   new Klass(1, 2);
-  //       ^^^^^^
+  //           ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //       ^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language_2/constructor/no_such_constructor_test.dart b/tests/language_2/constructor/no_such_constructor_test.dart
index b106273..28c05a6 100644
--- a/tests/language_2/constructor/no_such_constructor_test.dart
+++ b/tests/language_2/constructor/no_such_constructor_test.dart
@@ -8,7 +8,8 @@
 
 main() {
   new A(42);
-  //   ^^^^
+  //    ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //   ^^^^
   // [cfe] Too many positional arguments: 0 allowed, but 1 found.
 }
diff --git a/tests/language_2/constructor/redirect2_test.dart b/tests/language_2/constructor/redirect2_test.dart
index 30d7ab6..85fc234 100644
--- a/tests/language_2/constructor/redirect2_test.dart
+++ b/tests/language_2/constructor/redirect2_test.dart
@@ -32,8 +32,9 @@
   //                          ^^^^^^^^
   // [analyzer] COMPILE_TIME_ERROR.SUPER_IN_REDIRECTING_CONSTRUCTOR
   // [cfe] A redirecting constructor can't have other initializers.
-  //                               ^^^
+  //                                ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //                               ^^^
   // [cfe] Too many positional arguments: 0 allowed, but 1 found.
 }
 
diff --git a/tests/language_2/deferred/load_library_wrong_args_test.dart b/tests/language_2/deferred/load_library_wrong_args_test.dart
index c991e2e6..3903e19 100644
--- a/tests/language_2/deferred/load_library_wrong_args_test.dart
+++ b/tests/language_2/deferred/load_library_wrong_args_test.dart
@@ -5,6 +5,6 @@
   lib.loadLibrary(10);
 //^
 // [cfe] 'loadLibrary' takes no arguments.
-//               ^^^^
+//                ^^
 // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
 }
diff --git a/tests/language_2/instance/call_wrong_argument_count_test.dart b/tests/language_2/instance/call_wrong_argument_count_test.dart
index 8f0c710..6256051 100644
--- a/tests/language_2/instance/call_wrong_argument_count_test.dart
+++ b/tests/language_2/instance/call_wrong_argument_count_test.dart
@@ -14,7 +14,8 @@
   var niederhorn = Niederhorn();
   niederhorn.goodCall(1, 2, 3);
   niederhorn.goodCall(1, 2, 3, 4);
-  //                 ^^^^^^^^^^^^
+  //                           ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //                 ^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 3 allowed, but 4 found.
 }
diff --git a/tests/language_2/mixin/illegal_constructor_test.dart b/tests/language_2/mixin/illegal_constructor_test.dart
index b70f764..ea13e2a 100644
--- a/tests/language_2/mixin/illegal_constructor_test.dart
+++ b/tests/language_2/mixin/illegal_constructor_test.dart
@@ -97,16 +97,18 @@
   new D6();
 
   new C0(1,2,3);
-  //    ^^^^^^^
+  //     ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //    ^^^^^^^
   // [cfe] Too many positional arguments: 0 allowed, but 3 found.
   new C0.named();
   //     ^^^^^
   // [analyzer] COMPILE_TIME_ERROR.NEW_WITH_UNDEFINED_CONSTRUCTOR
   // [cfe] Method not found: 'C0.named'.
   new D0(1,2,3);
-  //    ^^^^^^^
+  //     ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //    ^^^^^^^
   // [cfe] Too many positional arguments: 0 allowed, but 3 found.
   new D0.named();
   //     ^^^^^
diff --git a/tests/language_2/parameter/bad_named_parameters_test.dart b/tests/language_2/parameter/bad_named_parameters_test.dart
index 173e340..aa36c13 100644
--- a/tests/language_2/parameter/bad_named_parameters_test.dart
+++ b/tests/language_2/parameter/bad_named_parameters_test.dart
@@ -20,14 +20,16 @@
 
   // Parameter b passed twice.
   np.f42(10, 25, b: 25);
-  //    ^^^^^^^^^^^^^^^
+  //         ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+  //    ^^^^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 
   // Parameter x does not exist.
   np.f42(10, 25, x: 99);
-  //    ^^^^^^^^^^^^^^^
+  //         ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+  //    ^^^^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
   //             ^
   // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_NAMED_PARAMETER
@@ -40,8 +42,9 @@
 
   // Too many parameters.
   np.f42(10, 20, 30, 40);
-  //    ^^^^^^^^^^^^^^^^
+  //         ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+  //    ^^^^^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 4 found.
 
   // Too few parameters.
diff --git a/tests/language_2/parameter/named_aggregated_test.dart b/tests/language_2/parameter/named_aggregated_test.dart
index 1b506df..9c2cd70 100644
--- a/tests/language_2/parameter/named_aggregated_test.dart
+++ b/tests/language_2/parameter/named_aggregated_test.dart
@@ -37,8 +37,9 @@
 main() {
   // Expect compile-time error due to missing comma in function definition.
   NamedParametersAggregatedTests.f_missing_comma(10, 25);
-  //                                            ^^^^^^^^
+  //                                                 ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //                                            ^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 
   // Expect compile-time error due to duplicate named argument.
diff --git a/tests/language_2/parameter/optional_named_test.dart b/tests/language_2/parameter/optional_named_test.dart
index d08f3d9..ba2af7d 100644
--- a/tests/language_2/parameter/optional_named_test.dart
+++ b/tests/language_2/parameter/optional_named_test.dart
@@ -63,36 +63,42 @@
     Expect.equals(20, F10());
     Expect.equals(20, np.f21());
     Expect.equals(20, F10(20));
-    //                   ^^^^
+    //                    ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                   ^^^^
     // [cfe] Too many positional arguments: 0 allowed, but 1 found.
     Expect.equals(20, np.f21(20));
-    //                      ^^^^
+    //                       ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                      ^^^^
     // [cfe] Too many positional arguments: 0 allowed, but 1 found.
     Expect.equals(20, F10(b: 20));
     Expect.equals(20, np.f21(b: 20));
     Expect.equals(1020, F21(10));
     Expect.equals(1020, np.f32(10));
     Expect.equals(1025, F21(10, 25));
-    //                     ^^^^^^^^
+    //                          ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                     ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(1025, np.f32(10, 25));
-    //                        ^^^^^^^^
+    //                             ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                        ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(1025, F21(10, b: 25));
     Expect.equals(1025, np.f32(10, b: 25));
     Expect.equals(102030, F31(10));
     Expect.equals(102030, np.f42(10));
     Expect.equals(102530, F31(10, 25));
-    //                       ^^^^^^^^
+    //                            ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                       ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102530, np.f42(10, 25));
-    //                          ^^^^^^^^
+    //                               ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                          ^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102530, F31(10, b: 25));
     Expect.equals(102530, np.f42(10, b: 25));
@@ -101,12 +107,14 @@
     Expect.equals(102535, F31(10, b: 25, c: 35));
     Expect.equals(102535, np.f42(10, b: 25, c: 35));
     Expect.equals(102535, F31(10, 25, c:35));
-    //                       ^^^^^^^^^^^^^^
+    //                            ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                       ^^^^^^^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102535, np.f42(10, 25, c:35));
-    //                          ^^^^^^^^^^^^^^
+    //                               ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                          ^^^^^^^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(102535, F31(10, c: 35, b: 25));
     Expect.equals(102535, np.f42(10, c: 35, b: 25));
@@ -116,8 +124,9 @@
     Expect.equals(10203540, np.f52(10, c: 35));
     Expect.equals(10250045, F41(10, d: 45, b: 25));
     Expect.equals(10250045, F41(10, 25, d:45));
-    //                         ^^^^^^^^^^^^^^
+    //                              ^^
     // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS_COULD_BE_NAMED
+    //                         ^^^^^^^^^^^^^^
     // [cfe] Too many positional arguments: 1 allowed, but 2 found.
     Expect.equals(10250045, np.f52(10, d: 45, b: 25));
     Expect.equals(10253545, F41(10, d: 45, c: 35, b: 25));
diff --git a/tests/language_2/redirecting/factory_default_values_test.dart b/tests/language_2/redirecting/factory_default_values_test.dart
index 84a7d17..23a0e3c 100644
--- a/tests/language_2/redirecting/factory_default_values_test.dart
+++ b/tests/language_2/redirecting/factory_default_values_test.dart
@@ -33,7 +33,8 @@
   Expect.equals(x.b, 0);
 
   var y = new A.f(42, 43);
-  //             ^^^^^^^^
+  //                  ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //             ^^^^^^^^
   // [cfe] Too many positional arguments: 1 allowed, but 2 found.
 }
diff --git a/tests/language_2/regress/regress35258_test.dart b/tests/language_2/regress/regress35258_test.dart
index d36f45f..a5707b0 100644
--- a/tests/language_2/regress/regress35258_test.dart
+++ b/tests/language_2/regress/regress35258_test.dart
@@ -6,7 +6,7 @@
   new C(42);
   //  ^
   // [cfe] Can't use 'C' because it is declared more than once.
-  //   ^^^^
+  //    ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
 }
 
diff --git a/tests/language_2/static/call_wrong_argument_count_test.dart b/tests/language_2/static/call_wrong_argument_count_test.dart
index 575c486..ca34e7cd 100644
--- a/tests/language_2/static/call_wrong_argument_count_test.dart
+++ b/tests/language_2/static/call_wrong_argument_count_test.dart
@@ -13,7 +13,8 @@
   Niesen.goodCall(1, 2, 3);
 
   Niesen.goodCall(1, 2, 3, 4);
-  //             ^^^^^^^^^^^^
+  //                       ^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
+  //             ^^^^^^^^^^^^
   // [cfe] Too many positional arguments: 3 allowed, but 4 found.
 }
diff --git a/tests/lib/html/js_function_getter_trust_types/compile_test.dart b/tests/lib/html/js_function_getter_trust_types/compile_test.dart
index e7481d1..29f8669 100644
--- a/tests/lib/html/js_function_getter_trust_types/compile_test.dart
+++ b/tests/lib/html/js_function_getter_trust_types/compile_test.dart
@@ -47,6 +47,6 @@
   foo.bar.add(4, 5, 10);
   //         ^
   // [cfe] Error: Too many positional arguments: 2 allowed, but 3 found.
-  //         ^^^^^^^^^^
+  //                ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
 }
diff --git a/tests/lib_2/html/js_function_getter_trust_types/compile_test.dart b/tests/lib_2/html/js_function_getter_trust_types/compile_test.dart
index e7481d1..29f8669 100644
--- a/tests/lib_2/html/js_function_getter_trust_types/compile_test.dart
+++ b/tests/lib_2/html/js_function_getter_trust_types/compile_test.dart
@@ -47,6 +47,6 @@
   foo.bar.add(4, 5, 10);
   //         ^
   // [cfe] Error: Too many positional arguments: 2 allowed, but 3 found.
-  //         ^^^^^^^^^^
+  //                ^^
   // [analyzer] COMPILE_TIME_ERROR.EXTRA_POSITIONAL_ARGUMENTS
 }
diff --git a/tests/standalone/io/http_force_staggered_ipv6_lookup_test.dart b/tests/standalone/io/http_force_staggered_ipv6_lookup_test.dart
new file mode 100644
index 0000000..c644488
--- /dev/null
+++ b/tests/standalone/io/http_force_staggered_ipv6_lookup_test.dart
@@ -0,0 +1,75 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// SharedOptions=-Ddart.library.io.force_staggered_ipv6_lookup=true
+//
+
+import "dart:io";
+
+import "package:async_helper/async_helper.dart";
+import "package:expect/expect.dart";
+
+const sampleData = <int>[1, 2, 3, 4, 5];
+
+void testBadHostName() {
+  asyncStart();
+  HttpClient client = new HttpClient();
+  client.get("some.bad.host.name.7654321", 0, "/").then((request) {
+    Expect.fail("Should not open a request on bad hostname");
+  }).catchError((error) {
+    asyncEnd(); // We expect onError to be called, due to bad host name.
+  }, test: (error) => error is! String);
+}
+
+void testConnect(InternetAddress loopback, {int expectedElapsedMs: 0}) async {
+  asyncStart();
+  final max = 10;
+  final servers = <ServerSocket>[];
+  for (var i = 0; i < max; i++) {
+    final server = await ServerSocket.bind(loopback, 0);
+    server.listen((Socket socket) {
+      socket.add(sampleData);
+      socket.destroy();
+    });
+    servers.add(server);
+  }
+  final sw = Stopwatch()..start();
+  var got = 0;
+  for (var i = 0; i < max; i++) {
+    final client = await Socket.connect('localhost', servers[i].port,
+        sourceAddress: loopback);
+    client.listen((received) {
+      Expect.listEquals(sampleData, received);
+    }, onError: (e) {
+      Expect.fail('Unexpected failure $e');
+    }, onDone: () {
+      client.close();
+      got++;
+      if (got == max) {
+        // Test that no stack overflow happens.
+        for (final server in servers) {
+          server.close();
+        }
+        Expect.isTrue(sw.elapsedMilliseconds > expectedElapsedMs);
+        asyncEnd();
+      }
+    });
+  }
+}
+
+void main() async {
+  asyncStart();
+  testBadHostName();
+  var localhosts = await InternetAddress.lookup('localhost');
+  if (localhosts.contains(InternetAddress.loopbackIPv4)) {
+    testConnect(InternetAddress.loopbackIPv4);
+  }
+  if (localhosts.contains(InternetAddress.loopbackIPv6)) {
+    // matches value in socket_patch.dart
+    const concurrentLookupDelay = Duration(milliseconds: 10);
+    testConnect(InternetAddress.loopbackIPv6,
+        expectedElapsedMs: concurrentLookupDelay.inMilliseconds);
+  }
+  asyncEnd();
+}
diff --git a/tests/standalone_2/io/http_force_staggered_ipv6_lookup_test.dart b/tests/standalone_2/io/http_force_staggered_ipv6_lookup_test.dart
new file mode 100644
index 0000000..c644488
--- /dev/null
+++ b/tests/standalone_2/io/http_force_staggered_ipv6_lookup_test.dart
@@ -0,0 +1,75 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// SharedOptions=-Ddart.library.io.force_staggered_ipv6_lookup=true
+//
+
+import "dart:io";
+
+import "package:async_helper/async_helper.dart";
+import "package:expect/expect.dart";
+
+const sampleData = <int>[1, 2, 3, 4, 5];
+
+void testBadHostName() {
+  asyncStart();
+  HttpClient client = new HttpClient();
+  client.get("some.bad.host.name.7654321", 0, "/").then((request) {
+    Expect.fail("Should not open a request on bad hostname");
+  }).catchError((error) {
+    asyncEnd(); // We expect onError to be called, due to bad host name.
+  }, test: (error) => error is! String);
+}
+
+void testConnect(InternetAddress loopback, {int expectedElapsedMs: 0}) async {
+  asyncStart();
+  final max = 10;
+  final servers = <ServerSocket>[];
+  for (var i = 0; i < max; i++) {
+    final server = await ServerSocket.bind(loopback, 0);
+    server.listen((Socket socket) {
+      socket.add(sampleData);
+      socket.destroy();
+    });
+    servers.add(server);
+  }
+  final sw = Stopwatch()..start();
+  var got = 0;
+  for (var i = 0; i < max; i++) {
+    final client = await Socket.connect('localhost', servers[i].port,
+        sourceAddress: loopback);
+    client.listen((received) {
+      Expect.listEquals(sampleData, received);
+    }, onError: (e) {
+      Expect.fail('Unexpected failure $e');
+    }, onDone: () {
+      client.close();
+      got++;
+      if (got == max) {
+        // Test that no stack overflow happens.
+        for (final server in servers) {
+          server.close();
+        }
+        Expect.isTrue(sw.elapsedMilliseconds > expectedElapsedMs);
+        asyncEnd();
+      }
+    });
+  }
+}
+
+void main() async {
+  asyncStart();
+  testBadHostName();
+  var localhosts = await InternetAddress.lookup('localhost');
+  if (localhosts.contains(InternetAddress.loopbackIPv4)) {
+    testConnect(InternetAddress.loopbackIPv4);
+  }
+  if (localhosts.contains(InternetAddress.loopbackIPv6)) {
+    // matches value in socket_patch.dart
+    const concurrentLookupDelay = Duration(milliseconds: 10);
+    testConnect(InternetAddress.loopbackIPv6,
+        expectedElapsedMs: concurrentLookupDelay.inMilliseconds);
+  }
+  asyncEnd();
+}
diff --git a/tools/VERSION b/tools/VERSION
index 1562440..5ddc437 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 12
 PATCH 0
-PRERELEASE 213
+PRERELEASE 214
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/utils/dartdev/BUILD.gn b/utils/dartdev/BUILD.gn
index 02823ae..c7d8c12 100644
--- a/utils/dartdev/BUILD.gn
+++ b/utils/dartdev/BUILD.gn
@@ -12,7 +12,10 @@
                             "list lines")
 
 group("dartdev") {
-  public_deps = [ ":copy_dartdev_kernel" ]
+  public_deps = [
+    ":copy_dartdev_kernel",
+    ":copy_dartdev_snapshot",
+  ]
 }
 
 copy("copy_dartdev_kernel") {
@@ -30,3 +33,18 @@
   inputs = dartdev_files
   output = "$root_gen_dir/dartdev.dill"
 }
+
+copy("copy_dartdev_snapshot") {
+  visibility = [ ":dartdev" ]
+  public_deps = [ ":generate_dartdev_snapshot" ]
+  sources = [ "$root_gen_dir/dartdev.dart.snapshot" ]
+  outputs = [ "$root_out_dir/dartdev.dart.snapshot" ]
+}
+
+application_snapshot("generate_dartdev_snapshot") {
+  main_dart = "../../pkg/dartdev/bin/dartdev.dart"
+  training_args = [ "--help" ]
+  deps = [ "../dds:dds" ]
+  inputs = dartdev_files
+  output = "$root_gen_dir/dartdev.dart.snapshot"
+}