diff --git a/DEPS b/DEPS
index 4e870fc..48ccd4f 100644
--- a/DEPS
+++ b/DEPS
@@ -83,13 +83,13 @@
   "clang_version": "git_revision:deb6854eec93529b2bd30178d400ad2ee7665cd4",
 
   # https://chrome-infra-packages.appspot.com/p/gn/gn
-  "gn_version": "git_revision:bbfe0f948f4ac84f671acdf6ab008a6ce1bfb257",
+  "gn_version": "git_revision:566d29033b5fd7c73e5e8bbcf7ab794194df68bd",
 
   "reclient_version": "re_client_version:28341fc74c68f05a5c8be35160ada940c4edb969",
   "download_reclient": True,
 
   # Update from https://chrome-infra-packages.appspot.com/p/fuchsia/sdk/core
-  "fuchsia_sdk_version": "version:32.20260713.4.1",
+  "fuchsia_sdk_version": "version:32.20260716.3.1",
   "download_fuchsia_deps": False,
 
   # Ninja, runs the build based on files generated by GN.
@@ -102,7 +102,7 @@
 
   # Prefer to use hashes of binaryen that have been reviewed & rolled into g3.
   "binaryen_rev" : "9926156a583cec3d22d521232b31c70fa9a87dc1",
-  "boringssl_rev": "8aacd0c97fb1f06c8d10e0a6ab034cd4c4d102b4",
+  "boringssl_rev": "0934f4a1f929f11cd3a420ac47641aa8fd584552",
   "browser-compat-data_tag": "ac8cae697014da1ff7124fba33b0b4245cc6cd1b", # v1.0.22
   "cpu_features_rev": "936b9ab5515dead115606559502e3864958f7f6e",
   "devtools_rev": "12d595649f189f1896722623f72599077f476848",
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index 35a7d48..d674022 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -285,6 +285,12 @@
   /// A [TimingByteStore] that records timings for reads from the byte store.
   TimingByteStore? _timingByteStore;
 
+  /// The file byte store created by [createByteStore], if any.
+  EvictingFileByteStore? _fileByteStore;
+
+  /// The memory caching byte store created by [createByteStore], if any.
+  MemoryCachingByteStore? _memoryCachingByteStore;
+
   /// Whether notifications caused by analysis should be suppressed.
   ///
   /// This is used when an operation is temporarily modifying overlays and does
@@ -427,6 +433,45 @@
   Future<void> get analysisContextsRebuilt =>
       analysisContextRebuildCompleter.future;
 
+  /// Statistics for the byte stores created by [createByteStore], or `null`
+  /// if the byte store was not created by this server.
+  AnalysisServerByteStoreStats? get byteStoreStats {
+    var memoryByteStore = _memoryCachingByteStore;
+    if (memoryByteStore == null) {
+      return null;
+    }
+
+    var fileByteStore = _fileByteStore;
+    return AnalysisServerByteStoreStats(
+      cacheHitCount: memoryByteStore.cacheHitCount,
+      cacheMissCount: memoryByteStore.cacheMissCount,
+      currentSizeBytes: memoryByteStore.currentSizeBytes,
+      entryCount: memoryByteStore.entryCount,
+      evictedBytes: memoryByteStore.evictedBytes,
+      evictedEntryCount: memoryByteStore.evictedEntryCount,
+      evictionCount: memoryByteStore.evictionCount,
+      maxSizeBytes: memoryByteStore.maxSizeBytes,
+      putCount: memoryByteStore.putCount,
+      storeHitCount: memoryByteStore.storeHitCount,
+      storeMissCount: memoryByteStore.storeMissCount,
+      cleanUpCount: fileByteStore?.cleanUpCount,
+      deletedBytes: fileByteStore?.deletedBytes,
+      deletedFileCount: fileByteStore?.deletedFileCount,
+      failedReadCount: fileByteStore?.failedReadCount,
+      failedWriteCount: fileByteStore?.failedWriteCount,
+      fileCacheSizeBytes: fileByteStore?.maxSizeBytes,
+      fileStorePath: fileByteStore?.cachePath,
+      fileStoreSizeBytes: fileByteStore?.lastKnownSizeBytes,
+      lastCleanUpTimeMilliseconds: fileByteStore?.lastCleanUpTimeMilliseconds,
+      lastScannedFileCount: fileByteStore?.lastScannedFileCount,
+      pendingWriteCount: fileByteStore?.pendingWriteCount,
+      readCount: fileByteStore?.readCount,
+      readMissCount: fileByteStore?.readMissCount,
+      writeBytes: fileByteStore?.writeBytes,
+      writeCount: fileByteStore?.writeCount,
+    );
+  }
+
   /// A list of timings for the byte store, or `null` if timing is not being
   /// tracked.
   List<ByteStoreTimings>? get byteStoreTimings => _timingByteStore?.timings;
@@ -617,11 +662,17 @@
     const memoryCacheSize = 256 * M;
 
     if (providedByteStore case var providedByteStore?) {
+      if (providedByteStore is MemoryCachingByteStore) {
+        _memoryCachingByteStore = providedByteStore;
+      }
       return providedByteStore;
     }
 
     if (options.disableFileByteStore ?? false) {
-      return MemoryCachingByteStore(NullByteStore(), memoryCacheSize);
+      return _memoryCachingByteStore = MemoryCachingByteStore(
+        NullByteStore(),
+        memoryCacheSize,
+      );
     }
 
     if (resourceProvider is OverlayResourceProvider) {
@@ -630,14 +681,22 @@
     if (resourceProvider is PhysicalResourceProvider) {
       var stateLocation = resourceProvider.getStateLocation('.analysis-driver');
       if (stateLocation != null) {
-        var timingByteStore = _timingByteStore = TimingByteStore(
-          EvictingFileByteStore(stateLocation.path, fileCacheSize),
+        var fileByteStore = _fileByteStore = EvictingFileByteStore(
+          stateLocation.path,
+          fileCacheSize,
         );
-        return MemoryCachingByteStore(timingByteStore, memoryCacheSize);
+        var timingByteStore = _timingByteStore = TimingByteStore(fileByteStore);
+        return _memoryCachingByteStore = MemoryCachingByteStore(
+          timingByteStore,
+          memoryCacheSize,
+        );
       }
     }
 
-    return MemoryCachingByteStore(NullByteStore(), memoryCacheSize);
+    return _memoryCachingByteStore = MemoryCachingByteStore(
+      NullByteStore(),
+      memoryCacheSize,
+    );
   }
 
   void enableSurveys() {
@@ -1200,6 +1259,71 @@
   }
 }
 
+/// A snapshot of the sizes and counters of the byte stores used by the
+/// server, for display on the diagnostics pages.
+///
+/// The file byte store fields are `null` when the server uses only an
+/// in-memory byte store.
+class AnalysisServerByteStoreStats {
+  final int cacheHitCount;
+  final int cacheMissCount;
+  final int? cleanUpCount;
+  final int currentSizeBytes;
+  final int? deletedBytes;
+  final int? deletedFileCount;
+  final int entryCount;
+  final int evictedBytes;
+  final int evictedEntryCount;
+  final int evictionCount;
+  final int? failedReadCount;
+  final int? failedWriteCount;
+  final int? fileCacheSizeBytes;
+  final String? fileStorePath;
+  final int? fileStoreSizeBytes;
+  final int? lastCleanUpTimeMilliseconds;
+  final int? lastScannedFileCount;
+  final int maxSizeBytes;
+  final int? pendingWriteCount;
+  final int putCount;
+  final int? readCount;
+  final int? readMissCount;
+  final int storeHitCount;
+  final int storeMissCount;
+  final int? writeBytes;
+  final int? writeCount;
+
+  const new({
+    required this.cacheHitCount,
+    required this.cacheMissCount,
+    required this.currentSizeBytes,
+    required this.entryCount,
+    required this.evictedBytes,
+    required this.evictedEntryCount,
+    required this.evictionCount,
+    required this.maxSizeBytes,
+    required this.putCount,
+    required this.storeHitCount,
+    required this.storeMissCount,
+    this.cleanUpCount,
+    this.deletedBytes,
+    this.deletedFileCount,
+    this.failedReadCount,
+    this.failedWriteCount,
+    this.fileCacheSizeBytes,
+    this.fileStorePath,
+    this.fileStoreSizeBytes,
+    this.lastCleanUpTimeMilliseconds,
+    this.lastScannedFileCount,
+    this.pendingWriteCount,
+    this.readCount,
+    this.readMissCount,
+    this.writeBytes,
+    this.writeCount,
+  });
+
+  bool get usesFileByteStore => fileStorePath != null;
+}
+
 /// ContextManager callbacks that operate on the base server regardless
 /// of protocol.
 abstract class CommonServerContextManagerCallbacks
diff --git a/pkg/analysis_server/lib/src/status/pages.dart b/pkg/analysis_server/lib/src/status/pages.dart
index 7e1e30d..8f385fc 100644
--- a/pkg/analysis_server/lib/src/status/pages.dart
+++ b/pkg/analysis_server/lib/src/status/pages.dart
@@ -11,6 +11,28 @@
 
 String escape(String? text) => text == null ? '' : htmlEscape.convert(text);
 
+/// Formats [bytes] using binary units, e.g. `1.50 MiB`.
+String printBytes(int bytes) {
+  const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB'];
+  var value = bytes.toDouble();
+  var unitIndex = 0;
+  while (value >= 1024 && unitIndex < units.length - 1) {
+    value /= 1024;
+    unitIndex++;
+  }
+
+  if (unitIndex == 0) {
+    return '$bytes ${units[unitIndex]}';
+  }
+
+  var fractionDigits = value >= 100
+      ? 0
+      : value >= 10
+      ? 1
+      : 2;
+  return '${value.toStringAsFixed(fractionDigits)} ${units[unitIndex]}';
+}
+
 String printMilliseconds(int value) => '$value ms';
 
 String printPercentage(num value, [int fractionDigits = 1]) =>
diff --git a/pkg/analysis_server/lib/src/status/pages/status_page.dart b/pkg/analysis_server/lib/src/status/pages/status_page.dart
index d2f1a5f..f6e2dd2 100644
--- a/pkg/analysis_server/lib/src/status/pages/status_page.dart
+++ b/pkg/analysis_server/lib/src/status/pages/status_page.dart
@@ -9,6 +9,7 @@
     show PROTOCOL_VERSION;
 import 'package:analysis_server/src/scheduler/message_scheduler.dart';
 import 'package:analysis_server/src/status/diagnostics.dart';
+import 'package:analysis_server/src/status/pages.dart';
 import 'package:analyzer/src/util/platform_info.dart';
 
 class StatusPage extends DiagnosticPageWithNav {
@@ -61,6 +62,118 @@
       buf.writeln('</div>');
     }
 
+    var byteStoreStats = server.byteStoreStats;
+    if (byteStoreStats != null) {
+      buf.writeln('<div class="columns">');
+
+      buf.writeln('<div class="column one-half">');
+      h3('Byte Store');
+      buf.writeln(
+        formatOption(
+          'Memory cache limit',
+          printBytes(byteStoreStats.maxSizeBytes),
+        ),
+      );
+      buf.writeln(
+        formatOption(
+          'Memory cache resident',
+          '${printBytes(byteStoreStats.currentSizeBytes)} (${byteStoreStats.entryCount} entries)',
+        ),
+      );
+      buf.writeln(
+        formatOption(
+          'Memory cache hits / misses',
+          '${byteStoreStats.cacheHitCount} / ${byteStoreStats.cacheMissCount}',
+        ),
+      );
+      buf.writeln(
+        formatOption(
+          'Backing store hits / misses',
+          '${byteStoreStats.storeHitCount} / ${byteStoreStats.storeMissCount}',
+        ),
+      );
+      buf.writeln(formatOption('Memory cache puts', byteStoreStats.putCount));
+      buf.writeln(
+        formatOption(
+          'Memory cache evictions',
+          '${byteStoreStats.evictionCount} (${byteStoreStats.evictedEntryCount} entries, ${printBytes(byteStoreStats.evictedBytes)})',
+        ),
+      );
+      buf.writeln('</div>');
+
+      buf.writeln('<div class="column one-half">');
+      h3('File Byte Store');
+      if (byteStoreStats.usesFileByteStore) {
+        buf.writeln(
+          formatOption(
+            'File cache path',
+            byteStoreStats.fileStorePath ?? '<unknown>',
+          ),
+        );
+        buf.writeln(
+          formatOption(
+            'File cache limit',
+            printBytes(byteStoreStats.fileCacheSizeBytes ?? 0),
+          ),
+        );
+        if (byteStoreStats.fileStoreSizeBytes case var fileStoreSizeBytes?) {
+          buf.writeln(
+            formatOption('Last observed size', printBytes(fileStoreSizeBytes)),
+          );
+        }
+        buf.writeln(
+          formatOption(
+            'Reads / misses',
+            '${byteStoreStats.readCount ?? 0} / ${byteStoreStats.readMissCount ?? 0}',
+          ),
+        );
+        buf.writeln(
+          formatOption(
+            'Writes',
+            '${byteStoreStats.writeCount ?? 0} (${printBytes(byteStoreStats.writeBytes ?? 0)})',
+          ),
+        );
+        buf.writeln(
+          formatOption('Pending writes', byteStoreStats.pendingWriteCount ?? 0),
+        );
+        buf.writeln(
+          formatOption('Cleanup runs', byteStoreStats.cleanUpCount ?? 0),
+        );
+        buf.writeln(
+          formatOption(
+            'Cleanup deletions',
+            '${byteStoreStats.deletedFileCount ?? 0} files, ${printBytes(byteStoreStats.deletedBytes ?? 0)}',
+          ),
+        );
+        if (byteStoreStats.lastCleanUpTimeMilliseconds
+            case var lastCleanUpTimeMilliseconds?) {
+          buf.writeln(
+            formatOption(
+              'Last cleanup time',
+              printMilliseconds(lastCleanUpTimeMilliseconds),
+            ),
+          );
+        }
+        if (byteStoreStats.lastScannedFileCount
+            case var lastScannedFileCount?) {
+          buf.writeln(
+            formatOption('Files seen in last cleanup', lastScannedFileCount),
+          );
+        }
+        buf.writeln(
+          formatOption(
+            'Failed reads / writes',
+            '${byteStoreStats.failedReadCount ?? 0} / ${byteStoreStats.failedWriteCount ?? 0}',
+          ),
+        );
+      } else {
+        buf.writeln('File byte store is disabled or unavailable.<br>');
+      }
+      buf.writeln('</div>');
+
+      buf.writeln('</div>');
+    }
+
     var lines = site.lastPrintedLines;
     if (lines.isNotEmpty) {
       h3('Debug output');
diff --git a/pkg/analyzer/api.txt b/pkg/analyzer/api.txt
index 18642b5..c3e06c6 100644
--- a/pkg/analyzer/api.txt
+++ b/pkg/analyzer/api.txt
@@ -784,6 +784,7 @@
     block (getter: Block)
   AnonymousExpressionBody (class extends Object implements AnonymousMethodBody, abstract, final, experimental):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     functionDefinition (getter: Token)
   AnonymousMethodBody (class extends Object implements AstNode, abstract, final, experimental)
   AnonymousMethodInvocation (class extends Object implements Expression, abstract, final, experimental):
@@ -795,16 +796,20 @@
     parameters (getter: FormalParameterList?)
     realTarget (getter: Expression)
     target (getter: Expression?)
+    target2 (getter: Expression?, experimental)
   Argument (class extends Object implements AstNode, sealed (immediate subtypes: ArgumentImpl, Expression, NamedArgument)):
     argumentExpression (getter: Expression)
+    argumentExpression2 (getter: Expression, experimental)
     correspondingParameter (getter: FormalParameterElement?)
   ArgumentList (class extends Object implements AstNode, abstract, final):
     arguments (getter: NodeList<Argument>)
+    arguments2 (getter: NodeList<Argument>, experimental)
     leftParenthesis (getter: Token)
     rightParenthesis (getter: Token)
   AsExpression (class extends Object implements Expression, abstract, final):
     asOperator (getter: Token)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     type (getter: TypeAnnotation)
   AssertInitializer (class extends Object implements Assertion, ConstructorInitializer, abstract, final)
   AssertStatement (class extends Object implements Assertion, Statement, abstract, final):
@@ -813,15 +818,19 @@
     assertKeyword (getter: Token)
     comma (getter: Token?)
     condition (getter: Expression)
+    condition2 (getter: Expression, experimental)
     leftParenthesis (getter: Token)
     message (getter: Expression?)
+    message2 (getter: Expression?, experimental)
     rightParenthesis (getter: Token)
   AssignedVariablePattern (class extends Object implements VariablePattern, abstract, final):
     element (getter: Element?)
   AssignmentExpression (class extends Object implements MethodReferenceExpression, CompoundAssignmentExpression, abstract, final):
     leftHandSide (getter: Expression)
+    leftHandSide2 (getter: Expression, experimental)
     operator (getter: Token)
     rightHandSide (getter: Expression)
+    rightHandSide2 (getter: Expression, experimental)
   AstNode (class extends Object implements SyntacticEntity, abstract, final):
     LEXICAL_ORDER (static getter: int Function(AstNode, AstNode))
     LEXICAL_ORDER= (static setter: int Function(AstNode, AstNode))
@@ -1222,10 +1231,13 @@
   AwaitExpression (class extends Object implements Expression, abstract, final):
     awaitKeyword (getter: Token)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
   BinaryExpression (class extends Object implements Expression, MethodReferenceExpression, abstract, final):
     leftOperand (getter: Expression)
+    leftOperand2 (getter: Expression, experimental)
     operator (getter: Token)
     rightOperand (getter: Expression)
+    rightOperand2 (getter: Expression, experimental)
     staticInvokeType (getter: FunctionType?)
   Block (class extends Object implements Statement, abstract, final):
     leftBracket (getter: Token)
@@ -1250,8 +1262,10 @@
     target (getter: AstNode?)
   CascadeExpression (class extends Object implements Expression, abstract, final):
     cascadeSections (getter: NodeList<Expression>)
+    cascadeSections2 (getter: NodeList<Expression>, experimental)
     isNullAware (getter: bool)
     target (getter: Expression)
+    target2 (getter: Expression, experimental)
   CaseClause (class extends Object implements AstNode, abstract, final):
     caseKeyword (getter: Token)
     guardedPattern (getter: GuardedPattern)
@@ -1320,6 +1334,7 @@
   CommentReferableExpression (class extends Object implements Expression, abstract, final)
   CommentReference (class extends Object implements AstNode, abstract, final):
     expression (getter: CommentReferableExpression)
+    expression2 (getter: CommentReferableExpression, experimental)
     newKeyword (getter: Token?)
   CompilationUnit (class extends Object implements AstNode, abstract, final):
     beginToken (getter: Token)
@@ -1344,9 +1359,12 @@
   ConditionalExpression (class extends Object implements Expression, abstract, final):
     colon (getter: Token)
     condition (getter: Expression)
+    condition2 (getter: Expression, experimental)
     elseExpression (getter: Expression)
+    elseExpression2 (getter: Expression, experimental)
     question (getter: Token)
     thenExpression (getter: Expression)
+    thenExpression2 (getter: Expression, experimental)
   Configuration (class extends Object implements AstNode, abstract, final):
     equalToken (getter: Token?)
     ifKeyword (getter: Token)
@@ -1359,6 +1377,7 @@
   ConstantPattern (class extends Object implements DartPattern, abstract, final):
     constKeyword (getter: Token?)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
   ConstructorDeclaration (class extends Object implements ClassMember, abstract, final):
     augmentKeyword (getter: Token?)
     body (getter: FunctionBody)
@@ -1379,6 +1398,7 @@
   ConstructorFieldInitializer (class extends Object implements ConstructorInitializer, abstract, final):
     equals (getter: Token)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     fieldName (getter: SimpleIdentifier)
     period (getter: Token?)
     thisKeyword (getter: Token?)
@@ -1425,6 +1445,7 @@
   DoStatement (class extends Object implements Statement, abstract, final):
     body (getter: Statement)
     condition (getter: Expression)
+    condition2 (getter: Expression, experimental)
     doKeyword (getter: Token)
     leftParenthesis (getter: Token)
     rightParenthesis (getter: Token)
@@ -1489,12 +1510,14 @@
     computeConstantValue (method: AttemptedConstantEvaluationResult? Function())
   ExpressionFunctionBody (class extends Object implements FunctionBody, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     functionDefinition (getter: Token)
     keyword (getter: Token?)
     semicolon (getter: Token?)
     star (getter: Token?)
   ExpressionStatement (class extends Object implements Statement, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     semicolon (getter: Token?)
   ExtendsClause (class extends Object implements AstNode, abstract, final):
     extendsKeyword (getter: Token)
@@ -1554,7 +1577,9 @@
     keyword (getter: Token)
     metadata (getter: NodeList<Annotation>)
     pattern (getter: DartPattern)
-  ForElement (class extends Object implements CollectionElement, ForLoop<CollectionElement>, abstract, final)
+  ForElement (class extends Object implements CollectionElement, ForLoop<CollectionElement>, abstract, final):
+    body (getter: CollectionElement)
+    body2 (getter: CollectionElement, experimental)
   ForLoop (class<Body extends AstNode> extends Object implements AstNode, sealed (immediate subtypes: ForElement, ForLoopImpl, ForStatement)):
     awaitKeyword (getter: Token?)
     body (getter: Body)
@@ -1570,10 +1595,12 @@
     leftSeparator (getter: Token)
     rightSeparator (getter: Token)
     updaters (getter: NodeList<Expression>)
+    updaters2 (getter: NodeList<Expression>, experimental)
   ForPartsWithDeclarations (class extends Object implements ForParts, abstract, final):
     variables (getter: VariableDeclarationList)
   ForPartsWithExpression (class extends Object implements ForParts, abstract, final):
     initialization (getter: Expression?)
+    initialization2 (getter: Expression?, experimental)
   ForPartsWithPattern (class extends Object implements ForParts, abstract, final):
     variables (getter: PatternVariableDeclaration)
   ForStatement (class extends Object implements Statement, ForLoop<Statement>, abstract, final)
@@ -1603,6 +1630,7 @@
   FormalParameterDefaultClause (class extends Object implements AstNode, abstract, final):
     separator (getter: Token)
     value (getter: Expression)
+    value2 (getter: Expression, experimental)
   FormalParameterList (class extends Object implements AstNode, abstract, final):
     delimitedFormalParameters (getter: DelimitedFormalParameters?, experimental)
     leftDelimiter (getter: Token?)
@@ -1640,8 +1668,10 @@
   FunctionExpressionInvocation (class extends Object implements InvocationExpression, abstract, final):
     element (getter: ExecutableElement?)
     function (getter: Expression)
+    function2 (getter: Expression, experimental)
   FunctionReference (class extends Object implements Expression, CommentReferableExpression, abstract, final):
     function (getter: Expression)
+    function2 (getter: Expression, experimental)
     typeArgumentTypes (getter: List<DartType>?)
     typeArguments (getter: TypeArgumentList?)
   FunctionTypeAlias (class extends Object implements TypeAlias, abstract, final):
@@ -1676,17 +1706,21 @@
   IfElement (class extends Object implements CollectionElement, abstract, final):
     caseClause (getter: CaseClause?)
     elseElement (getter: CollectionElement?)
+    elseElement2 (getter: CollectionElement?, experimental)
     elseKeyword (getter: Token?)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     ifKeyword (getter: Token)
     leftParenthesis (getter: Token)
     rightParenthesis (getter: Token)
     thenElement (getter: CollectionElement)
+    thenElement2 (getter: CollectionElement, experimental)
   IfStatement (class extends Object implements Statement, abstract, final):
     caseClause (getter: CaseClause?)
     elseKeyword (getter: Token?)
     elseStatement (getter: Statement?)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     ifKeyword (getter: Token)
     leftParenthesis (getter: Token)
     rightParenthesis (getter: Token)
@@ -1696,6 +1730,7 @@
     interfaces (getter: NodeList<NamedType>)
   ImplicitCallReference (class extends Object implements MethodReferenceExpression, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     typeArgumentTypes (getter: List<DartType>)
     typeArguments (getter: TypeArgumentList?)
   ImportDirective (class extends Object implements NamespaceDirective, abstract, final):
@@ -1710,6 +1745,7 @@
     period (getter: Token)
   IndexExpression (class extends Object implements MethodReferenceExpression, abstract, final):
     index (getter: Expression)
+    index2 (getter: Expression, experimental)
     isCascaded (getter: bool)
     isNullAware (getter: bool)
     leftBracket (getter: Token)
@@ -1718,6 +1754,7 @@
     realTarget (getter: Expression)
     rightBracket (getter: Token)
     target (getter: Expression?)
+    target2 (getter: Expression?, experimental)
     inGetterContext (method: bool Function())
     inSetterContext (method: bool Function())
   InstanceCreationExpression (class extends Object implements Expression, abstract, final):
@@ -1731,6 +1768,7 @@
   InterpolationElement (class extends Object implements AstNode, sealed (immediate subtypes: InterpolationElementImpl, InterpolationExpression, InterpolationString))
   InterpolationExpression (class extends Object implements InterpolationElement, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     leftBracket (getter: Token)
     rightBracket (getter: Token?)
   InterpolationString (class extends Object implements InterpolationElement, abstract, final):
@@ -1746,6 +1784,7 @@
     typeArguments (getter: TypeArgumentList?)
   IsExpression (class extends Object implements Expression, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     isOperator (getter: Token)
     notOperator (getter: Token?)
     type (getter: TypeAnnotation)
@@ -1766,6 +1805,7 @@
     semicolon (getter: Token)
   ListLiteral (class extends Object implements TypedLiteral, abstract, final):
     elements (getter: NodeList<CollectionElement>)
+    elements2 (getter: NodeList<CollectionElement>, experimental)
     leftBracket (getter: Token)
     rightBracket (getter: Token)
   ListPattern (class extends Object implements DartPattern, abstract, final):
@@ -1786,9 +1826,11 @@
     rightOperand (getter: DartPattern)
   MapLiteralEntry (class extends Object implements CollectionElement, abstract, final):
     key (getter: Expression)
+    key2 (getter: Expression, experimental)
     keyQuestion (getter: Token?)
     separator (getter: Token)
     value (getter: Expression)
+    value2 (getter: Expression, experimental)
     valueQuestion (getter: Token?)
   MapPattern (class extends Object implements DartPattern, abstract, final):
     elements (getter: NodeList<MapPatternElement>)
@@ -1799,6 +1841,7 @@
   MapPatternElement (class extends Object implements AstNode, sealed (immediate subtypes: MapPatternElementImpl, MapPatternEntry, RestPatternElement))
   MapPatternEntry (class extends Object implements AstNode, MapPatternElement, abstract, final):
     key (getter: Expression)
+    key2 (getter: Expression, experimental)
     separator (getter: Token)
     value (getter: DartPattern)
   MethodDeclaration (class extends Object implements ClassMember, abstract, final):
@@ -1826,6 +1869,7 @@
     operator (getter: Token?)
     realTarget (getter: Expression?)
     target (getter: Expression?)
+    target2 (getter: Expression?, experimental)
   MethodReferenceExpression (class extends Object implements Expression, abstract, final):
     element (getter: MethodElement?)
   MixinDeclaration (class extends Object implements CompilationUnitMember, abstract, final):
@@ -1844,6 +1888,7 @@
   NameWithTypeParameters (class extends Object implements ClassNamePart, abstract, final)
   NamedArgument (class extends Object implements Argument, abstract, final):
     argumentExpression (getter: Expression)
+    argumentExpression2 (getter: Expression, experimental)
     colon (getter: Token)
     name (getter: Token)
   NamedType (class extends Object implements TypeAnnotation, abstract, final):
@@ -1883,6 +1928,7 @@
   NullAwareElement (class extends Object implements CollectionElement, abstract, final):
     question (getter: Token)
     value (getter: Expression)
+    value2 (getter: Expression, experimental)
   NullCheckPattern (class extends Object implements DartPattern, abstract, final):
     operator (getter: Token)
     pattern (getter: DartPattern)
@@ -1895,6 +1941,7 @@
     type (getter: NamedType)
   ParenthesizedExpression (class extends Object implements Expression, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     leftParenthesis (getter: Token)
     rightParenthesis (getter: Token)
   ParenthesizedPattern (class extends Object implements DartPattern, abstract, final):
@@ -1914,6 +1961,7 @@
   PatternAssignment (class extends Object implements Expression, abstract, final):
     equals (getter: Token)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     pattern (getter: DartPattern)
   PatternField (class extends Object implements AstNode, abstract, final):
     effectiveName (getter: String?)
@@ -1926,6 +1974,7 @@
   PatternVariableDeclaration (class extends Object implements AnnotatedNode, abstract, final):
     equals (getter: Token)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     keyword (getter: Token)
     pattern (getter: DartPattern)
   PatternVariableDeclarationStatement (class extends Object implements Statement, abstract, final):
@@ -1934,10 +1983,12 @@
   PostfixExpression (class extends Object implements Expression, MethodReferenceExpression, CompoundAssignmentExpression, abstract, final):
     element (getter: MethodElement?)
     operand (getter: Expression)
+    operand2 (getter: Expression, experimental)
     operator (getter: Token)
   PrefixExpression (class extends Object implements Expression, MethodReferenceExpression, CompoundAssignmentExpression, abstract, final):
     element (getter: MethodElement?)
     operand (getter: Expression)
+    operand2 (getter: Expression, experimental)
     operator (getter: Token)
   PrefixedIdentifier (class extends Object implements Identifier, abstract, final):
     identifier (getter: SimpleIdentifier)
@@ -1969,17 +2020,21 @@
     propertyName (getter: SimpleIdentifier)
     realTarget (getter: Expression)
     target (getter: Expression?)
+    target2 (getter: Expression?, experimental)
   RecordLiteral (class extends Object implements Literal, abstract, final):
     constKeyword (getter: Token?)
     fields (getter: NodeList<RecordLiteralField>)
+    fields2 (getter: NodeList<RecordLiteralField>, experimental)
     isConst (getter: bool)
     leftParenthesis (getter: Token)
     rightParenthesis (getter: Token)
   RecordLiteralField (class extends Object implements AstNode, abstract, final):
     fieldExpression (getter: Expression)
+    fieldExpression2 (getter: Expression, experimental)
   RecordLiteralNamedField (class extends Object implements RecordLiteralField, sealed (immediate subtypes: RecordLiteralNamedFieldImpl)):
     colon (getter: Token)
     fieldExpression (getter: Expression)
+    fieldExpression2 (getter: Expression, experimental)
     name (getter: Token)
   RecordPattern (class extends Object implements DartPattern, abstract, final):
     fields (getter: NodeList<PatternField>)
@@ -2010,6 +2065,7 @@
   RelationalPattern (class extends Object implements DartPattern, abstract, final):
     element (getter: MethodElement?)
     operand (getter: Expression)
+    operand2 (getter: Expression, experimental)
     operator (getter: Token)
   RestPatternElement (class extends Object implements ListPatternElement, MapPatternElement, abstract, final):
     operator (getter: Token)
@@ -2018,12 +2074,14 @@
     rethrowKeyword (getter: Token)
   ReturnStatement (class extends Object implements Statement, abstract, final):
     expression (getter: Expression?)
+    expression2 (getter: Expression?, experimental)
     returnKeyword (getter: Token)
     semicolon (getter: Token)
   ScriptTag (class extends Object implements AstNode, abstract, final):
     scriptTag (getter: Token)
   SetOrMapLiteral (class extends Object implements TypedLiteral, abstract, final):
     elements (getter: NodeList<CollectionElement>)
+    elements2 (getter: NodeList<CollectionElement>, experimental)
     isMap (getter: bool)
     isSet (getter: bool)
     leftBracket (getter: Token)
@@ -2048,6 +2106,7 @@
     isSingleQuoted (getter: bool)
   SpreadElement (class extends Object implements CollectionElement, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     isNullAware (getter: bool)
     spreadOperator (getter: Token)
   Statement (class extends Object implements AstNode, abstract, final):
@@ -2072,10 +2131,12 @@
     superKeyword (getter: Token)
   SwitchCase (class extends Object implements SwitchMember, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
   SwitchDefault (class extends Object implements SwitchMember, abstract, final)
   SwitchExpression (class extends Object implements Expression, abstract, final):
     cases (getter: NodeList<SwitchExpressionCase>)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     leftBracket (getter: Token)
     leftParenthesis (getter: Token)
     rightBracket (getter: Token)
@@ -2084,6 +2145,7 @@
   SwitchExpressionCase (class extends Object implements AstNode, abstract, final):
     arrow (getter: Token)
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     guardedPattern (getter: GuardedPattern)
   SwitchMember (class extends Object implements AstNode, sealed (immediate subtypes: SwitchCase, SwitchDefault, SwitchMemberImpl, SwitchPatternCase)):
     colon (getter: Token)
@@ -2094,6 +2156,7 @@
     guardedPattern (getter: GuardedPattern)
   SwitchStatement (class extends Object implements Statement, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     leftBracket (getter: Token)
     leftParenthesis (getter: Token)
     members (getter: NodeList<SwitchMember>)
@@ -2107,6 +2170,7 @@
     thisKeyword (getter: Token)
   ThrowExpression (class extends Object implements Expression, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     throwKeyword (getter: Token)
   TopLevelVariableDeclaration (class extends Object implements CompilationUnitMember, abstract, final):
     abstractKeyword (getter: Token?)
@@ -2153,6 +2217,7 @@
     declaredFragment (getter: VariableFragment?)
     equals (getter: Token?)
     initializer (getter: Expression?)
+    initializer2 (getter: Expression?, experimental)
     isConst (getter: bool)
     isFinal (getter: bool)
     isLate (getter: bool)
@@ -2172,10 +2237,12 @@
     name (getter: Token)
   WhenClause (class extends Object implements AstNode, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     whenKeyword (getter: Token)
   WhileStatement (class extends Object implements Statement, abstract, final):
     body (getter: Statement)
     condition (getter: Expression)
+    condition2 (getter: Expression, experimental)
     leftParenthesis (getter: Token)
     rightParenthesis (getter: Token)
     whileKeyword (getter: Token)
@@ -2188,6 +2255,7 @@
     withKeyword (getter: Token)
   YieldStatement (class extends Object implements Statement, abstract, final):
     expression (getter: Expression)
+    expression2 (getter: Expression, experimental)
     semicolon (getter: Token)
     star (getter: Token?)
     yieldKeyword (getter: Token)
diff --git a/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart b/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart
index 82b02c4..792a6ee 100644
--- a/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart
+++ b/pkg/analyzer/lib/src/clients/dart_style/rewrite_cascade.dart
@@ -12,22 +12,22 @@
   required CascadeExpression cascadeExpression,
 }) {
   cascadeExpression as CascadeExpressionImpl;
-  assert(cascadeExpression.cascadeSections.length == 1);
+  assert(cascadeExpression.cascadeSections2.length == 1);
 
   var newTarget = ParenthesizedExpressionImpl(
     leftParenthesis: Token(TokenType.OPEN_PAREN, 0)
       ..previous = expressionStatement.beginToken.previous
-      ..next = cascadeExpression.target.beginToken,
-    expression: cascadeExpression.target,
+      ..next = cascadeExpression.target2.beginToken,
+    expression2: cascadeExpression.target2,
     rightParenthesis: Token(TokenType.CLOSE_PAREN, 0)
-      ..previous = cascadeExpression.target.endToken
+      ..previous = cascadeExpression.target2.endToken
       ..next = expressionStatement.semicolon,
   );
 
   return ExpressionStatementImpl(
-    expression: CascadeExpressionImpl(
-      target: newTarget,
-      cascadeSections: cascadeExpression.cascadeSections,
+    expression2: CascadeExpressionImpl(
+      target2: newTarget,
+      cascadeSections2: cascadeExpression.cascadeSections2,
     ),
     semicolon: expressionStatement.semicolon,
   );
@@ -48,12 +48,12 @@
   // Otherwise, copy `expression` and recurse into its LHS.
   if (expression is AssignmentExpressionImpl) {
     return AssignmentExpressionImpl(
-      leftHandSide: insertCascadeTargetIntoExpression(
-        expression: expression.leftHandSide,
+      leftHandSide2: insertCascadeTargetIntoExpression(
+        expression: expression.leftHandSide2,
         cascadeTarget: cascadeTarget,
       ),
       operator: expression.operator,
-      rightHandSide: expression.rightHandSide,
+      rightHandSide2: expression.rightHandSide2,
     );
   } else if (expression is IndexExpressionImpl) {
     var expressionTarget = expression.realTarget;
@@ -66,20 +66,20 @@
     }
 
     return IndexExpressionImpl(
-      target: insertCascadeTargetIntoExpression(
+      target2: insertCascadeTargetIntoExpression(
         expression: expressionTarget,
         cascadeTarget: cascadeTarget,
       ),
       period: null,
       question: question,
       leftBracket: expression.leftBracket,
-      index: expression.index,
+      index2: expression.index2,
       rightBracket: expression.rightBracket,
     );
   } else if (expression is MethodInvocationImpl) {
     var expressionTarget = expression.realTarget!;
     return MethodInvocationImpl(
-      target: insertCascadeTargetIntoExpression(
+      target2: insertCascadeTargetIntoExpression(
         expression: expressionTarget,
         cascadeTarget: cascadeTarget,
       ),
@@ -94,7 +94,7 @@
   } else if (expression is PropertyAccessImpl) {
     var expressionTarget = expression.realTarget;
     return PropertyAccessImpl(
-      target: insertCascadeTargetIntoExpression(
+      target2: insertCascadeTargetIntoExpression(
         expression: expressionTarget,
         cascadeTarget: cascadeTarget,
       ),
diff --git a/pkg/analyzer/lib/src/dart/analysis/byte_store.dart b/pkg/analyzer/lib/src/dart/analysis/byte_store.dart
index ff16e33..cedee88 100644
--- a/pkg/analyzer/lib/src/dart/analysis/byte_store.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/byte_store.dart
@@ -119,28 +119,50 @@
 class MemoryCachingByteStore implements ByteStore {
   final ByteStore _store;
   final Cache<String, Uint8List> _cache;
+  int _cacheHitCount = 0;
+  int _cacheMissCount = 0;
+  int _putCount = 0;
+  int _storeHitCount = 0;
+  int _storeMissCount = 0;
 
   MemoryCachingByteStore(this._store, int maxSizeBytes)
     : _cache = Cache<String, Uint8List>(maxSizeBytes, (v) => v.length);
 
+  int get cacheHitCount => _cacheHitCount;
+  int get cacheMissCount => _cacheMissCount;
+  int get currentSizeBytes => _cache.currentSizeBytes;
+  int get entryCount => _cache.entryCount;
+  int get evictedBytes => _cache.evictedBytes;
+  int get evictedEntryCount => _cache.evictedEntryCount;
+  int get evictionCount => _cache.evictionCount;
+  int get maxSizeBytes => _cache.maxSizeBytes;
+  int get putCount => _putCount;
+  int get storeHitCount => _storeHitCount;
+  int get storeMissCount => _storeMissCount;
+
   @override
   Uint8List? get(String key) {
     var cached = _cache.get(key);
     if (cached != null) {
+      _cacheHitCount++;
       return cached;
     }
 
+    _cacheMissCount++;
     var fromStore = _store.get(key);
     if (fromStore != null) {
+      _storeHitCount++;
       _cache.put(key, fromStore);
       return fromStore;
     }
 
+    _storeMissCount++;
     return null;
   }
 
   @override
   Uint8List putGet(String key, Uint8List bytes) {
+    _putCount++;
     _store.putGet(key, bytes);
     _cache.put(key, bytes);
     return bytes;
diff --git a/pkg/analyzer/lib/src/dart/analysis/cache.dart b/pkg/analyzer/lib/src/dart/analysis/cache.dart
index 4437c73..e8a2b83 100644
--- a/pkg/analyzer/lib/src/dart/analysis/cache.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/cache.dart
@@ -12,9 +12,19 @@
   @visibleForTesting
   final map = <K, V>{};
   int _currentSizeBytes = 0;
+  int _evictedBytes = 0;
+  int _evictedEntryCount = 0;
+  int _evictionCount = 0;
 
   Cache(this._maxSizeBytes, this._meter);
 
+  int get currentSizeBytes => _currentSizeBytes;
+  int get entryCount => map.length;
+  int get evictedBytes => _evictedBytes;
+  int get evictedEntryCount => _evictedEntryCount;
+  int get evictionCount => _evictionCount;
+  int get maxSizeBytes => _maxSizeBytes;
+
   V? get(K key) {
     var value = map.remove(key);
     if (value != null) {
@@ -36,9 +46,12 @@
   void _evict() {
     if (_currentSizeBytes > _maxSizeBytes) {
       var keysToRemove = <K>[];
+      var evictedBytes = 0;
       for (var entry in map.entries) {
         keysToRemove.add(entry.key);
-        _currentSizeBytes -= _meter(entry.value);
+        var entrySize = _meter(entry.value);
+        _currentSizeBytes -= entrySize;
+        evictedBytes += entrySize;
         if (_currentSizeBytes <= _maxSizeBytes) {
           break;
         }
@@ -46,6 +59,11 @@
       for (var key in keysToRemove) {
         map.remove(key);
       }
+      if (keysToRemove.isNotEmpty) {
+        _evictionCount++;
+        _evictedBytes += evictedBytes;
+        _evictedEntryCount += keysToRemove.length;
+      }
     }
   }
 }
diff --git a/pkg/analyzer/lib/src/dart/analysis/file_byte_store.dart b/pkg/analyzer/lib/src/dart/analysis/file_byte_store.dart
index 3cc87e4..498cfe9 100644
--- a/pkg/analyzer/lib/src/dart/analysis/file_byte_store.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/file_byte_store.dart
@@ -20,6 +20,24 @@
   CacheCleanUpRequest(this.cachePath, this.maxSizeBytes, this.replyTo);
 }
 
+/// The result that is sent from the clean-up isolate back to the main
+/// isolate.
+class CacheCleanUpResult {
+  final int currentSizeBytes;
+  final int deletedBytes;
+  final int deletedFileCount;
+  final int elapsedMilliseconds;
+  final int fileCount;
+
+  CacheCleanUpResult({
+    required this.currentSizeBytes,
+    required this.deletedBytes,
+    required this.deletedFileCount,
+    required this.elapsedMilliseconds,
+    required this.fileCount,
+  });
+}
+
 /// [ByteStore] that stores values as files and performs cache eviction.
 ///
 /// Only the process that manages the cache, e.g. Analysis Server, should use
@@ -34,13 +52,35 @@
   final FileByteStore _fileByteStore;
 
   int _bytesWrittenSinceCleanup = 0;
+  int _cleanUpCount = 0;
+  int _deletedBytes = 0;
+  int _deletedFileCount = 0;
   bool _evictionIsolateIsRunning = false;
+  int? _lastCleanUpTimeMilliseconds;
+  int? _lastKnownSizeBytes;
+  int? _lastScannedFileCount;
 
   EvictingFileByteStore(this._cachePath, this._maxSizeBytes)
     : _fileByteStore = FileByteStore(_cachePath) {
     _requestCacheCleanUp();
   }
 
+  String get cachePath => _cachePath;
+  int get cleanUpCount => _cleanUpCount;
+  int get deletedBytes => _deletedBytes;
+  int get deletedFileCount => _deletedFileCount;
+  int get failedReadCount => _fileByteStore.failedReadCount;
+  int get failedWriteCount => _fileByteStore.failedWriteCount;
+  int? get lastCleanUpTimeMilliseconds => _lastCleanUpTimeMilliseconds;
+  int? get lastKnownSizeBytes => _lastKnownSizeBytes;
+  int? get lastScannedFileCount => _lastScannedFileCount;
+  int get maxSizeBytes => _maxSizeBytes;
+  int get pendingWriteCount => _fileByteStore.pendingWriteCount;
+  int get readCount => _fileByteStore.readCount;
+  int get readMissCount => _fileByteStore.readMissCount;
+  int get writeBytes => _fileByteStore.writeBytes;
+  int get writeCount => _fileByteStore.writeCount;
+
   @override
   Uint8List? get(String key) => _fileByteStore.get(key);
 
@@ -78,7 +118,13 @@
         _cleanUpSendPort!.send(
           CacheCleanUpRequest(_cachePath, _maxSizeBytes, response.sendPort),
         );
-        await response.first;
+        var result = await response.first as CacheCleanUpResult;
+        _cleanUpCount++;
+        _deletedBytes += result.deletedBytes;
+        _deletedFileCount += result.deletedFileCount;
+        _lastCleanUpTimeMilliseconds = result.elapsedMilliseconds;
+        _lastKnownSizeBytes = result.currentSizeBytes;
+        _lastScannedFileCount = result.fileCount;
       } finally {
         _evictionIsolateIsRunning = false;
         _bytesWrittenSinceCleanup = 0;
@@ -94,25 +140,34 @@
     initialReplyTo.send(port.sendPort);
     port.listen((request) {
       if (request is CacheCleanUpRequest) {
-        _cleanUpFolder(request.cachePath, request.maxSizeBytes);
+        var result = _cleanUpFolder(request.cachePath, request.maxSizeBytes);
         // Let the client know that we're done.
-        request.replyTo.send(true);
+        request.replyTo.send(result);
       }
     });
   }
 
-  static void _cleanUpFolder(String cachePath, int maxSizeBytes) {
+  static CacheCleanUpResult _cleanUpFolder(String cachePath, int maxSizeBytes) {
+    var stopwatch = Stopwatch()..start();
     List<FileSystemEntity> resources;
     try {
       resources = Directory(cachePath).listSync(recursive: true);
     } catch (_) {
-      return;
+      return CacheCleanUpResult(
+        currentSizeBytes: 0,
+        deletedBytes: 0,
+        deletedFileCount: 0,
+        elapsedMilliseconds: stopwatch.elapsedMilliseconds,
+        fileCount: 0,
+      );
     }
 
     // Prepare the list of files and their statistics.
     List<File> files = <File>[];
     Map<File, FileStat> fileStatMap = {};
     int currentSizeBytes = 0;
+    int deletedBytes = 0;
+    int deletedFileCount = 0;
     for (FileSystemEntity resource in resources) {
       if (resource is File) {
         try {
@@ -139,9 +194,20 @@
       }
       try {
         file.deleteSync();
-        currentSizeBytes -= fileStatMap[file]!.size;
+        var deletedSize = fileStatMap[file]!.size;
+        currentSizeBytes -= deletedSize;
+        deletedBytes += deletedSize;
+        deletedFileCount++;
       } catch (_) {}
     }
+
+    return CacheCleanUpResult(
+      currentSizeBytes: currentSizeBytes,
+      deletedBytes: deletedBytes,
+      deletedFileCount: deletedFileCount,
+      elapsedMilliseconds: stopwatch.elapsedMilliseconds,
+      fileCount: files.length,
+    );
   }
 }
 
@@ -154,6 +220,12 @@
   final String _tempSuffix;
   final Map<String, Uint8List> _writeInProgress = {};
   final FuturePool _pool = FuturePool(20);
+  int _failedReadCount = 0;
+  int _failedWriteCount = 0;
+  int _readCount = 0;
+  int _readMissCount = 0;
+  int _writeBytes = 0;
+  int _writeCount = 0;
 
   /// If the same cache path is used from more than one isolate of the same
   /// process, then a unique [tempNameSuffix] must be provided for each isolate.
@@ -161,9 +233,21 @@
     : _tempSuffix =
           '-temp-$pid${tempNameSuffix.isEmpty ? '' : '-$tempNameSuffix'}';
 
+  int get failedReadCount => _failedReadCount;
+  int get failedWriteCount => _failedWriteCount;
+  int get pendingWriteCount => _writeInProgress.length;
+  int get readCount => _readCount;
+  int get readMissCount => _readMissCount;
+  int get writeBytes => _writeBytes;
+  int get writeCount => _writeCount;
+
   @override
   Uint8List? get(String key) {
-    if (!_canShard(key)) return null;
+    _readCount++;
+    if (!_canShard(key)) {
+      _readMissCount++;
+      return null;
+    }
 
     var bytes = _writeInProgress[key];
     if (bytes != null) {
@@ -174,9 +258,19 @@
       var shardPath = _getShardPath(key);
       var path = join(shardPath, key);
       var bytes = File(path).readAsBytesSync();
-      return _validator.getData(bytes);
+      var data = _validator.getData(bytes);
+      if (data == null) {
+        _readMissCount++;
+      }
+      return data;
+    } on PathNotFoundException {
+      // The entry is not cached yet, an ordinary miss.
+      _readMissCount++;
+      return null;
     } catch (_) {
       // ignore exceptions
+      _failedReadCount++;
+      _readMissCount++;
       return null;
     }
   }
@@ -187,6 +281,8 @@
       return bytes;
     }
 
+    _writeCount++;
+    _writeBytes += bytes.length;
     _writeInProgress[key] = bytes;
 
     var wrappedBytes = _validator.wrapData(bytes);
@@ -206,6 +302,7 @@
         }
       } catch (_) {
         // ignore exceptions
+        _failedWriteCount++;
       }
     });
 
diff --git a/pkg/analyzer/lib/src/dart/analysis/index.dart b/pkg/analyzer/lib/src/dart/analysis/index.dart
index 71b3346..5da6a35 100644
--- a/pkg/analyzer/lib/src/dart/analysis/index.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/index.dart
@@ -784,7 +784,7 @@
 
   @override
   visitCommentReference(CommentReference node) {
-    var expression = node.expression;
+    var expression = node.expression2;
     if (expression is Identifier) {
       var element = expression.element;
       if (element is ConstructorElement) {
@@ -850,7 +850,7 @@
     var fieldName = node.fieldName;
     var element = fieldName.element;
     recordRelation(element, IndexRelationKind.IS_WRITTEN_BY, fieldName, true);
-    node.expression.accept2(this);
+    node.expression2.accept2(this);
   }
 
   @override
@@ -1071,7 +1071,7 @@
         ? IndexRelationKind.IS_REFERENCED_BY
         : IndexRelationKind.IS_INVOKED_BY;
     recordRelation(element, kind, name, isQualified);
-    node.target?.accept2(this);
+    node.target2?.accept2(this);
     node.typeArguments?.accept2(this);
     node.argumentList.accept2(this);
   }
diff --git a/pkg/analyzer/lib/src/dart/analysis/search.dart b/pkg/analyzer/lib/src/dart/analysis/search.dart
index 3fd1dea..8b035eb 100644
--- a/pkg/analyzer/lib/src/dart/analysis/search.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/search.dart
@@ -306,7 +306,7 @@
             _addResultForPrefix(node, parent.identifier);
           }
         }
-        if (parent is MethodInvocation && parent.target == node) {
+        if (parent is MethodInvocation && parent.target2 == node) {
           var element = parent.methodName.element?.baseElement;
           if (importedElements.contains(element)) {
             _addResultForPrefix(node, parent.methodName);
diff --git a/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart b/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
index ca84593..63d8e1a 100644
--- a/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/unlinked_api_signature.dart
@@ -230,9 +230,9 @@
 
     for (var variable in variables) {
       _addToken(variable.name);
-      signature.addBool(variable.initializer != null);
+      signature.addBool(variable.initializer2 != null);
       if (includeInitializers) {
-        _addNode(variable.initializer);
+        _addNode(variable.initializer2);
       }
     }
   }
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 1d17ce8..543471a 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -839,8 +839,12 @@
 @experimental
 abstract final class AnonymousExpressionBody implements AnonymousMethodBody {
   /// The body expression.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The '=>' token.
   Token get functionDefinition;
 }
@@ -848,7 +852,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('functionDefinition'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 @experimental
@@ -859,14 +868,15 @@
   final Token functionDefinition;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   AnonymousExpressionBodyImpl({
     required this.functionDefinition,
-    required ExpressionImpl expression,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+    required ExpressionImpl expression2,
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -878,16 +888,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -900,7 +918,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('functionDefinition', functionDefinition)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -924,8 +942,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -933,8 +951,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -955,7 +973,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -967,12 +985,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -988,8 +1006,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -1044,7 +1062,7 @@
   /// The expression used to compute the receiver of the invocation.
   ///
   /// If this invocation isn't part of a cascade expression, then this is the
-  /// same as [target]. If this invocation is part of a cascade expression,
+  /// same as [target2]. If this invocation is part of a cascade expression,
   /// then the target stored with the cascade expression is returned.
   Expression get realTarget;
 
@@ -1053,12 +1071,20 @@
   ///
   /// Use [realTarget] to get the target independent of whether this is part of
   /// a cascade expression.
+  @ToBeDeprecated('Use target2 instead.')
   Expression? get target;
+
+  @experimental
+  Expression? get target2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('target'),
+    GenerateNodeProperty(
+      'target2',
+      v1Name: 'target',
+      v1Projection: V1Projection.expression,
+    ),
     GenerateNodeProperty('operator'),
     GenerateNodeProperty('parameters'),
     GenerateNodeProperty('body'),
@@ -1069,7 +1095,7 @@
     with DotShorthandMixin
     implements AnonymousMethodInvocation {
   @generated
-  ExpressionImpl? _target;
+  ExpressionImpl? _target2;
 
   @generated
   @override
@@ -1087,14 +1113,18 @@
 
   @generated
   AnonymousMethodInvocationImpl({
-    required ExpressionImpl? target,
+    required ExpressionImpl? target2,
     required this.operator,
     required FormalParameterListImpl? parameters,
     required AnonymousMethodBodyImpl body,
-  }) : _target = target,
+  }) : _target2 = target2,
        _parameters = parameters,
        _body = body {
-    _becomeParentOf12(target);
+    _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
     _becomeParentOf12(parameters);
     _becomeParentOf12(body);
   }
@@ -1102,8 +1132,8 @@
   @generated
   @override
   Token get beginToken {
-    if (target case var target?) {
-      return target.beginToken;
+    if (target2 case var target2?) {
+      return target2.beginToken;
     }
     return operator;
   }
@@ -1162,18 +1192,32 @@
   @override
   ExpressionImpl get realTarget {
     if (isCascaded) {
-      return _ancestorCascade.target;
+      return _ancestorCascade.target2;
     }
-    return _target!;
+    return _target2!;
   }
 
   @generated
+  @ToBeDeprecated('Use target2 instead.')
   @override
-  ExpressionImpl? get target => _target;
+  ExpressionImpl? get target => switch (target2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set target(ExpressionImpl? target) {
-    _target = _becomeParentOf12(target);
+  @experimental
+  @override
+  ExpressionImpl? get target2 => _target2;
+
+  @generated
+  @experimental
+  set target2(ExpressionImpl? target2) {
+    _target2 = _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   /// The cascade that contains this [AnonymousMethodInvocation].
@@ -1199,7 +1243,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('target', target)
+    ..addNode('target2', target2)
     ..addToken('operator', operator)
     ..addNode('parameters', parameters)
     ..addNode('body', body);
@@ -1226,8 +1270,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(target, oldNode)) {
-      target = null;
+    if (identical(target2, oldNode)) {
+      target2 = null;
       return;
     }
     if (identical(parameters, oldNode)) {
@@ -1243,8 +1287,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(target, oldNode)) {
-      target = newNode as ExpressionImpl?;
+    if (identical(target2, oldNode)) {
+      target2 = newNode as ExpressionImpl?;
       return;
     }
     if (identical(parameters, oldNode)) {
@@ -1277,7 +1321,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    target?.accept2(visitor);
+    target2?.accept2(visitor);
     parameters?.accept2(visitor);
     body.accept2(visitor);
   }
@@ -1291,15 +1335,15 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitTarget,
+    void Function(ExpressionImpl)? visitTarget2,
     void Function(FormalParameterListImpl)? visitParameters,
     void Function(AnonymousMethodBodyImpl)? visitBody,
   }) {
-    if (target case var target?) {
-      if (visitTarget != null) {
-        visitTarget(target);
+    if (target2 case var target2?) {
+      if (visitTarget2 != null) {
+        visitTarget2(target2);
       } else {
-        target.accept2(visitor);
+        target2.accept2(visitor);
       }
     }
     if (parameters case var parameters?) {
@@ -1338,9 +1382,9 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (target case var target?) {
-      if (target._containsOffset(rangeOffset, rangeEnd)) {
-        return target;
+    if (target2 case var target2?) {
+      if (target2._containsOffset(rangeOffset, rangeEnd)) {
+        return target2;
       }
     }
     if (parameters case var parameters?) {
@@ -1359,8 +1403,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 sealed class Argument implements AstNode {
   /// The expression that computes the value for this argument.
+  @ToBeDeprecated('Use argumentExpression2 instead.')
   Expression get argumentExpression;
 
+  @experimental
+  Expression get argumentExpression2;
+
   /// The parameter element representing the parameter to which the value of
   /// this argument is bound.
   FormalParameterElement? get correspondingParameter;
@@ -1371,6 +1419,9 @@
   ExpressionImpl get argumentExpression;
 
   @override
+  ExpressionImpl get argumentExpression2;
+
+  @override
   InternalFormalParameterElement? get correspondingParameter {
     var parent = parent2;
     if (parent is ArgumentListImpl) {
@@ -1394,8 +1445,12 @@
   /// Although the language requires that positional arguments appear before
   /// named arguments unless the [Feature.named_arguments_anywhere] is enabled,
   /// this class allows them to be intermixed.
+  @ToBeDeprecated('Use arguments2 instead.')
   NodeList<Argument> get arguments;
 
+  @experimental
+  NodeList<Argument> get arguments2;
+
   /// The left parenthesis.
   Token get leftParenthesis;
 
@@ -1406,7 +1461,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('arguments', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'arguments2',
+      v1Name: 'arguments',
+      v1Projection: V1Projection.argument,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
   ],
 )
@@ -1416,8 +1476,17 @@
   final Token leftParenthesis;
 
   @generated
+  @experimental
   @override
-  final NodeListImpl<ArgumentImpl> arguments = NodeListImpl._();
+  final NodeListImpl<ArgumentImpl> arguments2 = NodeListImpl._();
+
+  @generated
+  @ToBeDeprecated('Use arguments2 instead.')
+  @override
+  late final NodeListImpl<ArgumentImpl> arguments = _V1ProjectedNodeListImpl(
+    arguments2,
+    V1Projection.toV1Argument,
+  );
 
   @generated
   @override
@@ -1436,10 +1505,14 @@
   @generated
   ArgumentListImpl({
     required this.leftParenthesis,
-    required List<ArgumentImpl> arguments,
+    required List<ArgumentImpl> arguments2,
     required this.rightParenthesis,
   }) {
-    this.arguments._initialize(this, arguments);
+    this.arguments2._initializeProjected(
+      this,
+      arguments2,
+      V1Projection.toV1Argument,
+    );
   }
 
   @generated
@@ -1454,9 +1527,9 @@
   set correspondingStaticParameters(
     List<InternalFormalParameterElement?>? parameters,
   ) {
-    if (parameters != null && parameters.length != arguments.length) {
+    if (parameters != null && parameters.length != arguments2.length) {
       throw ArgumentError(
-        "Expected ${arguments.length} parameters, not ${parameters.length}",
+        "Expected ${arguments2.length} parameters, not ${parameters.length}",
       );
     }
     _correspondingStaticParameters = parameters;
@@ -1479,7 +1552,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNodeList('arguments', arguments)
+    ..addNodeList('arguments2', arguments2)
     ..addToken('rightParenthesis', rightParenthesis);
 
   @generated
@@ -1502,9 +1575,9 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (arguments.containsChild(oldNode)) {
+    if (arguments2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'arguments' because NodeList cannot be resized.",
+        "Cannot remove child 'arguments2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -1513,7 +1586,7 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (arguments.replaceChild(oldNode, newNode)) {
+    if (arguments2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -1530,7 +1603,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    arguments.accept2(visitor);
+    arguments2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -1542,12 +1615,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(NodeListImpl<ArgumentImpl>)? visitArguments,
+    void Function(NodeListImpl<ArgumentImpl>)? visitArguments2,
   }) {
-    if (visitArguments != null) {
-      visitArguments(arguments);
+    if (visitArguments2 != null) {
+      visitArguments2(arguments2);
     } else {
-      arguments.accept2(visitor);
+      arguments2.accept2(visitor);
     }
   }
 
@@ -1564,7 +1637,7 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (arguments._elementContainingRange(rangeOffset, rangeEnd)
+    if (arguments2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -1583,13 +1656,13 @@
     Argument argument,
   ) {
     if (_correspondingStaticParameters == null ||
-        _correspondingStaticParameters!.length != arguments.length) {
+        _correspondingStaticParameters!.length != arguments2.length) {
       // Either the AST structure hasn't been resolved, the invocation of which
       // this list is a part couldn't be resolved, or the argument list was
       // modified after the parameters were set.
       return null;
     }
-    int index = arguments.indexOf(argument);
+    int index = arguments2.indexOf(argument);
     if (index < 0) {
       // The argument isn't a child of this node.
       return null;
@@ -1608,22 +1681,31 @@
   Token get asOperator;
 
   /// The expression used to compute the value being cast.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The type being cast to.
   TypeAnnotation get type;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('asOperator'),
     GenerateNodeProperty('type'),
   ],
 )
 final class AsExpressionImpl extends ExpressionImpl implements AsExpression {
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -1634,19 +1716,20 @@
 
   @generated
   AsExpressionImpl({
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.asOperator,
     required TypeAnnotationImpl type,
-  }) : _expression = expression,
+  }) : _expression2 = expression2,
        _type = type {
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
     _becomeParentOf12(type);
   }
 
   @generated
   @override
   Token get beginToken {
-    return expression.beginToken;
+    return expression2.beginToken;
   }
 
   @generated
@@ -1656,12 +1739,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -1686,7 +1777,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('asOperator', asOperator)
     ..addNode('type', type);
 
@@ -1704,14 +1795,14 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (identical(type, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'type'.");
@@ -1722,8 +1813,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(type, oldNode)) {
@@ -1751,7 +1842,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     type.accept2(visitor);
   }
 
@@ -1764,13 +1855,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(TypeAnnotationImpl)? visitType,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (visitType != null) {
       visitType(type);
@@ -1794,8 +1885,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (type._containsOffset(rangeOffset, rangeEnd)) {
       return type;
@@ -1816,9 +1907,19 @@
   childEntitiesOrder: [
     GenerateNodeProperty('assertKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('condition', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'condition2',
+      v1Name: 'condition',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('comma'),
-    GenerateNodeProperty('message', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'message2',
+      v1Name: 'message',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
   ],
 )
@@ -1833,14 +1934,14 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _condition;
+  ExpressionImpl _condition2;
 
   @generated
   @override
   final Token? comma;
 
   @generated
-  ExpressionImpl? _message;
+  ExpressionImpl? _message2;
 
   @generated
   @override
@@ -1850,14 +1951,19 @@
   AssertInitializerImpl({
     required this.assertKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl condition,
+    required ExpressionImpl condition2,
     required this.comma,
-    required ExpressionImpl? message,
+    required ExpressionImpl? message2,
     required this.rightParenthesis,
-  }) : _condition = condition,
-       _message = message {
-    _becomeParentOf12(condition);
-    _becomeParentOf12(message);
+  }) : _condition2 = condition2,
+       _message2 = message2 {
+    _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
+    _becomeParentOf2(message2);
+    _becomeParentOf1(switch (message2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -1867,12 +1973,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use condition2 instead.')
   @override
-  ExpressionImpl get condition => _condition;
+  ExpressionImpl get condition => V1Projection.toV1Expression(condition2);
 
   @generated
-  set condition(ExpressionImpl condition) {
-    _condition = _becomeParentOf12(condition);
+  @experimental
+  @override
+  ExpressionImpl get condition2 => _condition2;
+
+  @generated
+  @experimental
+  set condition2(ExpressionImpl condition2) {
+    _condition2 = _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
   }
 
   @generated
@@ -1882,12 +1996,26 @@
   }
 
   @generated
+  @ToBeDeprecated('Use message2 instead.')
   @override
-  ExpressionImpl? get message => _message;
+  ExpressionImpl? get message => switch (message2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set message(ExpressionImpl? message) {
-    _message = _becomeParentOf12(message);
+  @experimental
+  @override
+  ExpressionImpl? get message2 => _message2;
+
+  @generated
+  @experimental
+  set message2(ExpressionImpl? message2) {
+    _message2 = _becomeParentOf2(message2);
+    _becomeParentOf1(switch (message2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -1905,9 +2033,9 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('assertKeyword', assertKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('condition', condition)
+    ..addNode('condition2', condition2)
     ..addToken('comma', comma)
-    ..addNode('message', message)
+    ..addNode('message2', message2)
     ..addToken('rightParenthesis', rightParenthesis);
 
   @generated
@@ -1930,11 +2058,11 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(condition, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'condition'.");
+    if (identical(condition2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'condition2'.");
     }
-    if (identical(message, oldNode)) {
-      message = null;
+    if (identical(message2, oldNode)) {
+      message2 = null;
       return;
     }
     super.removeChild(oldNode);
@@ -1943,12 +2071,12 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(condition, oldNode)) {
-      condition = newNode as ExpressionImpl;
+    if (identical(condition2, oldNode)) {
+      condition2 = newNode as ExpressionImpl;
       return;
     }
-    if (identical(message, oldNode)) {
-      message = newNode as ExpressionImpl?;
+    if (identical(message2, oldNode)) {
+      message2 = newNode as ExpressionImpl?;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -1966,8 +2094,8 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    condition.accept2(visitor);
-    message?.accept2(visitor);
+    condition2.accept2(visitor);
+    message2?.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -1979,19 +2107,19 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitCondition,
-    void Function(ExpressionImpl)? visitMessage,
+    void Function(ExpressionImpl)? visitCondition2,
+    void Function(ExpressionImpl)? visitMessage2,
   }) {
-    if (visitCondition != null) {
-      visitCondition(condition);
+    if (visitCondition2 != null) {
+      visitCondition2(condition2);
     } else {
-      condition.accept2(visitor);
+      condition2.accept2(visitor);
     }
-    if (message case var message?) {
-      if (visitMessage != null) {
-        visitMessage(message);
+    if (message2 case var message2?) {
+      if (visitMessage2 != null) {
+        visitMessage2(message2);
       } else {
-        message.accept2(visitor);
+        message2.accept2(visitor);
       }
     }
   }
@@ -2013,12 +2141,12 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (condition._containsOffset(rangeOffset, rangeEnd)) {
-      return condition;
+    if (condition2._containsOffset(rangeOffset, rangeEnd)) {
+      return condition2;
     }
-    if (message case var message?) {
-      if (message._containsOffset(rangeOffset, rangeEnd)) {
-        return message;
+    if (message2 case var message2?) {
+      if (message2._containsOffset(rangeOffset, rangeEnd)) {
+        return message2;
       }
     }
     return null;
@@ -2031,20 +2159,28 @@
   /// The token representing the `assert` keyword.
   Token get assertKeyword;
 
-  /// The comma between the [condition] and the [message], or `null` if no
+  /// The comma between the [condition2] and the [message2], or `null` if no
   /// message was supplied.
   Token? get comma;
 
   /// The condition that is being asserted to be `true`.
+  @ToBeDeprecated('Use condition2 instead.')
   Expression get condition;
 
+  @experimental
+  Expression get condition2;
+
   /// The left parenthesis.
   Token get leftParenthesis;
 
   /// The message to report if the assertion fails, or `null` if no message was
   /// supplied.
+  @ToBeDeprecated('Use message2 instead.')
   Expression? get message;
 
+  @experimental
+  Expression? get message2;
+
   /// The right parenthesis.
   Token get rightParenthesis;
 }
@@ -2063,9 +2199,19 @@
   childEntitiesOrder: [
     GenerateNodeProperty('assertKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('condition', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'condition2',
+      v1Name: 'condition',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('comma'),
-    GenerateNodeProperty('message', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'message2',
+      v1Name: 'message',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
     GenerateNodeProperty('semicolon'),
   ],
@@ -2081,14 +2227,14 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _condition;
+  ExpressionImpl _condition2;
 
   @generated
   @override
   final Token? comma;
 
   @generated
-  ExpressionImpl? _message;
+  ExpressionImpl? _message2;
 
   @generated
   @override
@@ -2102,15 +2248,20 @@
   AssertStatementImpl({
     required this.assertKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl condition,
+    required ExpressionImpl condition2,
     required this.comma,
-    required ExpressionImpl? message,
+    required ExpressionImpl? message2,
     required this.rightParenthesis,
     required this.semicolon,
-  }) : _condition = condition,
-       _message = message {
-    _becomeParentOf12(condition);
-    _becomeParentOf12(message);
+  }) : _condition2 = condition2,
+       _message2 = message2 {
+    _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
+    _becomeParentOf2(message2);
+    _becomeParentOf1(switch (message2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -2120,12 +2271,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use condition2 instead.')
   @override
-  ExpressionImpl get condition => _condition;
+  ExpressionImpl get condition => V1Projection.toV1Expression(condition2);
 
   @generated
-  set condition(ExpressionImpl condition) {
-    _condition = _becomeParentOf12(condition);
+  @experimental
+  @override
+  ExpressionImpl get condition2 => _condition2;
+
+  @generated
+  @experimental
+  set condition2(ExpressionImpl condition2) {
+    _condition2 = _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
   }
 
   @generated
@@ -2135,12 +2294,26 @@
   }
 
   @generated
+  @ToBeDeprecated('Use message2 instead.')
   @override
-  ExpressionImpl? get message => _message;
+  ExpressionImpl? get message => switch (message2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set message(ExpressionImpl? message) {
-    _message = _becomeParentOf12(message);
+  @experimental
+  @override
+  ExpressionImpl? get message2 => _message2;
+
+  @generated
+  @experimental
+  set message2(ExpressionImpl? message2) {
+    _message2 = _becomeParentOf2(message2);
+    _becomeParentOf1(switch (message2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -2159,9 +2332,9 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('assertKeyword', assertKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('condition', condition)
+    ..addNode('condition2', condition2)
     ..addToken('comma', comma)
-    ..addNode('message', message)
+    ..addNode('message2', message2)
     ..addToken('rightParenthesis', rightParenthesis)
     ..addToken('semicolon', semicolon);
 
@@ -2185,11 +2358,11 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(condition, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'condition'.");
+    if (identical(condition2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'condition2'.");
     }
-    if (identical(message, oldNode)) {
-      message = null;
+    if (identical(message2, oldNode)) {
+      message2 = null;
       return;
     }
     super.removeChild(oldNode);
@@ -2198,12 +2371,12 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(condition, oldNode)) {
-      condition = newNode as ExpressionImpl;
+    if (identical(condition2, oldNode)) {
+      condition2 = newNode as ExpressionImpl;
       return;
     }
-    if (identical(message, oldNode)) {
-      message = newNode as ExpressionImpl?;
+    if (identical(message2, oldNode)) {
+      message2 = newNode as ExpressionImpl?;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -2221,8 +2394,8 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    condition.accept2(visitor);
-    message?.accept2(visitor);
+    condition2.accept2(visitor);
+    message2?.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -2234,19 +2407,19 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitCondition,
-    void Function(ExpressionImpl)? visitMessage,
+    void Function(ExpressionImpl)? visitCondition2,
+    void Function(ExpressionImpl)? visitMessage2,
   }) {
-    if (visitCondition != null) {
-      visitCondition(condition);
+    if (visitCondition2 != null) {
+      visitCondition2(condition2);
     } else {
-      condition.accept2(visitor);
+      condition2.accept2(visitor);
     }
-    if (message case var message?) {
-      if (visitMessage != null) {
-        visitMessage(message);
+    if (message2 case var message2?) {
+      if (visitMessage2 != null) {
+        visitMessage2(message2);
       } else {
-        message.accept2(visitor);
+        message2.accept2(visitor);
       }
     }
   }
@@ -2268,12 +2441,12 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (condition._containsOffset(rangeOffset, rangeEnd)) {
-      return condition;
+    if (condition2._containsOffset(rangeOffset, rangeEnd)) {
+      return condition2;
     }
-    if (message case var message?) {
-      if (message._containsOffset(rangeOffset, rangeEnd)) {
-        return message;
+    if (message2 case var message2?) {
+      if (message2._containsOffset(rangeOffset, rangeEnd)) {
+        return message2;
       }
     }
     return null;
@@ -2406,80 +2579,116 @@
 abstract final class AssignmentExpression
     implements MethodReferenceExpression, CompoundAssignmentExpression {
   /// The expression used to compute the left hand side.
+  @ToBeDeprecated('Use leftHandSide2 instead.')
   Expression get leftHandSide;
 
+  @experimental
+  Expression get leftHandSide2;
+
   /// The assignment operator being applied.
   Token get operator;
 
   /// The expression used to compute the right-hand side.
+  @ToBeDeprecated('Use rightHandSide2 instead.')
   Expression get rightHandSide;
+
+  @experimental
+  Expression get rightHandSide2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('leftHandSide'),
+    GenerateNodeProperty(
+      'leftHandSide2',
+      v1Name: 'leftHandSide',
+      v1Projection: V1Projection.expression,
+    ),
     GenerateNodeProperty('operator'),
-    GenerateNodeProperty('rightHandSide', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'rightHandSide2',
+      v1Name: 'rightHandSide',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class AssignmentExpressionImpl extends ExpressionImpl
     with CompoundAssignmentExpressionImpl
     implements AssignmentExpression {
   @generated
-  ExpressionImpl _leftHandSide;
+  ExpressionImpl _leftHandSide2;
 
   @generated
   @override
   final Token operator;
 
   @generated
-  ExpressionImpl _rightHandSide;
+  ExpressionImpl _rightHandSide2;
 
   @override
   InternalMethodElement? element;
 
   @generated
   AssignmentExpressionImpl({
-    required ExpressionImpl leftHandSide,
+    required ExpressionImpl leftHandSide2,
     required this.operator,
-    required ExpressionImpl rightHandSide,
-  }) : _leftHandSide = leftHandSide,
-       _rightHandSide = rightHandSide {
-    _becomeParentOf12(leftHandSide);
-    _becomeParentOf12(rightHandSide);
+    required ExpressionImpl rightHandSide2,
+  }) : _leftHandSide2 = leftHandSide2,
+       _rightHandSide2 = rightHandSide2 {
+    _becomeParentOf2(leftHandSide2);
+    _becomeParentOf1(V1Projection.toV1Expression(leftHandSide2));
+    _becomeParentOf2(rightHandSide2);
+    _becomeParentOf1(V1Projection.toV1Expression(rightHandSide2));
   }
 
   @generated
   @override
   Token get beginToken {
-    return leftHandSide.beginToken;
+    return leftHandSide2.beginToken;
   }
 
   @generated
   @override
   Token get endToken {
-    return rightHandSide.endToken;
+    return rightHandSide2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use leftHandSide2 instead.')
   @override
-  ExpressionImpl get leftHandSide => _leftHandSide;
+  ExpressionImpl get leftHandSide => V1Projection.toV1Expression(leftHandSide2);
 
   @generated
-  set leftHandSide(ExpressionImpl leftHandSide) {
-    _leftHandSide = _becomeParentOf12(leftHandSide);
+  @experimental
+  @override
+  ExpressionImpl get leftHandSide2 => _leftHandSide2;
+
+  @generated
+  @experimental
+  set leftHandSide2(ExpressionImpl leftHandSide2) {
+    _leftHandSide2 = _becomeParentOf2(leftHandSide2);
+    _becomeParentOf1(V1Projection.toV1Expression(leftHandSide2));
   }
 
   @override
   Precedence get precedence => Precedence.assignment;
 
   @generated
+  @ToBeDeprecated('Use rightHandSide2 instead.')
   @override
-  ExpressionImpl get rightHandSide => _rightHandSide;
+  ExpressionImpl get rightHandSide =>
+      V1Projection.toV1Expression(rightHandSide2);
 
   @generated
-  set rightHandSide(ExpressionImpl rightHandSide) {
-    _rightHandSide = _becomeParentOf12(rightHandSide);
+  @experimental
+  @override
+  ExpressionImpl get rightHandSide2 => _rightHandSide2;
+
+  @generated
+  @experimental
+  set rightHandSide2(ExpressionImpl rightHandSide2) {
+    _rightHandSide2 = _becomeParentOf2(rightHandSide2);
+    _becomeParentOf1(V1Projection.toV1Expression(rightHandSide2));
   }
 
   @generated
@@ -2492,9 +2701,9 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('leftHandSide', leftHandSide)
+    ..addNode('leftHandSide2', leftHandSide2)
     ..addToken('operator', operator)
-    ..addNode('rightHandSide', rightHandSide);
+    ..addNode('rightHandSide2', rightHandSide2);
 
   /// The parameter element representing the parameter to which the value of the
   /// right operand is bound, or `null` if the AST structure is not resolved or
@@ -2512,7 +2721,7 @@
       if (formalParameters.isEmpty) {
         return null;
       }
-      if (operator.type == TokenType.EQ && leftHandSide is IndexExpression) {
+      if (operator.type == TokenType.EQ && leftHandSide2 is IndexExpression) {
         return formalParameters.length == 2
             ? (formalParameters[1] as InternalFormalParameterElement)
             : null;
@@ -2539,17 +2748,17 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(rightHandSide, child);
+    return identical(rightHandSide2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(leftHandSide, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'leftHandSide'.");
+    if (identical(leftHandSide2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'leftHandSide2'.");
     }
-    if (identical(rightHandSide, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'rightHandSide'.");
+    if (identical(rightHandSide2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'rightHandSide2'.");
     }
     super.removeChild(oldNode);
   }
@@ -2557,12 +2766,12 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(leftHandSide, oldNode)) {
-      leftHandSide = newNode as ExpressionImpl;
+    if (identical(leftHandSide2, oldNode)) {
+      leftHandSide2 = newNode as ExpressionImpl;
       return;
     }
-    if (identical(rightHandSide, oldNode)) {
-      rightHandSide = newNode as ExpressionImpl;
+    if (identical(rightHandSide2, oldNode)) {
+      rightHandSide2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -2586,8 +2795,8 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    leftHandSide.accept2(visitor);
-    rightHandSide.accept2(visitor);
+    leftHandSide2.accept2(visitor);
+    rightHandSide2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -2599,18 +2808,18 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitLeftHandSide,
-    void Function(ExpressionImpl)? visitRightHandSide,
+    void Function(ExpressionImpl)? visitLeftHandSide2,
+    void Function(ExpressionImpl)? visitRightHandSide2,
   }) {
-    if (visitLeftHandSide != null) {
-      visitLeftHandSide(leftHandSide);
+    if (visitLeftHandSide2 != null) {
+      visitLeftHandSide2(leftHandSide2);
     } else {
-      leftHandSide.accept2(visitor);
+      leftHandSide2.accept2(visitor);
     }
-    if (visitRightHandSide != null) {
-      visitRightHandSide(rightHandSide);
+    if (visitRightHandSide2 != null) {
+      visitRightHandSide2(rightHandSide2);
     } else {
-      rightHandSide.accept2(visitor);
+      rightHandSide2.accept2(visitor);
     }
   }
 
@@ -2629,11 +2838,11 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (leftHandSide._containsOffset(rangeOffset, rangeEnd)) {
-      return leftHandSide;
+    if (leftHandSide2._containsOffset(rangeOffset, rangeEnd)) {
+      return leftHandSide2;
     }
-    if (rightHandSide._containsOffset(rangeOffset, rangeEnd)) {
-      return rightHandSide;
+    if (rightHandSide2._containsOffset(rangeOffset, rangeEnd)) {
+      return rightHandSide2;
     }
     return null;
   }
@@ -3168,13 +3377,22 @@
   Token get awaitKeyword;
 
   /// The expression whose value is being waited on.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
+
+  @experimental
+  Expression get expression2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('awaitKeyword'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class AwaitExpressionImpl extends ExpressionImpl
@@ -3184,14 +3402,15 @@
   final Token awaitKeyword;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   AwaitExpressionImpl({
     required this.awaitKeyword,
-    required ExpressionImpl expression,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+    required ExpressionImpl expression2,
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -3203,16 +3422,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -3228,7 +3455,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('awaitKeyword', awaitKeyword)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -3250,8 +3477,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -3259,8 +3486,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -3283,7 +3510,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -3295,12 +3522,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -3316,8 +3543,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -3331,14 +3558,22 @@
 abstract final class BinaryExpression
     implements Expression, MethodReferenceExpression {
   /// The expression used to compute the left operand.
+  @ToBeDeprecated('Use leftOperand2 instead.')
   Expression get leftOperand;
 
+  @experimental
+  Expression get leftOperand2;
+
   /// The binary operator being applied.
   Token get operator;
 
   /// The expression used to compute the right operand.
+  @ToBeDeprecated('Use rightOperand2 instead.')
   Expression get rightOperand;
 
+  @experimental
+  Expression get rightOperand2;
+
   /// The function type of the invocation, or `null` if the AST structure hasn't
   /// been resolved or if the invocation couldn't be resolved.
   FunctionType? get staticInvokeType;
@@ -3346,22 +3581,32 @@
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('leftOperand', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'leftOperand2',
+      v1Name: 'leftOperand',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('operator'),
-    GenerateNodeProperty('rightOperand', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'rightOperand2',
+      v1Name: 'rightOperand',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class BinaryExpressionImpl extends ExpressionImpl
     implements BinaryExpression {
   @generated
-  ExpressionImpl _leftOperand;
+  ExpressionImpl _leftOperand2;
 
   @generated
   @override
   final Token operator;
 
   @generated
-  ExpressionImpl _rightOperand;
+  ExpressionImpl _rightOperand2;
 
   @override
   MethodElement? element;
@@ -3371,46 +3616,64 @@
 
   @generated
   BinaryExpressionImpl({
-    required ExpressionImpl leftOperand,
+    required ExpressionImpl leftOperand2,
     required this.operator,
-    required ExpressionImpl rightOperand,
-  }) : _leftOperand = leftOperand,
-       _rightOperand = rightOperand {
-    _becomeParentOf12(leftOperand);
-    _becomeParentOf12(rightOperand);
+    required ExpressionImpl rightOperand2,
+  }) : _leftOperand2 = leftOperand2,
+       _rightOperand2 = rightOperand2 {
+    _becomeParentOf2(leftOperand2);
+    _becomeParentOf1(V1Projection.toV1Expression(leftOperand2));
+    _becomeParentOf2(rightOperand2);
+    _becomeParentOf1(V1Projection.toV1Expression(rightOperand2));
   }
 
   @generated
   @override
   Token get beginToken {
-    return leftOperand.beginToken;
+    return leftOperand2.beginToken;
   }
 
   @generated
   @override
   Token get endToken {
-    return rightOperand.endToken;
+    return rightOperand2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use leftOperand2 instead.')
   @override
-  ExpressionImpl get leftOperand => _leftOperand;
+  ExpressionImpl get leftOperand => V1Projection.toV1Expression(leftOperand2);
 
   @generated
-  set leftOperand(ExpressionImpl leftOperand) {
-    _leftOperand = _becomeParentOf12(leftOperand);
+  @experimental
+  @override
+  ExpressionImpl get leftOperand2 => _leftOperand2;
+
+  @generated
+  @experimental
+  set leftOperand2(ExpressionImpl leftOperand2) {
+    _leftOperand2 = _becomeParentOf2(leftOperand2);
+    _becomeParentOf1(V1Projection.toV1Expression(leftOperand2));
   }
 
   @override
   Precedence get precedence => Precedence.forTokenType(operator.type);
 
   @generated
+  @ToBeDeprecated('Use rightOperand2 instead.')
   @override
-  ExpressionImpl get rightOperand => _rightOperand;
+  ExpressionImpl get rightOperand => V1Projection.toV1Expression(rightOperand2);
 
   @generated
-  set rightOperand(ExpressionImpl rightOperand) {
-    _rightOperand = _becomeParentOf12(rightOperand);
+  @experimental
+  @override
+  ExpressionImpl get rightOperand2 => _rightOperand2;
+
+  @generated
+  @experimental
+  set rightOperand2(ExpressionImpl rightOperand2) {
+    _rightOperand2 = _becomeParentOf2(rightOperand2);
+    _becomeParentOf1(V1Projection.toV1Expression(rightOperand2));
   }
 
   @generated
@@ -3423,9 +3686,9 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('leftOperand', leftOperand)
+    ..addNode('leftOperand2', leftOperand2)
     ..addToken('operator', operator)
-    ..addNode('rightOperand', rightOperand);
+    ..addNode('rightOperand2', rightOperand2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -3447,11 +3710,11 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(leftOperand, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'leftOperand'.");
+    if (identical(leftOperand2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'leftOperand2'.");
     }
-    if (identical(rightOperand, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'rightOperand'.");
+    if (identical(rightOperand2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'rightOperand2'.");
     }
     super.removeChild(oldNode);
   }
@@ -3459,12 +3722,12 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(leftOperand, oldNode)) {
-      leftOperand = newNode as ExpressionImpl;
+    if (identical(leftOperand2, oldNode)) {
+      leftOperand2 = newNode as ExpressionImpl;
       return;
     }
-    if (identical(rightOperand, oldNode)) {
-      rightOperand = newNode as ExpressionImpl;
+    if (identical(rightOperand2, oldNode)) {
+      rightOperand2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -3488,8 +3751,8 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    leftOperand.accept2(visitor);
-    rightOperand.accept2(visitor);
+    leftOperand2.accept2(visitor);
+    rightOperand2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -3501,18 +3764,18 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitLeftOperand,
-    void Function(ExpressionImpl)? visitRightOperand,
+    void Function(ExpressionImpl)? visitLeftOperand2,
+    void Function(ExpressionImpl)? visitRightOperand2,
   }) {
-    if (visitLeftOperand != null) {
-      visitLeftOperand(leftOperand);
+    if (visitLeftOperand2 != null) {
+      visitLeftOperand2(leftOperand2);
     } else {
-      leftOperand.accept2(visitor);
+      leftOperand2.accept2(visitor);
     }
-    if (visitRightOperand != null) {
-      visitRightOperand(rightOperand);
+    if (visitRightOperand2 != null) {
+      visitRightOperand2(rightOperand2);
     } else {
-      rightOperand.accept2(visitor);
+      rightOperand2.accept2(visitor);
     }
   }
 
@@ -3531,11 +3794,11 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (leftOperand._containsOffset(rangeOffset, rangeEnd)) {
-      return leftOperand;
+    if (leftOperand2._containsOffset(rangeOffset, rangeEnd)) {
+      return leftOperand2;
     }
-    if (rightOperand._containsOffset(rangeOffset, rangeEnd)) {
-      return rightOperand;
+    if (rightOperand2._containsOffset(rangeOffset, rangeEnd)) {
+      return rightOperand2;
     }
     return null;
   }
@@ -4553,69 +4816,106 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class CascadeExpression implements Expression {
   /// The cascade sections sharing the common target.
+  @ToBeDeprecated('Use cascadeSections2 instead.')
   NodeList<Expression> get cascadeSections;
 
+  @experimental
+  NodeList<Expression> get cascadeSections2;
+
   /// Whether this cascade is null aware (as opposed to non-null).
   bool get isNullAware;
 
   /// The target of the cascade sections.
+  @ToBeDeprecated('Use target2 instead.')
   Expression get target;
+
+  @experimental
+  Expression get target2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('target', isInValueExpressionSlot: true),
-    GenerateNodeProperty('cascadeSections'),
+    GenerateNodeProperty(
+      'target2',
+      v1Name: 'target',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
+    GenerateNodeProperty(
+      'cascadeSections2',
+      v1Name: 'cascadeSections',
+      v1Projection: V1Projection.expression,
+    ),
   ],
 )
 final class CascadeExpressionImpl extends ExpressionImpl
     implements CascadeExpression {
   @generated
-  ExpressionImpl _target;
+  ExpressionImpl _target2;
 
   @generated
+  @experimental
   @override
-  final NodeListImpl<ExpressionImpl> cascadeSections = NodeListImpl._();
+  final NodeListImpl<ExpressionImpl> cascadeSections2 = NodeListImpl._();
+
+  @generated
+  @ToBeDeprecated('Use cascadeSections2 instead.')
+  @override
+  late final NodeListImpl<ExpressionImpl> cascadeSections =
+      _V1ProjectedNodeListImpl(cascadeSections2, V1Projection.toV1Expression);
 
   @generated
   CascadeExpressionImpl({
-    required ExpressionImpl target,
-    required List<ExpressionImpl> cascadeSections,
-  }) : _target = target {
-    _becomeParentOf12(target);
-    this.cascadeSections._initialize(this, cascadeSections);
+    required ExpressionImpl target2,
+    required List<ExpressionImpl> cascadeSections2,
+  }) : _target2 = target2 {
+    _becomeParentOf2(target2);
+    _becomeParentOf1(V1Projection.toV1Expression(target2));
+    this.cascadeSections2._initializeProjected(
+      this,
+      cascadeSections2,
+      V1Projection.toV1Expression,
+    );
   }
 
   @generated
   @override
   Token get beginToken {
-    return target.beginToken;
+    return target2.beginToken;
   }
 
   @generated
   @override
   Token get endToken {
-    if (cascadeSections.endToken case var result?) {
+    if (cascadeSections2.endToken case var result?) {
       return result;
     }
-    return target.endToken;
+    return target2.endToken;
   }
 
   @override
   bool get isNullAware {
-    return target.endToken.next!.type == TokenType.QUESTION_PERIOD_PERIOD;
+    return target2.endToken.next!.type == TokenType.QUESTION_PERIOD_PERIOD;
   }
 
   @override
   Precedence get precedence => Precedence.cascade;
 
   @generated
+  @ToBeDeprecated('Use target2 instead.')
   @override
-  ExpressionImpl get target => _target;
+  ExpressionImpl get target => V1Projection.toV1Expression(target2);
 
   @generated
-  set target(ExpressionImpl target) {
-    _target = _becomeParentOf12(target);
+  @experimental
+  @override
+  ExpressionImpl get target2 => _target2;
+
+  @generated
+  @experimental
+  set target2(ExpressionImpl target2) {
+    _target2 = _becomeParentOf2(target2);
+    _becomeParentOf1(V1Projection.toV1Expression(target2));
   }
 
   @generated
@@ -4627,8 +4927,8 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('target', target)
-    ..addNodeList('cascadeSections', cascadeSections);
+    ..addNode('target2', target2)
+    ..addNodeList('cascadeSections2', cascadeSections2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -4644,18 +4944,18 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(target, child);
+    return identical(target2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(target, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'target'.");
+    if (identical(target2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'target2'.");
     }
-    if (cascadeSections.containsChild(oldNode)) {
+    if (cascadeSections2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'cascadeSections' because NodeList cannot be resized.",
+        "Cannot remove child 'cascadeSections2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -4664,11 +4964,11 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(target, oldNode)) {
-      target = newNode as ExpressionImpl;
+    if (identical(target2, oldNode)) {
+      target2 = newNode as ExpressionImpl;
       return;
     }
-    if (cascadeSections.replaceChild(oldNode, newNode)) {
+    if (cascadeSections2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -4692,8 +4992,8 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    target.accept2(visitor);
-    cascadeSections.accept2(visitor);
+    target2.accept2(visitor);
+    cascadeSections2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -4705,18 +5005,18 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitTarget,
-    void Function(NodeListImpl<ExpressionImpl>)? visitCascadeSections,
+    void Function(ExpressionImpl)? visitTarget2,
+    void Function(NodeListImpl<ExpressionImpl>)? visitCascadeSections2,
   }) {
-    if (visitTarget != null) {
-      visitTarget(target);
+    if (visitTarget2 != null) {
+      visitTarget2(target2);
     } else {
-      target.accept2(visitor);
+      target2.accept2(visitor);
     }
-    if (visitCascadeSections != null) {
-      visitCascadeSections(cascadeSections);
+    if (visitCascadeSections2 != null) {
+      visitCascadeSections2(cascadeSections2);
     } else {
-      cascadeSections.accept2(visitor);
+      cascadeSections2.accept2(visitor);
     }
   }
 
@@ -4736,10 +5036,10 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (target._containsOffset(rangeOffset, rangeEnd)) {
-      return target;
+    if (target2._containsOffset(rangeOffset, rangeEnd)) {
+      return target2;
     }
-    if (cascadeSections._elementContainingRange(rangeOffset, rangeEnd)
+    if (cascadeSections2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -6874,8 +7174,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class CommentReference implements AstNode {
   /// The comment-referable expression being referenced.
+  @ToBeDeprecated('Use expression2 instead.')
   CommentReferableExpression get expression;
 
+  @experimental
+  CommentReferableExpression get expression2;
+
   /// The token representing the `new` keyword, or `null` if there was no `new`
   /// keyword.
   Token? get newKeyword;
@@ -6884,7 +7188,11 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('newKeyword'),
-    GenerateNodeProperty('expression'),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.commentReferableExpression,
+    ),
     GenerateNodeProperty('isSynthetic'),
   ],
 )
@@ -6895,7 +7203,7 @@
   final Token? newKeyword;
 
   @generated
-  CommentReferableExpressionImpl _expression;
+  CommentReferableExpressionImpl _expression2;
 
   @generated
   @override
@@ -6904,10 +7212,11 @@
   @generated
   CommentReferenceImpl({
     required this.newKeyword,
-    required CommentReferableExpressionImpl expression,
+    required CommentReferableExpressionImpl expression2,
     required this.isSynthetic,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1CommentReferableExpression(expression2));
   }
 
   @generated
@@ -6916,22 +7225,31 @@
     if (newKeyword case var newKeyword?) {
       return newKeyword;
     }
-    return expression.beginToken;
+    return expression2.beginToken;
   }
 
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  CommentReferableExpressionImpl get expression => _expression;
+  CommentReferableExpressionImpl get expression =>
+      V1Projection.toV1CommentReferableExpression(expression2);
 
   @generated
-  set expression(CommentReferableExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  CommentReferableExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(CommentReferableExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1CommentReferableExpression(expression2));
   }
 
   @generated
@@ -6944,7 +7262,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('newKeyword', newKeyword)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -6966,8 +7284,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -6975,8 +7293,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as CommentReferableExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as CommentReferableExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -6993,7 +7311,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -7005,12 +7323,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(CommentReferableExpressionImpl)? visitExpression,
+    void Function(CommentReferableExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -7026,8 +7344,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -7473,101 +7791,157 @@
   Token get colon;
 
   /// The condition used to determine which of the expressions is executed next.
+  @ToBeDeprecated('Use condition2 instead.')
   Expression get condition;
 
+  @experimental
+  Expression get condition2;
+
   /// The expression that is executed if the condition evaluates to `false`.
+  @ToBeDeprecated('Use elseExpression2 instead.')
   Expression get elseExpression;
 
+  @experimental
+  Expression get elseExpression2;
+
   /// The token used to separate the condition from the then expression.
   Token get question;
 
   /// The expression that is executed if the condition evaluates to `true`.
+  @ToBeDeprecated('Use thenExpression2 instead.')
   Expression get thenExpression;
+
+  @experimental
+  Expression get thenExpression2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('condition', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'condition2',
+      v1Name: 'condition',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('question'),
-    GenerateNodeProperty('thenExpression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'thenExpression2',
+      v1Name: 'thenExpression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('colon'),
-    GenerateNodeProperty('elseExpression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'elseExpression2',
+      v1Name: 'elseExpression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class ConditionalExpressionImpl extends ExpressionImpl
     implements ConditionalExpression {
   @generated
-  ExpressionImpl _condition;
+  ExpressionImpl _condition2;
 
   @generated
   @override
   final Token question;
 
   @generated
-  ExpressionImpl _thenExpression;
+  ExpressionImpl _thenExpression2;
 
   @generated
   @override
   final Token colon;
 
   @generated
-  ExpressionImpl _elseExpression;
+  ExpressionImpl _elseExpression2;
 
   @generated
   ConditionalExpressionImpl({
-    required ExpressionImpl condition,
+    required ExpressionImpl condition2,
     required this.question,
-    required ExpressionImpl thenExpression,
+    required ExpressionImpl thenExpression2,
     required this.colon,
-    required ExpressionImpl elseExpression,
-  }) : _condition = condition,
-       _thenExpression = thenExpression,
-       _elseExpression = elseExpression {
-    _becomeParentOf12(condition);
-    _becomeParentOf12(thenExpression);
-    _becomeParentOf12(elseExpression);
+    required ExpressionImpl elseExpression2,
+  }) : _condition2 = condition2,
+       _thenExpression2 = thenExpression2,
+       _elseExpression2 = elseExpression2 {
+    _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
+    _becomeParentOf2(thenExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(thenExpression2));
+    _becomeParentOf2(elseExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(elseExpression2));
   }
 
   @generated
   @override
   Token get beginToken {
-    return condition.beginToken;
+    return condition2.beginToken;
   }
 
   @generated
+  @ToBeDeprecated('Use condition2 instead.')
   @override
-  ExpressionImpl get condition => _condition;
+  ExpressionImpl get condition => V1Projection.toV1Expression(condition2);
 
   @generated
-  set condition(ExpressionImpl condition) {
-    _condition = _becomeParentOf12(condition);
+  @experimental
+  @override
+  ExpressionImpl get condition2 => _condition2;
+
+  @generated
+  @experimental
+  set condition2(ExpressionImpl condition2) {
+    _condition2 = _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
   }
 
   @generated
+  @ToBeDeprecated('Use elseExpression2 instead.')
   @override
-  ExpressionImpl get elseExpression => _elseExpression;
+  ExpressionImpl get elseExpression =>
+      V1Projection.toV1Expression(elseExpression2);
 
   @generated
-  set elseExpression(ExpressionImpl elseExpression) {
-    _elseExpression = _becomeParentOf12(elseExpression);
+  @experimental
+  @override
+  ExpressionImpl get elseExpression2 => _elseExpression2;
+
+  @generated
+  @experimental
+  set elseExpression2(ExpressionImpl elseExpression2) {
+    _elseExpression2 = _becomeParentOf2(elseExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(elseExpression2));
   }
 
   @generated
   @override
   Token get endToken {
-    return elseExpression.endToken;
+    return elseExpression2.endToken;
   }
 
   @override
   Precedence get precedence => Precedence.conditional;
 
   @generated
+  @ToBeDeprecated('Use thenExpression2 instead.')
   @override
-  ExpressionImpl get thenExpression => _thenExpression;
+  ExpressionImpl get thenExpression =>
+      V1Projection.toV1Expression(thenExpression2);
 
   @generated
-  set thenExpression(ExpressionImpl thenExpression) {
-    _thenExpression = _becomeParentOf12(thenExpression);
+  @experimental
+  @override
+  ExpressionImpl get thenExpression2 => _thenExpression2;
+
+  @generated
+  @experimental
+  set thenExpression2(ExpressionImpl thenExpression2) {
+    _thenExpression2 = _becomeParentOf2(thenExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(thenExpression2));
   }
 
   @generated
@@ -7582,11 +7956,11 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('condition', condition)
+    ..addNode('condition2', condition2)
     ..addToken('question', question)
-    ..addNode('thenExpression', thenExpression)
+    ..addNode('thenExpression2', thenExpression2)
     ..addToken('colon', colon)
-    ..addNode('elseExpression', elseExpression);
+    ..addNode('elseExpression2', elseExpression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -7610,14 +7984,14 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(condition, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'condition'.");
+    if (identical(condition2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'condition2'.");
     }
-    if (identical(thenExpression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'thenExpression'.");
+    if (identical(thenExpression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'thenExpression2'.");
     }
-    if (identical(elseExpression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'elseExpression'.");
+    if (identical(elseExpression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'elseExpression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -7625,16 +7999,16 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(condition, oldNode)) {
-      condition = newNode as ExpressionImpl;
+    if (identical(condition2, oldNode)) {
+      condition2 = newNode as ExpressionImpl;
       return;
     }
-    if (identical(thenExpression, oldNode)) {
-      thenExpression = newNode as ExpressionImpl;
+    if (identical(thenExpression2, oldNode)) {
+      thenExpression2 = newNode as ExpressionImpl;
       return;
     }
-    if (identical(elseExpression, oldNode)) {
-      elseExpression = newNode as ExpressionImpl;
+    if (identical(elseExpression2, oldNode)) {
+      elseExpression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -7659,9 +8033,9 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    condition.accept2(visitor);
-    thenExpression.accept2(visitor);
-    elseExpression.accept2(visitor);
+    condition2.accept2(visitor);
+    thenExpression2.accept2(visitor);
+    elseExpression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -7673,24 +8047,24 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitCondition,
-    void Function(ExpressionImpl)? visitThenExpression,
-    void Function(ExpressionImpl)? visitElseExpression,
+    void Function(ExpressionImpl)? visitCondition2,
+    void Function(ExpressionImpl)? visitThenExpression2,
+    void Function(ExpressionImpl)? visitElseExpression2,
   }) {
-    if (visitCondition != null) {
-      visitCondition(condition);
+    if (visitCondition2 != null) {
+      visitCondition2(condition2);
     } else {
-      condition.accept2(visitor);
+      condition2.accept2(visitor);
     }
-    if (visitThenExpression != null) {
-      visitThenExpression(thenExpression);
+    if (visitThenExpression2 != null) {
+      visitThenExpression2(thenExpression2);
     } else {
-      thenExpression.accept2(visitor);
+      thenExpression2.accept2(visitor);
     }
-    if (visitElseExpression != null) {
-      visitElseExpression(elseExpression);
+    if (visitElseExpression2 != null) {
+      visitElseExpression2(elseExpression2);
     } else {
-      elseExpression.accept2(visitor);
+      elseExpression2.accept2(visitor);
     }
   }
 
@@ -7712,14 +8086,14 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (condition._containsOffset(rangeOffset, rangeEnd)) {
-      return condition;
+    if (condition2._containsOffset(rangeOffset, rangeEnd)) {
+      return condition2;
     }
-    if (thenExpression._containsOffset(rangeOffset, rangeEnd)) {
-      return thenExpression;
+    if (thenExpression2._containsOffset(rangeOffset, rangeEnd)) {
+      return thenExpression2;
     }
-    if (elseExpression._containsOffset(rangeOffset, rangeEnd)) {
-      return elseExpression;
+    if (elseExpression2._containsOffset(rangeOffset, rangeEnd)) {
+      return elseExpression2;
     }
     return null;
   }
@@ -8060,13 +8434,22 @@
   Token? get constKeyword;
 
   /// The constant expression being used as a pattern.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
+
+  @experimental
+  Expression get expression2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('constKeyword'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class ConstantPatternImpl extends DartPatternImpl
@@ -8076,14 +8459,15 @@
   final Token? constKeyword;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   ConstantPatternImpl({
     required this.constKeyword,
-    required ExpressionImpl expression,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+    required ExpressionImpl expression2,
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -8092,22 +8476,30 @@
     if (constKeyword case var constKeyword?) {
       return constKeyword;
     }
-    return expression.beginToken;
+    return expression2.beginToken;
   }
 
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -8123,7 +8515,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('constKeyword', constKeyword)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -8152,8 +8544,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -8161,8 +8553,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -8177,9 +8569,9 @@
     var analysisResult = resolverVisitor.analyzeConstantPattern(
       context,
       this,
-      expression,
+      expression2,
     );
-    expression = resolverVisitor.popRewrite()!;
+    expression2 = resolverVisitor.popRewrite()!;
     inferenceLogWriter?.exitPattern(this);
     return analysisResult;
   }
@@ -8195,7 +8587,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -8207,12 +8599,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -8228,8 +8620,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -8773,8 +9165,12 @@
   Token get equals;
 
   /// The expression computing the value to which the field is initialized.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The name of the field being initialized.
   SimpleIdentifier get fieldName;
 
@@ -8792,7 +9188,12 @@
     GenerateNodeProperty('period'),
     GenerateNodeProperty('fieldName'),
     GenerateNodeProperty('equals'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class ConstructorFieldInitializerImpl extends ConstructorInitializerImpl
@@ -8813,7 +9214,7 @@
   final Token equals;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   ConstructorFieldInitializerImpl({
@@ -8821,11 +9222,12 @@
     required this.period,
     required SimpleIdentifierImpl fieldName,
     required this.equals,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
   }) : _fieldName = fieldName,
-       _expression = expression {
+       _expression2 = expression2 {
     _becomeParentOf12(fieldName);
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -8843,16 +9245,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -8880,7 +9290,7 @@
     ..addToken('period', period)
     ..addNode('fieldName', fieldName)
     ..addToken('equals', equals)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -8898,7 +9308,7 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
@@ -8907,8 +9317,8 @@
     if (identical(fieldName, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'fieldName'.");
     }
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -8920,8 +9330,8 @@
       fieldName = newNode as SimpleIdentifierImpl;
       return;
     }
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -8940,7 +9350,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     fieldName.accept2(visitor);
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -8953,17 +9363,17 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(SimpleIdentifierImpl)? visitFieldName,
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
     if (visitFieldName != null) {
       visitFieldName(fieldName);
     } else {
       fieldName.accept2(visitor);
     }
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -8985,8 +9395,8 @@
     if (fieldName._containsOffset(rangeOffset, rangeEnd)) {
       return fieldName;
     }
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -10515,8 +10925,12 @@
   Statement get body;
 
   /// The condition that determines when the loop terminates.
+  @ToBeDeprecated('Use condition2 instead.')
   Expression get condition;
 
+  @experimental
+  Expression get condition2;
+
   /// The token representing the `do` keyword.
   Token get doKeyword;
 
@@ -10539,7 +10953,12 @@
     GenerateNodeProperty('body'),
     GenerateNodeProperty('whileKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('condition', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'condition2',
+      v1Name: 'condition',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
     GenerateNodeProperty('semicolon'),
   ],
@@ -10561,7 +10980,7 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _condition;
+  ExpressionImpl _condition2;
 
   @generated
   @override
@@ -10577,13 +10996,14 @@
     required StatementImpl body,
     required this.whileKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl condition,
+    required ExpressionImpl condition2,
     required this.rightParenthesis,
     required this.semicolon,
   }) : _body = body,
-       _condition = condition {
+       _condition2 = condition2 {
     _becomeParentOf12(body);
-    _becomeParentOf12(condition);
+    _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
   }
 
   @generated
@@ -10602,12 +11022,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use condition2 instead.')
   @override
-  ExpressionImpl get condition => _condition;
+  ExpressionImpl get condition => V1Projection.toV1Expression(condition2);
 
   @generated
-  set condition(ExpressionImpl condition) {
-    _condition = _becomeParentOf12(condition);
+  @experimental
+  @override
+  ExpressionImpl get condition2 => _condition2;
+
+  @generated
+  @experimental
+  set condition2(ExpressionImpl condition2) {
+    _condition2 = _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
   }
 
   @generated
@@ -10634,7 +11062,7 @@
     ..addNode('body', body)
     ..addToken('whileKeyword', whileKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('condition', condition)
+    ..addNode('condition2', condition2)
     ..addToken('rightParenthesis', rightParenthesis)
     ..addToken('semicolon', semicolon);
 
@@ -10652,7 +11080,7 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(condition, child);
+    return identical(condition2, child);
   }
 
   @generated
@@ -10661,8 +11089,8 @@
     if (identical(body, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'body'.");
     }
-    if (identical(condition, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'condition'.");
+    if (identical(condition2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'condition2'.");
     }
     super.removeChild(oldNode);
   }
@@ -10674,8 +11102,8 @@
       body = newNode as StatementImpl;
       return;
     }
-    if (identical(condition, oldNode)) {
-      condition = newNode as ExpressionImpl;
+    if (identical(condition2, oldNode)) {
+      condition2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -10694,7 +11122,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     body.accept2(visitor);
-    condition.accept2(visitor);
+    condition2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -10707,17 +11135,17 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(StatementImpl)? visitBody,
-    void Function(ExpressionImpl)? visitCondition,
+    void Function(ExpressionImpl)? visitCondition2,
   }) {
     if (visitBody != null) {
       visitBody(body);
     } else {
       body.accept2(visitor);
     }
-    if (visitCondition != null) {
-      visitCondition(condition);
+    if (visitCondition2 != null) {
+      visitCondition2(condition2);
     } else {
-      condition.accept2(visitor);
+      condition2.accept2(visitor);
     }
   }
 
@@ -10739,8 +11167,8 @@
     if (body._containsOffset(rangeOffset, rangeEnd)) {
       return body;
     }
-    if (condition._containsOffset(rangeOffset, rangeEnd)) {
-      return condition;
+    if (condition2._containsOffset(rangeOffset, rangeEnd)) {
+      return condition2;
     }
     return null;
   }
@@ -13126,8 +13554,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class ExpressionFunctionBody implements FunctionBody {
   /// The expression representing the body of the function.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The token introducing the expression that represents the body of the
   /// function.
   Token get functionDefinition;
@@ -13153,7 +13585,12 @@
     GenerateNodeProperty('keyword'),
     GenerateNodeProperty('star'),
     GenerateNodeProperty('functionDefinition'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('semicolon'),
   ],
 )
@@ -13173,7 +13610,7 @@
   final Token functionDefinition;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -13184,10 +13621,11 @@
     required this.keyword,
     required this.star,
     required this.functionDefinition,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.semicolon,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -13208,16 +13646,24 @@
     if (semicolon case var semicolon?) {
       return semicolon;
     }
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -13244,7 +13690,7 @@
     ..addToken('keyword', keyword)
     ..addToken('star', star)
     ..addToken('functionDefinition', functionDefinition)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('semicolon', semicolon);
 
   @generated
@@ -13269,8 +13715,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -13278,8 +13724,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -13300,7 +13746,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -13312,12 +13758,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -13333,8 +13779,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -13349,6 +13795,9 @@
   ExpressionImpl get argumentExpression => this;
 
   @override
+  ExpressionImpl get argumentExpression2 => this;
+
+  @override
   bool get canBeConst => false;
 
   @override
@@ -13357,12 +13806,12 @@
     if (parent is ArgumentListImpl) {
       return parent._getStaticParameterElementFor(this);
     } else if (parent is IndexExpressionImpl) {
-      if (identical(parent.index, this)) {
+      if (identical(parent.index2, this)) {
         return parent._staticParameterElementForIndex;
       }
     } else if (parent is BinaryExpressionImpl) {
       // TODO(scheglov): https://github.com/dart-lang/sdk/issues/49102
-      if (identical(parent.rightOperand, this)) {
+      if (identical(parent.rightOperand2, this)) {
         var parameters = parent.staticInvokeType?.formalParameters;
         if (parameters != null && parameters.isNotEmpty) {
           return parameters[0];
@@ -13370,7 +13819,7 @@
         return null;
       }
     } else if (parent is AssignmentExpressionImpl) {
-      if (identical(parent.rightHandSide, this)) {
+      if (identical(parent.rightHandSide2, this)) {
         return parent._staticParameterElementForRightHandSide;
       }
     } else if (parent is PrefixExpressionImpl) {
@@ -13389,6 +13838,9 @@
   ExpressionImpl get fieldExpression => this;
 
   @override
+  ExpressionImpl get fieldExpression2 => this;
+
+  @override
   bool get inConstantContext {
     return constantContext(includeSelf: false) != null;
   }
@@ -13583,8 +14035,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class ExpressionStatement implements Statement {
   /// The expression that comprises the statement.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The semicolon terminating the statement, or `null` if the expression is a
   /// function expression and therefore isn't followed by a semicolon.
   Token? get semicolon;
@@ -13592,14 +14048,19 @@
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('semicolon'),
   ],
 )
 final class ExpressionStatementImpl extends StatementImpl
     implements ExpressionStatement {
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -13607,16 +14068,17 @@
 
   @generated
   ExpressionStatementImpl({
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.semicolon,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
   @override
   Token get beginToken {
-    return expression.beginToken;
+    return expression2.beginToken;
   }
 
   @generated
@@ -13625,21 +14087,29 @@
     if (semicolon case var semicolon?) {
       return semicolon;
     }
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
   bool get isSynthetic =>
-      _expression.isSynthetic && (semicolon == null || semicolon!.isSynthetic);
+      _expression2.isSynthetic && (semicolon == null || semicolon!.isSynthetic);
 
   @generated
   @override
@@ -13650,7 +14120,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('semicolon', semicolon);
 
   @generated
@@ -13674,8 +14144,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -13683,8 +14153,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -13701,7 +14171,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -13713,12 +14183,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -13734,8 +14204,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -16210,7 +16680,14 @@
 /// The basic structure of a for element.
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class ForElement
-    implements CollectionElement, ForLoop<CollectionElement> {}
+    implements CollectionElement, ForLoop<CollectionElement> {
+  @ToBeDeprecated('Use body2 instead.')
+  @override
+  CollectionElement get body;
+
+  @experimental
+  CollectionElement get body2;
+}
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
@@ -16219,7 +16696,12 @@
     GenerateNodeProperty('leftParenthesis'),
     GenerateNodeProperty('forLoopParts'),
     GenerateNodeProperty('rightParenthesis'),
-    GenerateNodeProperty('body', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'body2',
+      v1Name: 'body',
+      v1Projection: V1Projection.collectionElement,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class ForElementImpl extends AstNodeImpl
@@ -16247,7 +16729,7 @@
   final Token rightParenthesis;
 
   @generated
-  CollectionElementImpl _body;
+  CollectionElementImpl _body2;
 
   @generated
   ForElementImpl({
@@ -16256,11 +16738,12 @@
     required this.leftParenthesis,
     required ForLoopPartsImpl forLoopParts,
     required this.rightParenthesis,
-    required CollectionElementImpl body,
+    required CollectionElementImpl body2,
   }) : _forLoopParts = forLoopParts,
-       _body = body {
+       _body2 = body2 {
     _becomeParentOf12(forLoopParts);
-    _becomeParentOf12(body);
+    _becomeParentOf2(body2);
+    _becomeParentOf1(V1Projection.toV1CollectionElement(body2));
   }
 
   @generated
@@ -16273,18 +16756,26 @@
   }
 
   @generated
+  @ToBeDeprecated('Use body2 instead.')
   @override
-  CollectionElementImpl get body => _body;
+  CollectionElementImpl get body => V1Projection.toV1CollectionElement(body2);
 
   @generated
-  set body(CollectionElementImpl body) {
-    _body = _becomeParentOf12(body);
+  @experimental
+  @override
+  CollectionElementImpl get body2 => _body2;
+
+  @generated
+  @experimental
+  set body2(CollectionElementImpl body2) {
+    _body2 = _becomeParentOf2(body2);
+    _becomeParentOf1(V1Projection.toV1CollectionElement(body2));
   }
 
   @generated
   @override
   Token get endToken {
-    return body.endToken;
+    return body2.endToken;
   }
 
   @generated
@@ -16314,7 +16805,7 @@
     ..addToken('leftParenthesis', leftParenthesis)
     ..addNode('forLoopParts', forLoopParts)
     ..addToken('rightParenthesis', rightParenthesis)
-    ..addNode('body', body);
+    ..addNode('body2', body2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -16330,7 +16821,7 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(body, child);
+    return identical(body2, child);
   }
 
   @generated
@@ -16339,8 +16830,8 @@
     if (identical(forLoopParts, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'forLoopParts'.");
     }
-    if (identical(body, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'body'.");
+    if (identical(body2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'body2'.");
     }
     super.removeChild(oldNode);
   }
@@ -16352,8 +16843,8 @@
       forLoopParts = newNode as ForLoopPartsImpl;
       return;
     }
-    if (identical(body, oldNode)) {
-      body = newNode as CollectionElementImpl;
+    if (identical(body2, oldNode)) {
+      body2 = newNode as CollectionElementImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -16381,7 +16872,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     forLoopParts.accept2(visitor);
-    body.accept2(visitor);
+    body2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -16394,17 +16885,17 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(ForLoopPartsImpl)? visitForLoopParts,
-    void Function(CollectionElementImpl)? visitBody,
+    void Function(CollectionElementImpl)? visitBody2,
   }) {
     if (visitForLoopParts != null) {
       visitForLoopParts(forLoopParts);
     } else {
       forLoopParts.accept2(visitor);
     }
-    if (visitBody != null) {
-      visitBody(body);
+    if (visitBody2 != null) {
+      visitBody2(body2);
     } else {
-      body.accept2(visitor);
+      body2.accept2(visitor);
     }
   }
 
@@ -16426,8 +16917,8 @@
     if (forLoopParts._containsOffset(rangeOffset, rangeEnd)) {
       return forLoopParts;
     }
-    if (body._containsOffset(rangeOffset, rangeEnd)) {
-      return body;
+    if (body2._containsOffset(rangeOffset, rangeEnd)) {
+      return body2;
     }
     return null;
   }
@@ -16606,13 +17097,22 @@
   Token get separator;
 
   /// The default value expression.
+  @ToBeDeprecated('Use value2 instead.')
   Expression get value;
+
+  @experimental
+  Expression get value2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('separator'),
-    GenerateNodeProperty('value', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'value2',
+      v1Name: 'value',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class FormalParameterDefaultClauseImpl extends AstNodeImpl
@@ -16622,14 +17122,15 @@
   final Token separator;
 
   @generated
-  ExpressionImpl _value;
+  ExpressionImpl _value2;
 
   @generated
   FormalParameterDefaultClauseImpl({
     required this.separator,
-    required ExpressionImpl value,
-  }) : _value = value {
-    _becomeParentOf12(value);
+    required ExpressionImpl value2,
+  }) : _value2 = value2 {
+    _becomeParentOf2(value2);
+    _becomeParentOf1(V1Projection.toV1Expression(value2));
   }
 
   @generated
@@ -16641,16 +17142,24 @@
   @generated
   @override
   Token get endToken {
-    return value.endToken;
+    return value2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use value2 instead.')
   @override
-  ExpressionImpl get value => _value;
+  ExpressionImpl get value => V1Projection.toV1Expression(value2);
 
   @generated
-  set value(ExpressionImpl value) {
-    _value = _becomeParentOf12(value);
+  @experimental
+  @override
+  ExpressionImpl get value2 => _value2;
+
+  @generated
+  @experimental
+  set value2(ExpressionImpl value2) {
+    _value2 = _becomeParentOf2(value2);
+    _becomeParentOf1(V1Projection.toV1Expression(value2));
   }
 
   @generated
@@ -16663,7 +17172,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('separator', separator)
-    ..addNode('value', value);
+    ..addNode('value2', value2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -16687,8 +17196,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(value, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'value'.");
+    if (identical(value2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'value2'.");
     }
     super.removeChild(oldNode);
   }
@@ -16696,8 +17205,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(value, oldNode)) {
-      value = newNode as ExpressionImpl;
+    if (identical(value2, oldNode)) {
+      value2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -16714,7 +17223,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    value.accept2(visitor);
+    value2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -16726,12 +17235,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitValue,
+    void Function(ExpressionImpl)? visitValue2,
   }) {
-    if (visitValue != null) {
-      visitValue(value);
+    if (visitValue2 != null) {
+      visitValue2(value2);
     } else {
-      value.accept2(visitor);
+      value2.accept2(visitor);
     }
   }
 
@@ -16747,8 +17256,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (value._containsOffset(rangeOffset, rangeEnd)) {
-      return value;
+    if (value2._containsOffset(rangeOffset, rangeEnd)) {
+      return value2;
     }
     return null;
   }
@@ -17360,7 +17869,11 @@
   Token get rightSeparator;
 
   /// The list of expressions run after each execution of the loop body.
+  @ToBeDeprecated('Use updaters2 instead.')
   NodeList<Expression> get updaters;
+
+  @experimental
+  NodeList<Expression> get updaters2;
 }
 
 sealed class ForPartsImpl extends ForLoopPartsImpl implements ForParts {
@@ -17372,7 +17885,14 @@
   @override
   final Token rightSeparator;
 
-  final NodeListImpl<ExpressionImpl> _updaters = NodeListImpl._();
+  final NodeListImpl<ExpressionImpl> _updaters2 = NodeListImpl._();
+
+  @ToBeDeprecated('Use updaters2 instead.')
+  @override
+  late final NodeListImpl<ExpressionImpl> updaters = _V1ProjectedNodeListImpl(
+    updaters2,
+    V1Projection.toV1Expression,
+  );
 
   /// Initializes a newly created for statement.
   ///
@@ -17382,10 +17902,14 @@
     required this.leftSeparator,
     required ExpressionImpl? condition,
     required this.rightSeparator,
-    required List<ExpressionImpl>? updaters,
+    required List<ExpressionImpl>? updaters2,
   }) : _condition = condition {
     _becomeParentOf12(_condition);
-    _updaters._initialize(this, updaters);
+    _updaters2._initializeProjected(
+      this,
+      updaters2,
+      V1Projection.toV1Expression,
+    );
   }
 
   @override
@@ -17399,10 +17923,11 @@
   }
 
   @override
-  Token get endToken => _updaters.endToken ?? rightSeparator;
+  Token get endToken => _updaters2.endToken ?? rightSeparator;
 
+  @experimental
   @override
-  NodeListImpl<ExpressionImpl> get updaters => _updaters;
+  NodeListImpl<ExpressionImpl> get updaters2 => _updaters2;
 
   @override
   ChildEntities get _childEntities => ChildEntities()
@@ -17415,7 +17940,7 @@
   @override
   void visitChildren(AstVisitor visitor) {
     _condition?.accept(visitor);
-    _updaters.accept(visitor);
+    updaters.accept(visitor);
   }
 
   @override
@@ -17423,7 +17948,7 @@
     if (_condition?._containsOffset(rangeOffset, rangeEnd) ?? false) {
       return _condition;
     }
-    return _updaters._elementContainingRange(rangeOffset, rangeEnd);
+    return updaters._elementContainingRange(rangeOffset, rangeEnd);
   }
 }
 
@@ -17449,7 +17974,9 @@
     ),
     GenerateNodeProperty('rightSeparator', isSuper: true),
     GenerateNodeProperty(
-      'updaters',
+      'updaters2',
+      v1Name: 'updaters',
+      v1Projection: V1Projection.expression,
       isSuper: true,
       isInValueExpressionSlot: true,
     ),
@@ -17466,7 +17993,7 @@
     required super.leftSeparator,
     required super.condition,
     required super.rightSeparator,
-    required super.updaters,
+    required super.updaters2,
   }) : _variables = variables {
     _becomeParentOf12(variables);
   }
@@ -17480,7 +18007,7 @@
   @generated
   @override
   Token get endToken {
-    if (updaters.endToken case var result?) {
+    if (updaters2.endToken case var result?) {
       return result;
     }
     return rightSeparator;
@@ -17511,7 +18038,7 @@
     ..addToken('leftSeparator', leftSeparator)
     ..addNode('condition', condition)
     ..addToken('rightSeparator', rightSeparator)
-    ..addNodeList('updaters', updaters);
+    ..addNodeList('updaters2', updaters2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -17542,9 +18069,9 @@
       condition = null;
       return;
     }
-    if (updaters.containsChild(oldNode)) {
+    if (updaters2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'updaters' because NodeList cannot be resized.",
+        "Cannot remove child 'updaters2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -17561,7 +18088,7 @@
       condition = newNode as ExpressionImpl?;
       return;
     }
-    if (updaters.replaceChild(oldNode, newNode)) {
+    if (updaters2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -17582,7 +18109,7 @@
   void visitChildren2(AstVisitor2 visitor) {
     variables.accept2(visitor);
     condition?.accept2(visitor);
-    updaters.accept2(visitor);
+    updaters2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -17596,7 +18123,7 @@
     AstVisitor2 visitor, {
     void Function(VariableDeclarationListImpl)? visitVariables,
     void Function(ExpressionImpl)? visitCondition,
-    void Function(NodeListImpl<ExpressionImpl>)? visitUpdaters,
+    void Function(NodeListImpl<ExpressionImpl>)? visitUpdaters2,
   }) {
     if (visitVariables != null) {
       visitVariables(variables);
@@ -17610,10 +18137,10 @@
         condition.accept2(visitor);
       }
     }
-    if (visitUpdaters != null) {
-      visitUpdaters(updaters);
+    if (visitUpdaters2 != null) {
+      visitUpdaters2(updaters2);
     } else {
-      updaters.accept2(visitor);
+      updaters2.accept2(visitor);
     }
   }
 
@@ -17646,7 +18173,7 @@
         return condition;
       }
     }
-    if (updaters._elementContainingRange(rangeOffset, rangeEnd)
+    if (updaters2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -17666,12 +18193,21 @@
   ///
   /// Note that a for statement can't have both a variable list and an
   /// initialization expression, but can validly have neither.
+  @ToBeDeprecated('Use initialization2 instead.')
   Expression? get initialization;
+
+  @experimental
+  Expression? get initialization2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('initialization', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'initialization2',
+      v1Name: 'initialization',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('leftSeparator', isSuper: true),
     GenerateNodeProperty(
       'condition',
@@ -17680,7 +18216,9 @@
     ),
     GenerateNodeProperty('rightSeparator', isSuper: true),
     GenerateNodeProperty(
-      'updaters',
+      'updaters2',
+      v1Name: 'updaters',
+      v1Projection: V1Projection.expression,
       isSuper: true,
       isInValueExpressionSlot: true,
     ),
@@ -17689,24 +18227,28 @@
 final class ForPartsWithExpressionImpl extends ForPartsImpl
     implements ForPartsWithExpression {
   @generated
-  ExpressionImpl? _initialization;
+  ExpressionImpl? _initialization2;
 
   @generated
   ForPartsWithExpressionImpl({
-    required ExpressionImpl? initialization,
+    required ExpressionImpl? initialization2,
     required super.leftSeparator,
     required super.condition,
     required super.rightSeparator,
-    required super.updaters,
-  }) : _initialization = initialization {
-    _becomeParentOf12(initialization);
+    required super.updaters2,
+  }) : _initialization2 = initialization2 {
+    _becomeParentOf2(initialization2);
+    _becomeParentOf1(switch (initialization2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
   @override
   Token get beginToken {
-    if (initialization case var initialization?) {
-      return initialization.beginToken;
+    if (initialization2 case var initialization2?) {
+      return initialization2.beginToken;
     }
     return leftSeparator;
   }
@@ -17714,19 +18256,33 @@
   @generated
   @override
   Token get endToken {
-    if (updaters.endToken case var result?) {
+    if (updaters2.endToken case var result?) {
       return result;
     }
     return rightSeparator;
   }
 
   @generated
+  @ToBeDeprecated('Use initialization2 instead.')
   @override
-  ExpressionImpl? get initialization => _initialization;
+  ExpressionImpl? get initialization => switch (initialization2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set initialization(ExpressionImpl? initialization) {
-    _initialization = _becomeParentOf12(initialization);
+  @experimental
+  @override
+  ExpressionImpl? get initialization2 => _initialization2;
+
+  @generated
+  @experimental
+  set initialization2(ExpressionImpl? initialization2) {
+    _initialization2 = _becomeParentOf2(initialization2);
+    _becomeParentOf1(switch (initialization2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -17741,11 +18297,11 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('initialization', initialization)
+    ..addNode('initialization2', initialization2)
     ..addToken('leftSeparator', leftSeparator)
     ..addNode('condition', condition)
     ..addToken('rightSeparator', rightSeparator)
-    ..addNodeList('updaters', updaters);
+    ..addNodeList('updaters2', updaters2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -17769,17 +18325,17 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(initialization, oldNode)) {
-      initialization = null;
+    if (identical(initialization2, oldNode)) {
+      initialization2 = null;
       return;
     }
     if (identical(condition, oldNode)) {
       condition = null;
       return;
     }
-    if (updaters.containsChild(oldNode)) {
+    if (updaters2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'updaters' because NodeList cannot be resized.",
+        "Cannot remove child 'updaters2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -17788,15 +18344,15 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(initialization, oldNode)) {
-      initialization = newNode as ExpressionImpl?;
+    if (identical(initialization2, oldNode)) {
+      initialization2 = newNode as ExpressionImpl?;
       return;
     }
     if (identical(condition, oldNode)) {
       condition = newNode as ExpressionImpl?;
       return;
     }
-    if (updaters.replaceChild(oldNode, newNode)) {
+    if (updaters2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -17815,9 +18371,9 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    initialization?.accept2(visitor);
+    initialization2?.accept2(visitor);
     condition?.accept2(visitor);
-    updaters.accept2(visitor);
+    updaters2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -17829,15 +18385,15 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitInitialization,
+    void Function(ExpressionImpl)? visitInitialization2,
     void Function(ExpressionImpl)? visitCondition,
-    void Function(NodeListImpl<ExpressionImpl>)? visitUpdaters,
+    void Function(NodeListImpl<ExpressionImpl>)? visitUpdaters2,
   }) {
-    if (initialization case var initialization?) {
-      if (visitInitialization != null) {
-        visitInitialization(initialization);
+    if (initialization2 case var initialization2?) {
+      if (visitInitialization2 != null) {
+        visitInitialization2(initialization2);
       } else {
-        initialization.accept2(visitor);
+        initialization2.accept2(visitor);
       }
     }
     if (condition case var condition?) {
@@ -17847,10 +18403,10 @@
         condition.accept2(visitor);
       }
     }
-    if (visitUpdaters != null) {
-      visitUpdaters(updaters);
+    if (visitUpdaters2 != null) {
+      visitUpdaters2(updaters2);
     } else {
-      updaters.accept2(visitor);
+      updaters2.accept2(visitor);
     }
   }
 
@@ -17877,9 +18433,9 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (initialization case var initialization?) {
-      if (initialization._containsOffset(rangeOffset, rangeEnd)) {
-        return initialization;
+    if (initialization2 case var initialization2?) {
+      if (initialization2._containsOffset(rangeOffset, rangeEnd)) {
+        return initialization2;
       }
     }
     if (condition case var condition?) {
@@ -17887,7 +18443,7 @@
         return condition;
       }
     }
-    if (updaters._elementContainingRange(rangeOffset, rangeEnd)
+    if (updaters2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -17917,7 +18473,9 @@
     ),
     GenerateNodeProperty('rightSeparator', isSuper: true),
     GenerateNodeProperty(
-      'updaters',
+      'updaters2',
+      v1Name: 'updaters',
+      v1Projection: V1Projection.expression,
       isSuper: true,
       isInValueExpressionSlot: true,
     ),
@@ -17934,7 +18492,7 @@
     required super.leftSeparator,
     required super.condition,
     required super.rightSeparator,
-    required super.updaters,
+    required super.updaters2,
   }) : _variables = variables {
     _becomeParentOf12(variables);
   }
@@ -17948,7 +18506,7 @@
   @generated
   @override
   Token get endToken {
-    if (updaters.endToken case var result?) {
+    if (updaters2.endToken case var result?) {
       return result;
     }
     return rightSeparator;
@@ -17979,7 +18537,7 @@
     ..addToken('leftSeparator', leftSeparator)
     ..addNode('condition', condition)
     ..addToken('rightSeparator', rightSeparator)
-    ..addNodeList('updaters', updaters);
+    ..addNodeList('updaters2', updaters2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -18009,9 +18567,9 @@
       condition = null;
       return;
     }
-    if (updaters.containsChild(oldNode)) {
+    if (updaters2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'updaters' because NodeList cannot be resized.",
+        "Cannot remove child 'updaters2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -18028,7 +18586,7 @@
       condition = newNode as ExpressionImpl?;
       return;
     }
-    if (updaters.replaceChild(oldNode, newNode)) {
+    if (updaters2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -18049,7 +18607,7 @@
   void visitChildren2(AstVisitor2 visitor) {
     variables.accept2(visitor);
     condition?.accept2(visitor);
-    updaters.accept2(visitor);
+    updaters2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -18063,7 +18621,7 @@
     AstVisitor2 visitor, {
     void Function(PatternVariableDeclarationImpl)? visitVariables,
     void Function(ExpressionImpl)? visitCondition,
-    void Function(NodeListImpl<ExpressionImpl>)? visitUpdaters,
+    void Function(NodeListImpl<ExpressionImpl>)? visitUpdaters2,
   }) {
     if (visitVariables != null) {
       visitVariables(variables);
@@ -18077,10 +18635,10 @@
         condition.accept2(visitor);
       }
     }
-    if (visitUpdaters != null) {
-      visitUpdaters(updaters);
+    if (visitUpdaters2 != null) {
+      visitUpdaters2(updaters2);
     } else {
-      updaters.accept2(visitor);
+      updaters2.accept2(visitor);
     }
   }
 
@@ -18113,7 +18671,7 @@
         return condition;
       }
     }
-    if (updaters._elementContainingRange(rangeOffset, rangeEnd)
+    if (updaters2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -19174,13 +19732,21 @@
   ExecutableElement? get element;
 
   /// The expression producing the function being invoked.
+  @ToBeDeprecated('Use function2 instead.')
   @override
   Expression get function;
+
+  @experimental
+  Expression get function2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('function'),
+    GenerateNodeProperty(
+      'function2',
+      v1Name: 'function',
+      v1Projection: V1Projection.expression,
+    ),
     GenerateNodeProperty('typeArguments', isSuper: true),
     GenerateNodeProperty('argumentList', isSuper: true),
   ],
@@ -19189,24 +19755,25 @@
     with DotShorthandMixin
     implements RewrittenMethodInvocationImpl, FunctionExpressionInvocation {
   @generated
-  ExpressionImpl _function;
+  ExpressionImpl _function2;
 
   @override
   ExecutableElement? element;
 
   @generated
   FunctionExpressionInvocationImpl({
-    required ExpressionImpl function,
+    required ExpressionImpl function2,
     required super.typeArguments,
     required super.argumentList,
-  }) : _function = function {
-    _becomeParentOf12(function);
+  }) : _function2 = function2 {
+    _becomeParentOf2(function2);
+    _becomeParentOf1(V1Projection.toV1Expression(function2));
   }
 
   @generated
   @override
   Token get beginToken {
-    return function.beginToken;
+    return function2.beginToken;
   }
 
   @generated
@@ -19216,12 +19783,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use function2 instead.')
   @override
-  ExpressionImpl get function => _function;
+  ExpressionImpl get function => V1Projection.toV1Expression(function2);
 
   @generated
-  set function(ExpressionImpl function) {
-    _function = _becomeParentOf12(function);
+  @experimental
+  @override
+  ExpressionImpl get function2 => _function2;
+
+  @generated
+  @experimental
+  set function2(ExpressionImpl function2) {
+    _function2 = _becomeParentOf2(function2);
+    _becomeParentOf1(V1Projection.toV1Expression(function2));
   }
 
   @override
@@ -19237,7 +19812,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('function', function)
+    ..addNode('function2', function2)
     ..addNode('typeArguments', typeArguments)
     ..addNode('argumentList', argumentList);
 
@@ -19263,8 +19838,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(function, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'function'.");
+    if (identical(function2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'function2'.");
     }
     if (identical(typeArguments, oldNode)) {
       typeArguments = null;
@@ -19279,8 +19854,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(function, oldNode)) {
-      function = newNode as ExpressionImpl;
+    if (identical(function2, oldNode)) {
+      function2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(typeArguments, oldNode)) {
@@ -19313,7 +19888,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    function.accept2(visitor);
+    function2.accept2(visitor);
     typeArguments?.accept2(visitor);
     argumentList.accept2(visitor);
   }
@@ -19327,14 +19902,14 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitFunction,
+    void Function(ExpressionImpl)? visitFunction2,
     void Function(TypeArgumentListImpl)? visitTypeArguments,
     void Function(ArgumentListImpl)? visitArgumentList,
   }) {
-    if (visitFunction != null) {
-      visitFunction(function);
+    if (visitFunction2 != null) {
+      visitFunction2(function2);
     } else {
-      function.accept2(visitor);
+      function2.accept2(visitor);
     }
     if (typeArguments case var typeArguments?) {
       if (visitTypeArguments != null) {
@@ -19370,8 +19945,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (function._containsOffset(rangeOffset, rangeEnd)) {
-      return function;
+    if (function2._containsOffset(rangeOffset, rangeEnd)) {
+      return function2;
     }
     if (typeArguments case var typeArguments?) {
       if (typeArguments._containsOffset(rangeOffset, rangeEnd)) {
@@ -19402,8 +19977,12 @@
   /// a class). In code with errors, this could be other kinds of expressions.
   /// For example, `(...)<int>` parses as a [FunctionReference] whose referent
   /// is a [ParenthesizedExpression].
+  @ToBeDeprecated('Use function2 instead.')
   Expression get function;
 
+  @experimental
+  Expression get function2;
+
   /// The type arguments being applied to the function, or `null` if there are
   /// no type arguments.
   TypeArgumentList? get typeArguments;
@@ -19418,7 +19997,11 @@
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('function'),
+    GenerateNodeProperty(
+      'function2',
+      v1Name: 'function',
+      v1Projection: V1Projection.expression,
+    ),
     GenerateNodeProperty('typeArguments'),
   ],
 )
@@ -19426,7 +20009,7 @@
     with DotShorthandMixin
     implements FunctionReference {
   @generated
-  ExpressionImpl _function;
+  ExpressionImpl _function2;
 
   @generated
   TypeArgumentListImpl? _typeArguments;
@@ -19436,18 +20019,19 @@
 
   @generated
   FunctionReferenceImpl({
-    required ExpressionImpl function,
+    required ExpressionImpl function2,
     required TypeArgumentListImpl? typeArguments,
-  }) : _function = function,
+  }) : _function2 = function2,
        _typeArguments = typeArguments {
-    _becomeParentOf12(function);
+    _becomeParentOf2(function2);
+    _becomeParentOf1(V1Projection.toV1Expression(function2));
     _becomeParentOf12(typeArguments);
   }
 
   @generated
   @override
   Token get beginToken {
-    return function.beginToken;
+    return function2.beginToken;
   }
 
   @generated
@@ -19456,21 +20040,29 @@
     if (typeArguments case var typeArguments?) {
       return typeArguments.endToken;
     }
-    return function.endToken;
+    return function2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use function2 instead.')
   @override
-  ExpressionImpl get function => _function;
+  ExpressionImpl get function => V1Projection.toV1Expression(function2);
 
   @generated
-  set function(ExpressionImpl function) {
-    _function = _becomeParentOf12(function);
+  @experimental
+  @override
+  ExpressionImpl get function2 => _function2;
+
+  @generated
+  @experimental
+  set function2(ExpressionImpl function2) {
+    _function2 = _becomeParentOf2(function2);
+    _becomeParentOf1(V1Projection.toV1Expression(function2));
   }
 
   @override
   Precedence get precedence =>
-      typeArguments == null ? function.precedence : Precedence.postfix;
+      typeArguments == null ? function2.precedence : Precedence.postfix;
 
   @generated
   @override
@@ -19490,7 +20082,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('function', function)
+    ..addNode('function2', function2)
     ..addNode('typeArguments', typeArguments);
 
   @generated
@@ -19513,8 +20105,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(function, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'function'.");
+    if (identical(function2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'function2'.");
     }
     if (identical(typeArguments, oldNode)) {
       typeArguments = null;
@@ -19526,8 +20118,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(function, oldNode)) {
-      function = newNode as ExpressionImpl;
+    if (identical(function2, oldNode)) {
+      function2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(typeArguments, oldNode)) {
@@ -19555,7 +20147,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    function.accept2(visitor);
+    function2.accept2(visitor);
     typeArguments?.accept2(visitor);
   }
 
@@ -19568,13 +20160,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitFunction,
+    void Function(ExpressionImpl)? visitFunction2,
     void Function(TypeArgumentListImpl)? visitTypeArguments,
   }) {
-    if (visitFunction != null) {
-      visitFunction(function);
+    if (visitFunction2 != null) {
+      visitFunction2(function2);
     } else {
-      function.accept2(visitor);
+      function2.accept2(visitor);
     }
     if (typeArguments case var typeArguments?) {
       if (visitTypeArguments != null) {
@@ -19602,8 +20194,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (function._containsOffset(rangeOffset, rangeEnd)) {
-      return function;
+    if (function2._containsOffset(rangeOffset, rangeEnd)) {
+      return function2;
     }
     if (typeArguments case var typeArguments?) {
       if (typeArguments._containsOffset(rangeOffset, rangeEnd)) {
@@ -21147,13 +21739,17 @@
 /// The basic structure of an if element.
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class IfElement implements CollectionElement {
-  /// The `case` clause used to match a pattern against the [expression].
+  /// The `case` clause used to match a pattern against the [expression2].
   CaseClause? get caseClause;
 
   /// The statement that is executed if the condition evaluates to `false`, or
   /// `null` if there's no else statement.
+  @ToBeDeprecated('Use elseElement2 instead.')
   CollectionElement? get elseElement;
 
+  @experimental
+  CollectionElement? get elseElement2;
+
   /// The token representing the `else` keyword, or `null` if there's no else
   /// expression.
   Token? get elseKeyword;
@@ -21161,8 +21757,12 @@
   /// The expression used to either determine which of the statements is
   /// executed next or to compute the value to be matched against the pattern in
   /// the `case` clause.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The token representing the `if` keyword.
   Token get ifKeyword;
 
@@ -21173,19 +21773,38 @@
   Token get rightParenthesis;
 
   /// The statement that is executed if the condition evaluates to `true`.
+  @ToBeDeprecated('Use thenElement2 instead.')
   CollectionElement get thenElement;
+
+  @experimental
+  CollectionElement get thenElement2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('ifKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('caseClause'),
     GenerateNodeProperty('rightParenthesis'),
-    GenerateNodeProperty('thenElement', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'thenElement2',
+      v1Name: 'thenElement',
+      v1Projection: V1Projection.collectionElement,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('elseKeyword'),
-    GenerateNodeProperty('elseElement', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'elseElement2',
+      v1Name: 'elseElement',
+      v1Projection: V1Projection.collectionElement,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class IfElementImpl extends AstNodeImpl
@@ -21200,7 +21819,7 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   CaseClauseImpl? _caseClause;
@@ -21210,33 +21829,39 @@
   final Token rightParenthesis;
 
   @generated
-  CollectionElementImpl _thenElement;
+  CollectionElementImpl _thenElement2;
 
   @generated
   @override
   final Token? elseKeyword;
 
   @generated
-  CollectionElementImpl? _elseElement;
+  CollectionElementImpl? _elseElement2;
 
   @generated
   IfElementImpl({
     required this.ifKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required CaseClauseImpl? caseClause,
     required this.rightParenthesis,
-    required CollectionElementImpl thenElement,
+    required CollectionElementImpl thenElement2,
     required this.elseKeyword,
-    required CollectionElementImpl? elseElement,
-  }) : _expression = expression,
+    required CollectionElementImpl? elseElement2,
+  }) : _expression2 = expression2,
        _caseClause = caseClause,
-       _thenElement = thenElement,
-       _elseElement = elseElement {
-    _becomeParentOf12(expression);
+       _thenElement2 = thenElement2,
+       _elseElement2 = elseElement2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
     _becomeParentOf12(caseClause);
-    _becomeParentOf12(thenElement);
-    _becomeParentOf12(elseElement);
+    _becomeParentOf2(thenElement2);
+    _becomeParentOf1(V1Projection.toV1CollectionElement(thenElement2));
+    _becomeParentOf2(elseElement2);
+    _becomeParentOf1(switch (elseElement2) {
+      var node? => V1Projection.toV1CollectionElement(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -21255,52 +21880,83 @@
   }
 
   set condition(ExpressionImpl condition) {
-    _expression = _becomeParentOf12(condition);
+    expression2 = condition;
   }
 
   @generated
+  @ToBeDeprecated('Use elseElement2 instead.')
   @override
-  CollectionElementImpl? get elseElement => _elseElement;
+  CollectionElementImpl? get elseElement => switch (elseElement2) {
+    var node? => V1Projection.toV1CollectionElement(node),
+    _ => null,
+  };
 
   @generated
-  set elseElement(CollectionElementImpl? elseElement) {
-    _elseElement = _becomeParentOf12(elseElement);
+  @experimental
+  @override
+  CollectionElementImpl? get elseElement2 => _elseElement2;
+
+  @generated
+  @experimental
+  set elseElement2(CollectionElementImpl? elseElement2) {
+    _elseElement2 = _becomeParentOf2(elseElement2);
+    _becomeParentOf1(switch (elseElement2) {
+      var node? => V1Projection.toV1CollectionElement(node),
+      _ => null,
+    });
   }
 
   @generated
   @override
   Token get endToken {
-    if (elseElement case var elseElement?) {
-      return elseElement.endToken;
+    if (elseElement2 case var elseElement2?) {
+      return elseElement2.endToken;
     }
     if (elseKeyword case var elseKeyword?) {
       return elseKeyword;
     }
-    return thenElement.endToken;
+    return thenElement2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
-  CollectionElementImpl? get ifFalse => elseElement;
+  CollectionElementImpl? get ifFalse => elseElement2;
 
   @override
-  CollectionElementImpl get ifTrue => thenElement;
+  CollectionElementImpl get ifTrue => thenElement2;
 
   @generated
+  @ToBeDeprecated('Use thenElement2 instead.')
   @override
-  CollectionElementImpl get thenElement => _thenElement;
+  CollectionElementImpl get thenElement =>
+      V1Projection.toV1CollectionElement(thenElement2);
 
   @generated
-  set thenElement(CollectionElementImpl thenElement) {
-    _thenElement = _becomeParentOf12(thenElement);
+  @experimental
+  @override
+  CollectionElementImpl get thenElement2 => _thenElement2;
+
+  @generated
+  @experimental
+  set thenElement2(CollectionElementImpl thenElement2) {
+    _thenElement2 = _becomeParentOf2(thenElement2);
+    _becomeParentOf1(V1Projection.toV1CollectionElement(thenElement2));
   }
 
   @generated
@@ -21320,12 +21976,12 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('ifKeyword', ifKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addNode('caseClause', caseClause)
     ..addToken('rightParenthesis', rightParenthesis)
-    ..addNode('thenElement', thenElement)
+    ..addNode('thenElement2', thenElement2)
     ..addToken('elseKeyword', elseKeyword)
-    ..addNode('elseElement', elseElement);
+    ..addNode('elseElement2', elseElement2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -21341,26 +21997,26 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child) ||
-        identical(thenElement, child) ||
-        identical(elseElement, child);
+    return identical(expression2, child) ||
+        identical(thenElement2, child) ||
+        identical(elseElement2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (identical(caseClause, oldNode)) {
       caseClause = null;
       return;
     }
-    if (identical(thenElement, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'thenElement'.");
+    if (identical(thenElement2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'thenElement2'.");
     }
-    if (identical(elseElement, oldNode)) {
-      elseElement = null;
+    if (identical(elseElement2, oldNode)) {
+      elseElement2 = null;
       return;
     }
     super.removeChild(oldNode);
@@ -21369,20 +22025,20 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(caseClause, oldNode)) {
       caseClause = newNode as CaseClauseImpl?;
       return;
     }
-    if (identical(thenElement, oldNode)) {
-      thenElement = newNode as CollectionElementImpl;
+    if (identical(thenElement2, oldNode)) {
+      thenElement2 = newNode as CollectionElementImpl;
       return;
     }
-    if (identical(elseElement, oldNode)) {
-      elseElement = newNode as CollectionElementImpl?;
+    if (identical(elseElement2, oldNode)) {
+      elseElement2 = newNode as CollectionElementImpl?;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -21411,10 +22067,10 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     caseClause?.accept2(visitor);
-    thenElement.accept2(visitor);
-    elseElement?.accept2(visitor);
+    thenElement2.accept2(visitor);
+    elseElement2?.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -21426,15 +22082,15 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(CaseClauseImpl)? visitCaseClause,
-    void Function(CollectionElementImpl)? visitThenElement,
-    void Function(CollectionElementImpl)? visitElseElement,
+    void Function(CollectionElementImpl)? visitThenElement2,
+    void Function(CollectionElementImpl)? visitElseElement2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (caseClause case var caseClause?) {
       if (visitCaseClause != null) {
@@ -21443,16 +22099,16 @@
         caseClause.accept2(visitor);
       }
     }
-    if (visitThenElement != null) {
-      visitThenElement(thenElement);
+    if (visitThenElement2 != null) {
+      visitThenElement2(thenElement2);
     } else {
-      thenElement.accept2(visitor);
+      thenElement2.accept2(visitor);
     }
-    if (elseElement case var elseElement?) {
-      if (visitElseElement != null) {
-        visitElseElement(elseElement);
+    if (elseElement2 case var elseElement2?) {
+      if (visitElseElement2 != null) {
+        visitElseElement2(elseElement2);
       } else {
-        elseElement.accept2(visitor);
+        elseElement2.accept2(visitor);
       }
     }
   }
@@ -21482,20 +22138,20 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (caseClause case var caseClause?) {
       if (caseClause._containsOffset(rangeOffset, rangeEnd)) {
         return caseClause;
       }
     }
-    if (thenElement._containsOffset(rangeOffset, rangeEnd)) {
-      return thenElement;
+    if (thenElement2._containsOffset(rangeOffset, rangeEnd)) {
+      return thenElement2;
     }
-    if (elseElement case var elseElement?) {
-      if (elseElement._containsOffset(rangeOffset, rangeEnd)) {
-        return elseElement;
+    if (elseElement2 case var elseElement2?) {
+      if (elseElement2._containsOffset(rangeOffset, rangeEnd)) {
+        return elseElement2;
       }
     }
     return null;
@@ -21526,7 +22182,7 @@
 ///        ('else' [Statement])?
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class IfStatement implements Statement {
-  /// The `case` clause used to match a pattern against the [expression].
+  /// The `case` clause used to match a pattern against the [expression2].
   CaseClause? get caseClause;
 
   /// The token representing the `else` keyword, or `null` if there's no else
@@ -21540,8 +22196,12 @@
   /// The expression used to either determine which of the statements is
   /// executed next or to compute the value matched against the pattern in the
   /// `case` clause.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The token representing the `if` keyword.
   // TODO(scheglov): Extract shared `IfCondition`, see the patterns spec.
   Token get ifKeyword;
@@ -21560,7 +22220,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('ifKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('caseClause'),
     GenerateNodeProperty('rightParenthesis'),
     GenerateNodeProperty('thenStatement'),
@@ -21579,7 +22244,7 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   CaseClauseImpl? _caseClause;
@@ -21602,17 +22267,18 @@
   IfStatementImpl({
     required this.ifKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required CaseClauseImpl? caseClause,
     required this.rightParenthesis,
     required StatementImpl thenStatement,
     required this.elseKeyword,
     required StatementImpl? elseStatement,
-  }) : _expression = expression,
+  }) : _expression2 = expression2,
        _caseClause = caseClause,
        _thenStatement = thenStatement,
        _elseStatement = elseStatement {
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
     _becomeParentOf12(caseClause);
     _becomeParentOf12(thenStatement);
     _becomeParentOf12(elseStatement);
@@ -21634,7 +22300,7 @@
   }
 
   set condition(ExpressionImpl condition) {
-    _expression = _becomeParentOf12(condition);
+    expression2 = condition;
   }
 
   @generated
@@ -21659,12 +22325,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -21699,7 +22373,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('ifKeyword', ifKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addNode('caseClause', caseClause)
     ..addToken('rightParenthesis', rightParenthesis)
     ..addNode('thenStatement', thenStatement)
@@ -21720,14 +22394,14 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (identical(caseClause, oldNode)) {
       caseClause = null;
@@ -21746,8 +22420,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(caseClause, oldNode)) {
@@ -21779,7 +22453,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     caseClause?.accept2(visitor);
     thenStatement.accept2(visitor);
     elseStatement?.accept2(visitor);
@@ -21794,15 +22468,15 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(CaseClauseImpl)? visitCaseClause,
     void Function(StatementImpl)? visitThenStatement,
     void Function(StatementImpl)? visitElseStatement,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (caseClause case var caseClause?) {
       if (visitCaseClause != null) {
@@ -21850,8 +22524,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (caseClause case var caseClause?) {
       if (caseClause._containsOffset(rangeOffset, rangeEnd)) {
@@ -22033,8 +22707,12 @@
 abstract final class ImplicitCallReference
     implements MethodReferenceExpression {
   /// The expression from which a `call` method is being referenced.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The type arguments being applied to the tear-off, or `null` if there are
   /// no type arguments.
   TypeArgumentList? get typeArguments;
@@ -22048,7 +22726,11 @@
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('expression'),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+    ),
     GenerateNodeProperty('typeArguments'),
     GenerateNodeProperty('element'),
     GenerateNodeProperty('typeArgumentTypes', type: List<DartType>),
@@ -22057,7 +22739,7 @@
 final class ImplicitCallReferenceImpl extends ExpressionImpl
     implements ImplicitCallReference {
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   TypeArgumentListImpl? _typeArguments;
@@ -22072,20 +22754,21 @@
 
   @generated
   ImplicitCallReferenceImpl({
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required TypeArgumentListImpl? typeArguments,
     required this.element,
     required this.typeArgumentTypes,
-  }) : _expression = expression,
+  }) : _expression2 = expression2,
        _typeArguments = typeArguments {
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
     _becomeParentOf12(typeArguments);
   }
 
   @generated
   @override
   Token get beginToken {
-    return expression.beginToken;
+    return expression2.beginToken;
   }
 
   @generated
@@ -22094,21 +22777,29 @@
     if (typeArguments case var typeArguments?) {
       return typeArguments.endToken;
     }
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
   Precedence get precedence =>
-      typeArguments == null ? expression.precedence : Precedence.postfix;
+      typeArguments == null ? expression2.precedence : Precedence.postfix;
 
   @generated
   @override
@@ -22128,7 +22819,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addNode('typeArguments', typeArguments);
 
   @generated
@@ -22153,8 +22844,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (identical(typeArguments, oldNode)) {
       typeArguments = null;
@@ -22166,8 +22857,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(typeArguments, oldNode)) {
@@ -22195,7 +22886,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     typeArguments?.accept2(visitor);
   }
 
@@ -22208,13 +22899,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(TypeArgumentListImpl)? visitTypeArguments,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (typeArguments case var typeArguments?) {
       if (visitTypeArguments != null) {
@@ -22242,8 +22933,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (typeArguments case var typeArguments?) {
       if (typeArguments._containsOffset(rangeOffset, rangeEnd)) {
@@ -22720,8 +23411,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class IndexExpression implements MethodReferenceExpression {
   /// The expression used to compute the index.
+  @ToBeDeprecated('Use index2 instead.')
   Expression get index;
 
+  @experimental
+  Expression get index2;
+
   /// Whether this expression is cascaded.
   ///
   /// If it is, then the target of this expression isn't stored locally but is
@@ -22745,7 +23440,7 @@
   /// The expression used to compute the object being indexed.
   ///
   /// If this index expression isn't part of a cascade expression, then this
-  /// is the same as [target]. If this index expression is part of a cascade
+  /// is the same as [target2]. If this index expression is part of a cascade
   /// expression, then the target expression stored with the cascade expression
   /// is returned.
   Expression get realTarget;
@@ -22758,8 +23453,12 @@
   ///
   /// Use [realTarget] to get the target independent of whether this is part of
   /// a cascade expression.
+  @ToBeDeprecated('Use target2 instead.')
   Expression? get target;
 
+  @experimental
+  Expression? get target2;
+
   /// Returns `true` if this expression is computing a right-hand value (that
   /// is, if this expression is in a context where the operator '[]' is
   /// invoked).
@@ -22783,11 +23482,21 @@
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('target', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'target2',
+      v1Name: 'target',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('period'),
     GenerateNodeProperty('question'),
     GenerateNodeProperty('leftBracket'),
-    GenerateNodeProperty('index', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'index2',
+      v1Name: 'index',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightBracket'),
   ],
 )
@@ -22795,7 +23504,7 @@
     with DotShorthandMixin
     implements IndexExpression {
   @generated
-  ExpressionImpl? _target;
+  ExpressionImpl? _target2;
 
   @generated
   @override
@@ -22810,7 +23519,7 @@
   final Token leftBracket;
 
   @generated
-  ExpressionImpl _index;
+  ExpressionImpl _index2;
 
   @generated
   @override
@@ -22824,23 +23533,28 @@
 
   @generated
   IndexExpressionImpl({
-    required ExpressionImpl? target,
+    required ExpressionImpl? target2,
     required this.period,
     required this.question,
     required this.leftBracket,
-    required ExpressionImpl index,
+    required ExpressionImpl index2,
     required this.rightBracket,
-  }) : _target = target,
-       _index = index {
-    _becomeParentOf12(target);
-    _becomeParentOf12(index);
+  }) : _target2 = target2,
+       _index2 = index2 {
+    _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
+    _becomeParentOf2(index2);
+    _becomeParentOf1(V1Projection.toV1Expression(index2));
   }
 
   @generated
   @override
   Token get beginToken {
-    if (target case var target?) {
-      return target.beginToken;
+    if (target2 case var target2?) {
+      return target2.beginToken;
     }
     if (period case var period?) {
       return period;
@@ -22858,12 +23572,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use index2 instead.')
   @override
-  ExpressionImpl get index => _index;
+  ExpressionImpl get index => V1Projection.toV1Expression(index2);
 
   @generated
-  set index(ExpressionImpl index) {
-    _index = _becomeParentOf12(index);
+  @experimental
+  @override
+  ExpressionImpl get index2 => _index2;
+
+  @generated
+  @experimental
+  set index2(ExpressionImpl index2) {
+    _index2 = _becomeParentOf2(index2);
+    _becomeParentOf1(V1Projection.toV1Expression(index2));
   }
 
   @override
@@ -22889,18 +23611,32 @@
   @override
   ExpressionImpl get realTarget {
     if (isCascaded) {
-      return _ancestorCascade.target;
+      return _ancestorCascade.target2;
     }
-    return _target!;
+    return _target2!;
   }
 
   @generated
+  @ToBeDeprecated('Use target2 instead.')
   @override
-  ExpressionImpl? get target => _target;
+  ExpressionImpl? get target => switch (target2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set target(ExpressionImpl? target) {
-    _target = _becomeParentOf12(target);
+  @experimental
+  @override
+  ExpressionImpl? get target2 => _target2;
+
+  @generated
+  @experimental
+  set target2(ExpressionImpl? target2) {
+    _target2 = _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   /// The cascade that contains this [IndexExpression].
@@ -22928,11 +23664,11 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('target', target)
+    ..addNode('target2', target2)
     ..addToken('period', period)
     ..addToken('question', question)
     ..addToken('leftBracket', leftBracket)
-    ..addNode('index', index)
+    ..addNode('index2', index2)
     ..addToken('rightBracket', rightBracket);
 
   /// The parameter element representing the parameter to which the value of the
@@ -22971,7 +23707,7 @@
     // TODO(brianwilkerson): Convert this to a getter.
     var parent = parent2!;
     if (parent case AssignmentExpression assignment) {
-      if (identical(assignment.leftHandSide, this) &&
+      if (identical(assignment.leftHandSide2, this) &&
           assignment.operator.type == TokenType.EQ) {
         return false;
       }
@@ -22988,7 +23724,7 @@
     } else if (parent is PostfixExpressionImpl) {
       return parent.operator.type.isIncrementOperator;
     } else if (parent is AssignmentExpressionImpl) {
-      return identical(parent.leftHandSide, this);
+      return identical(parent.leftHandSide2, this);
     }
     return false;
   }
@@ -23003,12 +23739,12 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(target, oldNode)) {
-      target = null;
+    if (identical(target2, oldNode)) {
+      target2 = null;
       return;
     }
-    if (identical(index, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'index'.");
+    if (identical(index2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'index2'.");
     }
     super.removeChild(oldNode);
   }
@@ -23016,12 +23752,12 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(target, oldNode)) {
-      target = newNode as ExpressionImpl?;
+    if (identical(target2, oldNode)) {
+      target2 = newNode as ExpressionImpl?;
       return;
     }
-    if (identical(index, oldNode)) {
-      index = newNode as ExpressionImpl;
+    if (identical(index2, oldNode)) {
+      index2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -23045,8 +23781,8 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    target?.accept2(visitor);
-    index.accept2(visitor);
+    target2?.accept2(visitor);
+    index2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -23058,20 +23794,20 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitTarget,
-    void Function(ExpressionImpl)? visitIndex,
+    void Function(ExpressionImpl)? visitTarget2,
+    void Function(ExpressionImpl)? visitIndex2,
   }) {
-    if (target case var target?) {
-      if (visitTarget != null) {
-        visitTarget(target);
+    if (target2 case var target2?) {
+      if (visitTarget2 != null) {
+        visitTarget2(target2);
       } else {
-        target.accept2(visitor);
+        target2.accept2(visitor);
       }
     }
-    if (visitIndex != null) {
-      visitIndex(index);
+    if (visitIndex2 != null) {
+      visitIndex2(index2);
     } else {
-      index.accept2(visitor);
+      index2.accept2(visitor);
     }
   }
 
@@ -23092,13 +23828,13 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (target case var target?) {
-      if (target._containsOffset(rangeOffset, rangeEnd)) {
-        return target;
+    if (target2 case var target2?) {
+      if (target2._containsOffset(rangeOffset, rangeEnd)) {
+        return target2;
       }
     }
-    if (index._containsOffset(rangeOffset, rangeEnd)) {
-      return index;
+    if (index2._containsOffset(rangeOffset, rangeEnd)) {
+      return index2;
     }
     return null;
   }
@@ -23606,8 +24342,12 @@
 abstract final class InterpolationExpression implements InterpolationElement {
   /// The expression to be evaluated for the value to be converted into a
   /// string.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The token used to introduce the interpolation expression.
   ///
   /// This will either be `$` if the expression is a simple identifier or `${`
@@ -23622,7 +24362,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('leftBracket'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightBracket'),
   ],
 )
@@ -23633,7 +24378,7 @@
   final Token leftBracket;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -23642,10 +24387,11 @@
   @generated
   InterpolationExpressionImpl({
     required this.leftBracket,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.rightBracket,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -23660,16 +24406,24 @@
     if (rightBracket case var rightBracket?) {
       return rightBracket;
     }
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -23683,7 +24437,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('leftBracket', leftBracket)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('rightBracket', rightBracket);
 
   @generated
@@ -23708,8 +24462,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -23717,8 +24471,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -23735,7 +24489,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -23747,12 +24501,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -23768,8 +24522,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -23992,8 +24746,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class IsExpression implements Expression {
   /// The expression used to compute the value whose type is being tested.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The is operator.
   Token get isOperator;
 
@@ -24006,7 +24764,12 @@
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('isOperator'),
     GenerateNodeProperty('notOperator'),
     GenerateNodeProperty('type'),
@@ -24014,7 +24777,7 @@
 )
 final class IsExpressionImpl extends ExpressionImpl implements IsExpression {
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -24029,20 +24792,21 @@
 
   @generated
   IsExpressionImpl({
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.isOperator,
     required this.notOperator,
     required TypeAnnotationImpl type,
-  }) : _expression = expression,
+  }) : _expression2 = expression2,
        _type = type {
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
     _becomeParentOf12(type);
   }
 
   @generated
   @override
   Token get beginToken {
-    return expression.beginToken;
+    return expression2.beginToken;
   }
 
   @generated
@@ -24052,12 +24816,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -24083,7 +24855,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('isOperator', isOperator)
     ..addToken('notOperator', notOperator)
     ..addNode('type', type);
@@ -24102,14 +24874,14 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (identical(type, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'type'.");
@@ -24120,8 +24892,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(type, oldNode)) {
@@ -24149,7 +24921,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     type.accept2(visitor);
   }
 
@@ -24162,13 +24934,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(TypeAnnotationImpl)? visitType,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (visitType != null) {
       visitType(type);
@@ -24192,8 +24964,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (type._containsOffset(rangeOffset, rangeEnd)) {
       return type;
@@ -24789,8 +25561,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class ListLiteral implements TypedLiteral {
   /// The syntactic elements used to compute the elements of the list.
+  @ToBeDeprecated('Use elements2 instead.')
   NodeList<CollectionElement> get elements;
 
+  @experimental
+  NodeList<CollectionElement> get elements2;
+
   /// The left square bracket.
   Token get leftBracket;
 
@@ -24804,7 +25580,9 @@
     GenerateNodeProperty('typeArguments', isSuper: true),
     GenerateNodeProperty('leftBracket'),
     GenerateNodeProperty(
-      'elements',
+      'elements2',
+      v1Name: 'elements',
+      v1Projection: V1Projection.collectionElement,
       isNodeListFinal: false,
       isInValueExpressionSlot: true,
     ),
@@ -24817,8 +25595,15 @@
   final Token leftBracket;
 
   @generated
+  @experimental
   @override
-  NodeListImpl<CollectionElementImpl> elements = NodeListImpl._();
+  NodeListImpl<CollectionElementImpl> elements2 = NodeListImpl._();
+
+  @generated
+  @ToBeDeprecated('Use elements2 instead.')
+  @override
+  late final NodeListImpl<CollectionElementImpl> elements =
+      _V1ProjectedNodeListImpl(elements2, V1Projection.toV1CollectionElement);
 
   @generated
   @override
@@ -24829,10 +25614,14 @@
     required super.constKeyword,
     required super.typeArguments,
     required this.leftBracket,
-    required List<CollectionElementImpl> elements,
+    required List<CollectionElementImpl> elements2,
     required this.rightBracket,
   }) {
-    this.elements._initialize(this, elements);
+    this.elements2._initializeProjected(
+      this,
+      elements2,
+      V1Projection.toV1CollectionElement,
+    );
   }
 
   @generated
@@ -24868,7 +25657,7 @@
     ..addToken('constKeyword', constKeyword)
     ..addNode('typeArguments', typeArguments)
     ..addToken('leftBracket', leftBracket)
-    ..addNodeList('elements', elements)
+    ..addNodeList('elements2', elements2)
     ..addToken('rightBracket', rightBracket);
 
   @generated
@@ -24882,8 +25671,11 @@
   E? accept2<E>(AstVisitor2<E> visitor) => visitor.visitListLiteral(this);
 
   void addElements(List<CollectionElementImpl> moreElements) {
-    elements = NodeListImpl._()
-      .._initialize(this, [...elements, ...moreElements]);
+    elements2 = NodeListImpl._()
+      .._initializeProjected(this, [
+        ...elements2,
+        ...moreElements,
+      ], V1Projection.toV1CollectionElement);
     AstNodeImpl.linkNodeTokens(this);
   }
 
@@ -24901,9 +25693,9 @@
       typeArguments = null;
       return;
     }
-    if (elements.containsChild(oldNode)) {
+    if (elements2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'elements' because NodeList cannot be resized.",
+        "Cannot remove child 'elements2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -24916,7 +25708,7 @@
       typeArguments = newNode as TypeArgumentListImpl?;
       return;
     }
-    if (elements.replaceChild(oldNode, newNode)) {
+    if (elements2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -24941,7 +25733,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     typeArguments?.accept2(visitor);
-    elements.accept2(visitor);
+    elements2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -24954,7 +25746,7 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(TypeArgumentListImpl)? visitTypeArguments,
-    void Function(NodeListImpl<CollectionElementImpl>)? visitElements,
+    void Function(NodeListImpl<CollectionElementImpl>)? visitElements2,
   }) {
     if (typeArguments case var typeArguments?) {
       if (visitTypeArguments != null) {
@@ -24963,10 +25755,10 @@
         typeArguments.accept2(visitor);
       }
     }
-    if (visitElements != null) {
-      visitElements(elements);
+    if (visitElements2 != null) {
+      visitElements2(elements2);
     } else {
-      elements.accept2(visitor);
+      elements2.accept2(visitor);
     }
   }
 
@@ -24993,7 +25785,7 @@
         return typeArguments;
       }
     }
-    if (elements._elementContainingRange(rangeOffset, rangeEnd)
+    if (elements2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -25745,8 +26537,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class MapLiteralEntry implements CollectionElement {
   /// The expression computing the key with which the value is associated.
+  @ToBeDeprecated('Use key2 instead.')
   Expression get key;
 
+  @experimental
+  Expression get key2;
+
   /// The question prefix for the key that may present in null-aware map
   /// entries.
   Token? get keyQuestion;
@@ -25755,8 +26551,12 @@
   Token get separator;
 
   /// The expression computing the value that is associated with the key.
+  @ToBeDeprecated('Use value2 instead.')
   Expression get value;
 
+  @experimental
+  Expression get value2;
+
   /// The question prefix for the value that may present in null-aware map
   /// entries.
   Token? get valueQuestion;
@@ -25765,10 +26565,20 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('keyQuestion'),
-    GenerateNodeProperty('key', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'key2',
+      v1Name: 'key',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('separator'),
     GenerateNodeProperty('valueQuestion'),
-    GenerateNodeProperty('value', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'value2',
+      v1Name: 'value',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class MapLiteralEntryImpl extends AstNodeImpl
@@ -25779,7 +26589,7 @@
   final Token? keyQuestion;
 
   @generated
-  ExpressionImpl _key;
+  ExpressionImpl _key2;
 
   @generated
   @override
@@ -25790,19 +26600,21 @@
   final Token? valueQuestion;
 
   @generated
-  ExpressionImpl _value;
+  ExpressionImpl _value2;
 
   @generated
   MapLiteralEntryImpl({
     required this.keyQuestion,
-    required ExpressionImpl key,
+    required ExpressionImpl key2,
     required this.separator,
     required this.valueQuestion,
-    required ExpressionImpl value,
-  }) : _key = key,
-       _value = value {
-    _becomeParentOf12(key);
-    _becomeParentOf12(value);
+    required ExpressionImpl value2,
+  }) : _key2 = key2,
+       _value2 = value2 {
+    _becomeParentOf2(key2);
+    _becomeParentOf1(V1Projection.toV1Expression(key2));
+    _becomeParentOf2(value2);
+    _becomeParentOf1(V1Projection.toV1Expression(value2));
   }
 
   @generated
@@ -25811,31 +26623,47 @@
     if (keyQuestion case var keyQuestion?) {
       return keyQuestion;
     }
-    return key.beginToken;
+    return key2.beginToken;
   }
 
   @generated
   @override
   Token get endToken {
-    return value.endToken;
+    return value2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use key2 instead.')
   @override
-  ExpressionImpl get key => _key;
+  ExpressionImpl get key => V1Projection.toV1Expression(key2);
 
   @generated
-  set key(ExpressionImpl key) {
-    _key = _becomeParentOf12(key);
+  @experimental
+  @override
+  ExpressionImpl get key2 => _key2;
+
+  @generated
+  @experimental
+  set key2(ExpressionImpl key2) {
+    _key2 = _becomeParentOf2(key2);
+    _becomeParentOf1(V1Projection.toV1Expression(key2));
   }
 
   @generated
+  @ToBeDeprecated('Use value2 instead.')
   @override
-  ExpressionImpl get value => _value;
+  ExpressionImpl get value => V1Projection.toV1Expression(value2);
 
   @generated
-  set value(ExpressionImpl value) {
-    _value = _becomeParentOf12(value);
+  @experimental
+  @override
+  ExpressionImpl get value2 => _value2;
+
+  @generated
+  @experimental
+  set value2(ExpressionImpl value2) {
+    _value2 = _becomeParentOf2(value2);
+    _becomeParentOf1(V1Projection.toV1Expression(value2));
   }
 
   @generated
@@ -25851,10 +26679,10 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('keyQuestion', keyQuestion)
-    ..addNode('key', key)
+    ..addNode('key2', key2)
     ..addToken('separator', separator)
     ..addToken('valueQuestion', valueQuestion)
-    ..addNode('value', value);
+    ..addNode('value2', value2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -25876,11 +26704,11 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(key, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'key'.");
+    if (identical(key2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'key2'.");
     }
-    if (identical(value, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'value'.");
+    if (identical(value2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'value2'.");
     }
     super.removeChild(oldNode);
   }
@@ -25888,12 +26716,12 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(key, oldNode)) {
-      key = newNode as ExpressionImpl;
+    if (identical(key2, oldNode)) {
+      key2 = newNode as ExpressionImpl;
       return;
     }
-    if (identical(value, oldNode)) {
-      value = newNode as ExpressionImpl;
+    if (identical(value2, oldNode)) {
+      value2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -25920,8 +26748,8 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    key.accept2(visitor);
-    value.accept2(visitor);
+    key2.accept2(visitor);
+    value2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -25933,18 +26761,18 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitKey,
-    void Function(ExpressionImpl)? visitValue,
+    void Function(ExpressionImpl)? visitKey2,
+    void Function(ExpressionImpl)? visitValue2,
   }) {
-    if (visitKey != null) {
-      visitKey(key);
+    if (visitKey2 != null) {
+      visitKey2(key2);
     } else {
-      key.accept2(visitor);
+      key2.accept2(visitor);
     }
-    if (visitValue != null) {
-      visitValue(value);
+    if (visitValue2 != null) {
+      visitValue2(value2);
     } else {
-      value.accept2(visitor);
+      value2.accept2(visitor);
     }
   }
 
@@ -25963,11 +26791,11 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (key._containsOffset(rangeOffset, rangeEnd)) {
-      return key;
+    if (key2._containsOffset(rangeOffset, rangeEnd)) {
+      return key2;
     }
-    if (value._containsOffset(rangeOffset, rangeEnd)) {
-      return value;
+    if (value2._containsOffset(rangeOffset, rangeEnd)) {
+      return value2;
     }
     return null;
   }
@@ -26010,8 +26838,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class MapPatternEntry implements AstNode, MapPatternElement {
   /// The expression computing the key of the entry to be matched.
+  @ToBeDeprecated('Use key2 instead.')
   Expression get key;
 
+  @experimental
+  Expression get key2;
+
   /// The colon that separates the key from the value.
   Token get separator;
 
@@ -26021,7 +26853,12 @@
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('key', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'key2',
+      v1Name: 'key',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('separator'),
     GenerateNodeProperty('value'),
   ],
@@ -26029,7 +26866,7 @@
 final class MapPatternEntryImpl extends AstNodeImpl
     implements MapPatternElementImpl, MapPatternEntry {
   @generated
-  ExpressionImpl _key;
+  ExpressionImpl _key2;
 
   @generated
   @override
@@ -26040,19 +26877,20 @@
 
   @generated
   MapPatternEntryImpl({
-    required ExpressionImpl key,
+    required ExpressionImpl key2,
     required this.separator,
     required DartPatternImpl value,
-  }) : _key = key,
+  }) : _key2 = key2,
        _value = value {
-    _becomeParentOf12(key);
+    _becomeParentOf2(key2);
+    _becomeParentOf1(V1Projection.toV1Expression(key2));
     _becomeParentOf12(value);
   }
 
   @generated
   @override
   Token get beginToken {
-    return key.beginToken;
+    return key2.beginToken;
   }
 
   @generated
@@ -26062,12 +26900,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use key2 instead.')
   @override
-  ExpressionImpl get key => _key;
+  ExpressionImpl get key => V1Projection.toV1Expression(key2);
 
   @generated
-  set key(ExpressionImpl key) {
-    _key = _becomeParentOf12(key);
+  @experimental
+  @override
+  ExpressionImpl get key2 => _key2;
+
+  @generated
+  @experimental
+  set key2(ExpressionImpl key2) {
+    _key2 = _becomeParentOf2(key2);
+    _becomeParentOf1(V1Projection.toV1Expression(key2));
   }
 
   @generated
@@ -26089,7 +26935,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('key', key)
+    ..addNode('key2', key2)
     ..addToken('separator', separator)
     ..addNode('value', value);
 
@@ -26107,14 +26953,14 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(key, child);
+    return identical(key2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(key, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'key'.");
+    if (identical(key2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'key2'.");
     }
     if (identical(value, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'value'.");
@@ -26125,8 +26971,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(key, oldNode)) {
-      key = newNode as ExpressionImpl;
+    if (identical(key2, oldNode)) {
+      key2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(value, oldNode)) {
@@ -26148,7 +26994,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    key.accept2(visitor);
+    key2.accept2(visitor);
     value.accept2(visitor);
   }
 
@@ -26161,13 +27007,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitKey,
+    void Function(ExpressionImpl)? visitKey2,
     void Function(DartPatternImpl)? visitValue,
   }) {
-    if (visitKey != null) {
-      visitKey(key);
+    if (visitKey2 != null) {
+      visitKey2(key2);
     } else {
-      key.accept2(visitor);
+      key2.accept2(visitor);
     }
     if (visitValue != null) {
       visitValue(value);
@@ -26191,8 +27037,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (key._containsOffset(rangeOffset, rangeEnd)) {
-      return key;
+    if (key2._containsOffset(rangeOffset, rangeEnd)) {
+      return key2;
     }
     if (value._containsOffset(rangeOffset, rangeEnd)) {
       return value;
@@ -26918,7 +27764,7 @@
   /// The expression used to compute the receiver of the invocation.
   ///
   /// If this invocation isn't part of a cascade expression, then this is the
-  /// same as [target]. If this invocation is part of a cascade expression,
+  /// same as [target2]. If this invocation is part of a cascade expression,
   /// then the target stored with the cascade expression is returned.
   Expression? get realTarget;
 
@@ -26928,12 +27774,20 @@
   ///
   /// Use [realTarget] to get the target independent of whether this is part of
   /// a cascade expression.
+  @ToBeDeprecated('Use target2 instead.')
   Expression? get target;
+
+  @experimental
+  Expression? get target2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('target'),
+    GenerateNodeProperty(
+      'target2',
+      v1Name: 'target',
+      v1Projection: V1Projection.expression,
+    ),
     GenerateNodeProperty('operator', isTokenFinal: false),
     GenerateNodeProperty('methodName'),
     GenerateNodeProperty('typeArguments', isSuper: true),
@@ -26944,7 +27798,7 @@
     with DotShorthandMixin
     implements MethodInvocation {
   @generated
-  ExpressionImpl? _target;
+  ExpressionImpl? _target2;
 
   @generated
   @override
@@ -26959,22 +27813,26 @@
 
   @generated
   MethodInvocationImpl({
-    required ExpressionImpl? target,
+    required ExpressionImpl? target2,
     required this.operator,
     required SimpleIdentifierImpl methodName,
     required super.typeArguments,
     required super.argumentList,
-  }) : _target = target,
+  }) : _target2 = target2,
        _methodName = methodName {
-    _becomeParentOf12(target);
+    _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
     _becomeParentOf12(methodName);
   }
 
   @generated
   @override
   Token get beginToken {
-    if (target case var target?) {
-      return target.beginToken;
+    if (target2 case var target2?) {
+      return target2.beginToken;
     }
     if (operator case var operator?) {
       return operator;
@@ -27037,18 +27895,32 @@
   @override
   ExpressionImpl? get realTarget {
     if (isCascaded) {
-      return _ancestorCascade.target;
+      return _ancestorCascade.target2;
     }
-    return _target;
+    return _target2;
   }
 
   @generated
+  @ToBeDeprecated('Use target2 instead.')
   @override
-  ExpressionImpl? get target => _target;
+  ExpressionImpl? get target => switch (target2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set target(ExpressionImpl? target) {
-    _target = _becomeParentOf12(target);
+  @experimental
+  @override
+  ExpressionImpl? get target2 => _target2;
+
+  @generated
+  @experimental
+  set target2(ExpressionImpl? target2) {
+    _target2 = _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   /// The cascade that contains this [IndexExpression].
@@ -27075,7 +27947,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('target', target)
+    ..addNode('target2', target2)
     ..addToken('operator', operator)
     ..addNode('methodName', methodName)
     ..addNode('typeArguments', typeArguments)
@@ -27101,8 +27973,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(target, oldNode)) {
-      target = null;
+    if (identical(target2, oldNode)) {
+      target2 = null;
       return;
     }
     if (identical(methodName, oldNode)) {
@@ -27121,8 +27993,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(target, oldNode)) {
-      target = newNode as ExpressionImpl?;
+    if (identical(target2, oldNode)) {
+      target2 = newNode as ExpressionImpl?;
       return;
     }
     if (identical(methodName, oldNode)) {
@@ -27160,7 +28032,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    target?.accept2(visitor);
+    target2?.accept2(visitor);
     methodName.accept2(visitor);
     typeArguments?.accept2(visitor);
     argumentList.accept2(visitor);
@@ -27175,16 +28047,16 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitTarget,
+    void Function(ExpressionImpl)? visitTarget2,
     void Function(SimpleIdentifierImpl)? visitMethodName,
     void Function(TypeArgumentListImpl)? visitTypeArguments,
     void Function(ArgumentListImpl)? visitArgumentList,
   }) {
-    if (target case var target?) {
-      if (visitTarget != null) {
-        visitTarget(target);
+    if (target2 case var target2?) {
+      if (visitTarget2 != null) {
+        visitTarget2(target2);
       } else {
-        target.accept2(visitor);
+        target2.accept2(visitor);
       }
     }
     if (visitMethodName != null) {
@@ -27231,9 +28103,9 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (target case var target?) {
-      if (target._containsOffset(rangeOffset, rangeEnd)) {
-        return target;
+    if (target2 case var target2?) {
+      if (target2._containsOffset(rangeOffset, rangeEnd)) {
+        return target2;
       }
     }
     if (methodName._containsOffset(rangeOffset, rangeEnd)) {
@@ -27790,9 +28662,14 @@
 ///        identifier ':' [Expression]
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class NamedArgument implements Argument {
+  @ToBeDeprecated('Use argumentExpression2 instead.')
   @override
   Expression get argumentExpression;
 
+  @experimental
+  @override
+  Expression get argumentExpression2;
+
   /// The colon separating the name from the expression.
   Token get colon;
 
@@ -27804,7 +28681,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('name'),
     GenerateNodeProperty('colon'),
-    GenerateNodeProperty('argumentExpression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'argumentExpression2',
+      v1Name: 'argumentExpression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class NamedArgumentImpl extends AstNodeImpl
@@ -27819,24 +28701,34 @@
   final Token colon;
 
   @generated
-  ExpressionImpl _argumentExpression;
+  ExpressionImpl _argumentExpression2;
 
   @generated
   NamedArgumentImpl({
     required this.name,
     required this.colon,
-    required ExpressionImpl argumentExpression,
-  }) : _argumentExpression = argumentExpression {
-    _becomeParentOf12(argumentExpression);
+    required ExpressionImpl argumentExpression2,
+  }) : _argumentExpression2 = argumentExpression2 {
+    _becomeParentOf2(argumentExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(argumentExpression2));
   }
 
   @generated
+  @ToBeDeprecated('Use argumentExpression2 instead.')
   @override
-  ExpressionImpl get argumentExpression => _argumentExpression;
+  ExpressionImpl get argumentExpression =>
+      V1Projection.toV1Expression(argumentExpression2);
 
   @generated
-  set argumentExpression(ExpressionImpl argumentExpression) {
-    _argumentExpression = _becomeParentOf12(argumentExpression);
+  @experimental
+  @override
+  ExpressionImpl get argumentExpression2 => _argumentExpression2;
+
+  @generated
+  @experimental
+  set argumentExpression2(ExpressionImpl argumentExpression2) {
+    _argumentExpression2 = _becomeParentOf2(argumentExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(argumentExpression2));
   }
 
   @generated
@@ -27848,7 +28740,7 @@
   @generated
   @override
   Token get endToken {
-    return argumentExpression.endToken;
+    return argumentExpression2.endToken;
   }
 
   @generated
@@ -27863,7 +28755,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('name', name)
     ..addToken('colon', colon)
-    ..addNode('argumentExpression', argumentExpression);
+    ..addNode('argumentExpression2', argumentExpression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -27885,9 +28777,9 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(argumentExpression, oldNode)) {
+    if (identical(argumentExpression2, oldNode)) {
       throw UnsupportedError(
-        "Cannot remove required child 'argumentExpression'.",
+        "Cannot remove required child 'argumentExpression2'.",
       );
     }
     super.removeChild(oldNode);
@@ -27896,8 +28788,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(argumentExpression, oldNode)) {
-      argumentExpression = newNode as ExpressionImpl;
+    if (identical(argumentExpression2, oldNode)) {
+      argumentExpression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -27914,7 +28806,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    argumentExpression.accept2(visitor);
+    argumentExpression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -27926,12 +28818,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitArgumentExpression,
+    void Function(ExpressionImpl)? visitArgumentExpression2,
   }) {
-    if (visitArgumentExpression != null) {
-      visitArgumentExpression(argumentExpression);
+    if (visitArgumentExpression2 != null) {
+      visitArgumentExpression2(argumentExpression2);
     } else {
-      argumentExpression.accept2(visitor);
+      argumentExpression2.accept2(visitor);
     }
   }
 
@@ -27947,8 +28839,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (argumentExpression._containsOffset(rangeOffset, rangeEnd)) {
-      return argumentExpression;
+    if (argumentExpression2._containsOffset(rangeOffset, rangeEnd)) {
+      return argumentExpression2;
     }
     return null;
   }
@@ -28846,6 +29738,8 @@
 
   late final List<E> _elements;
 
+  AstNodeImpl Function(E)? _toV1;
+
   /// Initializes a newly created list of nodes such that all of the nodes that
   /// are added to the list have their parent set to the given [owner].
   NodeListImpl(AstNodeImpl owner) : _owner = owner;
@@ -28896,7 +29790,7 @@
       throw RangeError("Index: $index, Size: ${_elements.length}");
     }
     _elements[index] = node;
-    _owner._becomeParentOfOwnedView(node as AstNodeImpl);
+    _attach(node);
   }
 
   @override
@@ -28968,6 +29862,15 @@
     return false;
   }
 
+  void _attach(E node) {
+    if (_toV1 case var toV1?) {
+      _owner._becomeParentOf2(node);
+      _owner._becomeParentOf1(toV1(node));
+    } else {
+      _owner._becomeParentOfOwnedView(node);
+    }
+  }
+
   /// Returns the child of this node that completely contains the range.
   ///
   /// Returns `null` if none of the children contain the range (which means that
@@ -28995,6 +29898,11 @@
   /// Set the [owner] of this container, and populate it with [elements].
   void _initialize(AstNodeImpl owner, List<E>? elements) {
     _owner = owner;
+    _toV1 = null;
+    _initializeElements(elements);
+  }
+
+  void _initializeElements(List<E>? elements) {
     if (elements == null || elements.isEmpty) {
       _elements = const <Never>[];
     } else {
@@ -29002,10 +29910,21 @@
       var length = elements.length;
       for (var i = 0; i < length; i++) {
         var node = elements[i];
-        owner._becomeParentOfOwnedView(node as AstNodeImpl);
+        _attach(node);
       }
     }
   }
+
+  /// Initializes a V2 list that exposes a projected V1 view.
+  void _initializeProjected<V1Node extends AstNodeImpl>(
+    AstNodeImpl owner,
+    List<E>? elements,
+    V1Node Function(E) toV1,
+  ) {
+    _owner = owner;
+    _toV1 = toV1;
+    _initializeElements(elements);
+  }
 }
 
 /// A null-assert pattern.
@@ -29202,13 +30121,22 @@
   Token get question;
 
   /// The expression computing the value that is associated with the element.
+  @ToBeDeprecated('Use value2 instead.')
   Expression get value;
+
+  @experimental
+  Expression get value2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('question'),
-    GenerateNodeProperty('value', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'value2',
+      v1Name: 'value',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class NullAwareElementImpl extends AstNodeImpl
@@ -29219,12 +30147,13 @@
   final Token question;
 
   @generated
-  ExpressionImpl _value;
+  ExpressionImpl _value2;
 
   @generated
-  NullAwareElementImpl({required this.question, required ExpressionImpl value})
-    : _value = value {
-    _becomeParentOf12(value);
+  NullAwareElementImpl({required this.question, required ExpressionImpl value2})
+    : _value2 = value2 {
+    _becomeParentOf2(value2);
+    _becomeParentOf1(V1Projection.toV1Expression(value2));
   }
 
   @generated
@@ -29236,16 +30165,24 @@
   @generated
   @override
   Token get endToken {
-    return value.endToken;
+    return value2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use value2 instead.')
   @override
-  ExpressionImpl get value => _value;
+  ExpressionImpl get value => V1Projection.toV1Expression(value2);
 
   @generated
-  set value(ExpressionImpl value) {
-    _value = _becomeParentOf12(value);
+  @experimental
+  @override
+  ExpressionImpl get value2 => _value2;
+
+  @generated
+  @experimental
+  set value2(ExpressionImpl value2) {
+    _value2 = _becomeParentOf2(value2);
+    _becomeParentOf1(V1Projection.toV1Expression(value2));
   }
 
   @generated
@@ -29258,7 +30195,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('question', question)
-    ..addNode('value', value);
+    ..addNode('value2', value2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -29280,8 +30217,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(value, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'value'.");
+    if (identical(value2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'value2'.");
     }
     super.removeChild(oldNode);
   }
@@ -29289,8 +30226,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(value, oldNode)) {
-      value = newNode as ExpressionImpl;
+    if (identical(value2, oldNode)) {
+      value2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -29316,7 +30253,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    value.accept2(visitor);
+    value2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -29328,12 +30265,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitValue,
+    void Function(ExpressionImpl)? visitValue2,
   }) {
-    if (visitValue != null) {
-      visitValue(value);
+    if (visitValue2 != null) {
+      visitValue2(value2);
     } else {
-      value.accept2(visitor);
+      value2.accept2(visitor);
     }
   }
 
@@ -29349,8 +30286,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (value._containsOffset(rangeOffset, rangeEnd)) {
-      return value;
+    if (value2._containsOffset(rangeOffset, rangeEnd)) {
+      return value2;
     }
     return null;
   }
@@ -29878,8 +30815,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class ParenthesizedExpression implements Expression {
   /// The expression within the parentheses.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The left parenthesis.
   Token get leftParenthesis;
 
@@ -29890,7 +30831,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
   ],
 )
@@ -29901,7 +30847,7 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -29910,10 +30856,11 @@
   @generated
   ParenthesizedExpressionImpl({
     required this.leftParenthesis,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.rightParenthesis,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -29929,12 +30876,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -29944,9 +30899,9 @@
   ExpressionImpl get unParenthesized {
     // This is somewhat inefficient, but it avoids a stack overflow in the
     // degenerate case.
-    var expression = _expression;
+    var expression = _expression2;
     while (expression is ParenthesizedExpressionImpl) {
-      expression = expression._expression;
+      expression = expression._expression2;
     }
     return expression;
   }
@@ -29962,7 +30917,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('rightParenthesis', rightParenthesis);
 
   @generated
@@ -29987,8 +30942,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -29996,8 +30951,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -30020,7 +30975,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -30032,12 +30987,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -30053,8 +31008,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -30689,8 +31644,12 @@
   Token get equals;
 
   /// The expression that is matched by the pattern.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The pattern that matches the expression.
   DartPattern get pattern;
 }
@@ -30699,7 +31658,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('pattern'),
     GenerateNodeProperty('equals'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class PatternAssignmentImpl extends ExpressionImpl
@@ -30712,9 +31676,9 @@
   final Token equals;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
-  /// The pattern type schema, used for downward inference of [expression];
+  /// The pattern type schema, used for downward inference of [expression2];
   /// or `null` if the node isn't resolved yet.
   TypeImpl? patternTypeSchema;
 
@@ -30722,11 +31686,12 @@
   PatternAssignmentImpl({
     required DartPatternImpl pattern,
     required this.equals,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
   }) : _pattern = pattern,
-       _expression = expression {
+       _expression2 = expression2 {
     _becomeParentOf12(pattern);
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -30738,16 +31703,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -30776,7 +31749,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addNode('pattern', pattern)
     ..addToken('equals', equals)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -30792,7 +31765,7 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
@@ -30801,8 +31774,8 @@
     if (identical(pattern, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'pattern'.");
     }
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -30814,8 +31787,8 @@
       pattern = newNode as DartPatternImpl;
       return;
     }
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -30840,7 +31813,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     pattern.accept2(visitor);
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -30853,17 +31826,17 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(DartPatternImpl)? visitPattern,
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
     if (visitPattern != null) {
       visitPattern(pattern);
     } else {
       pattern.accept2(visitor);
     }
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -30885,8 +31858,8 @@
     if (pattern._containsOffset(rangeOffset, rangeEnd)) {
       return pattern;
     }
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -31230,8 +32203,12 @@
   Token get equals;
 
   /// The expression that is matched by the pattern.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The `var` or `final` keyword introducing the declaration.
   Token get keyword;
 
@@ -31244,7 +32221,12 @@
     GenerateNodeProperty('keyword'),
     GenerateNodeProperty('pattern'),
     GenerateNodeProperty('equals'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class PatternVariableDeclarationImpl extends AnnotatedNodeImpl
@@ -31261,9 +32243,9 @@
   final Token equals;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
-  /// The pattern type schema, used for downward inference of [expression];
+  /// The pattern type schema, used for downward inference of [expression2];
   /// or `null` if the node isn't resolved yet.
   TypeImpl? patternTypeSchema;
 
@@ -31277,26 +32259,35 @@
     required this.keyword,
     required DartPatternImpl pattern,
     required this.equals,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
   }) : _pattern = pattern,
-       _expression = expression {
+       _expression2 = expression2 {
     _becomeParentOf12(pattern);
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   /// If [keyword] is `final`, returns it.
@@ -31336,7 +32327,7 @@
     ..addToken('keyword', keyword)
     ..addNode('pattern', pattern)
     ..addToken('equals', equals)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -31354,7 +32345,7 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
@@ -31363,8 +32354,8 @@
     if (identical(pattern, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'pattern'.");
     }
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -31376,8 +32367,8 @@
       pattern = newNode as DartPatternImpl;
       return;
     }
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -31398,7 +32389,7 @@
   void visitChildren2(AstVisitor2 visitor) {
     _visitCommentAndAnnotations2(visitor);
     pattern.accept2(visitor);
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -31411,7 +32402,7 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(DartPatternImpl)? visitPattern,
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
     _visitCommentAndAnnotations2(visitor);
     if (visitPattern != null) {
@@ -31419,10 +32410,10 @@
     } else {
       pattern.accept2(visitor);
     }
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -31450,8 +32441,8 @@
     if (pattern._containsOffset(rangeOffset, rangeEnd)) {
       return pattern;
     }
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -31632,15 +32623,24 @@
   MethodElement? get element;
 
   /// The expression computing the operand for the operator.
+  @ToBeDeprecated('Use operand2 instead.')
   Expression get operand;
 
+  @experimental
+  Expression get operand2;
+
   /// The postfix operator being applied to the operand.
   Token get operator;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('operand', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'operand2',
+      v1Name: 'operand',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('operator'),
   ],
 )
@@ -31648,7 +32648,7 @@
     with CompoundAssignmentExpressionImpl, DotShorthandMixin
     implements PostfixExpression {
   @generated
-  ExpressionImpl _operand;
+  ExpressionImpl _operand2;
 
   @generated
   @override
@@ -31659,16 +32659,17 @@
 
   @generated
   PostfixExpressionImpl({
-    required ExpressionImpl operand,
+    required ExpressionImpl operand2,
     required this.operator,
-  }) : _operand = operand {
-    _becomeParentOf12(operand);
+  }) : _operand2 = operand2 {
+    _becomeParentOf2(operand2);
+    _becomeParentOf1(V1Projection.toV1Expression(operand2));
   }
 
   @generated
   @override
   Token get beginToken {
-    return operand.beginToken;
+    return operand2.beginToken;
   }
 
   @generated
@@ -31678,12 +32679,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use operand2 instead.')
   @override
-  ExpressionImpl get operand => _operand;
+  ExpressionImpl get operand => V1Projection.toV1Expression(operand2);
 
   @generated
-  set operand(ExpressionImpl operand) {
-    _operand = _becomeParentOf12(operand);
+  @experimental
+  @override
+  ExpressionImpl get operand2 => _operand2;
+
+  @generated
+  @experimental
+  set operand2(ExpressionImpl operand2) {
+    _operand2 = _becomeParentOf2(operand2);
+    _becomeParentOf1(V1Projection.toV1Expression(operand2));
   }
 
   @override
@@ -31698,7 +32707,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('operand', operand)
+    ..addNode('operand2', operand2)
     ..addToken('operator', operator);
 
   /// The parameter element representing the parameter to which the value of the
@@ -31739,8 +32748,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(operand, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'operand'.");
+    if (identical(operand2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'operand2'.");
     }
     super.removeChild(oldNode);
   }
@@ -31748,8 +32757,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(operand, oldNode)) {
-      operand = newNode as ExpressionImpl;
+    if (identical(operand2, oldNode)) {
+      operand2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -31772,7 +32781,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    operand.accept2(visitor);
+    operand2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -31784,12 +32793,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitOperand,
+    void Function(ExpressionImpl)? visitOperand2,
   }) {
-    if (visitOperand != null) {
-      visitOperand(operand);
+    if (visitOperand2 != null) {
+      visitOperand2(operand2);
     } else {
-      operand.accept2(visitor);
+      operand2.accept2(visitor);
     }
   }
 
@@ -31805,8 +32814,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (operand._containsOffset(rangeOffset, rangeEnd)) {
-      return operand;
+    if (operand2._containsOffset(rangeOffset, rangeEnd)) {
+      return operand2;
     }
     return null;
   }
@@ -32063,8 +33072,12 @@
   MethodElement? get element;
 
   /// The expression computing the operand for the operator.
+  @ToBeDeprecated('Use operand2 instead.')
   Expression get operand;
 
+  @experimental
+  Expression get operand2;
+
   /// The prefix operator being applied to the operand.
   Token get operator;
 }
@@ -32072,7 +33085,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('operator'),
-    GenerateNodeProperty('operand', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'operand2',
+      v1Name: 'operand',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class PrefixExpressionImpl extends ExpressionImpl
@@ -32083,7 +33101,7 @@
   final Token operator;
 
   @generated
-  ExpressionImpl _operand;
+  ExpressionImpl _operand2;
 
   @override
   MethodElement? element;
@@ -32091,9 +33109,10 @@
   @generated
   PrefixExpressionImpl({
     required this.operator,
-    required ExpressionImpl operand,
-  }) : _operand = operand {
-    _becomeParentOf12(operand);
+    required ExpressionImpl operand2,
+  }) : _operand2 = operand2 {
+    _becomeParentOf2(operand2);
+    _becomeParentOf1(V1Projection.toV1Expression(operand2));
   }
 
   @generated
@@ -32105,16 +33124,24 @@
   @generated
   @override
   Token get endToken {
-    return operand.endToken;
+    return operand2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use operand2 instead.')
   @override
-  ExpressionImpl get operand => _operand;
+  ExpressionImpl get operand => V1Projection.toV1Expression(operand2);
 
   @generated
-  set operand(ExpressionImpl operand) {
-    _operand = _becomeParentOf12(operand);
+  @experimental
+  @override
+  ExpressionImpl get operand2 => _operand2;
+
+  @generated
+  @experimental
+  set operand2(ExpressionImpl operand2) {
+    _operand2 = _becomeParentOf2(operand2);
+    _becomeParentOf1(V1Projection.toV1Expression(operand2));
   }
 
   @override
@@ -32130,7 +33157,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('operator', operator)
-    ..addNode('operand', operand);
+    ..addNode('operand2', operand2);
 
   /// The parameter element representing the parameter to which the value of the
   /// operand is bound, or `null` if the AST structure is not resolved or the
@@ -32170,8 +33197,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(operand, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'operand'.");
+    if (identical(operand2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'operand2'.");
     }
     super.removeChild(oldNode);
   }
@@ -32179,8 +33206,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(operand, oldNode)) {
-      operand = newNode as ExpressionImpl;
+    if (identical(operand2, oldNode)) {
+      operand2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -32203,7 +33230,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    operand.accept2(visitor);
+    operand2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -32215,12 +33242,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitOperand,
+    void Function(ExpressionImpl)? visitOperand2,
   }) {
-    if (visitOperand != null) {
-      visitOperand(operand);
+    if (visitOperand2 != null) {
+      visitOperand2(operand2);
     } else {
-      operand.accept2(visitor);
+      operand2.accept2(visitor);
     }
   }
 
@@ -32236,8 +33263,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (operand._containsOffset(rangeOffset, rangeEnd)) {
-      return operand;
+    if (operand2._containsOffset(rangeOffset, rangeEnd)) {
+      return operand2;
     }
     return null;
   }
@@ -32961,7 +33988,7 @@
   /// The expression used to compute the receiver of the invocation.
   ///
   /// If this invocation isn't part of a cascade expression, then this is the
-  /// same as [target]. If this invocation is part of a cascade expression,
+  /// same as [target2]. If this invocation is part of a cascade expression,
   /// then the target stored with the cascade expression is returned.
   Expression get realTarget;
 
@@ -32970,12 +33997,20 @@
   ///
   /// Use [realTarget] to get the target independent of whether this is part of
   /// a cascade expression.
+  @ToBeDeprecated('Use target2 instead.')
   Expression? get target;
+
+  @experimental
+  Expression? get target2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
-    GenerateNodeProperty('target'),
+    GenerateNodeProperty(
+      'target2',
+      v1Name: 'target',
+      v1Projection: V1Projection.expression,
+    ),
     GenerateNodeProperty('operator'),
     GenerateNodeProperty('propertyName'),
   ],
@@ -32984,7 +34019,7 @@
     with DotShorthandMixin
     implements PropertyAccess {
   @generated
-  ExpressionImpl? _target;
+  ExpressionImpl? _target2;
 
   @generated
   @override
@@ -32995,20 +34030,24 @@
 
   @generated
   PropertyAccessImpl({
-    required ExpressionImpl? target,
+    required ExpressionImpl? target2,
     required this.operator,
     required SimpleIdentifierImpl propertyName,
-  }) : _target = target,
+  }) : _target2 = target2,
        _propertyName = propertyName {
-    _becomeParentOf12(target);
+    _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
     _becomeParentOf12(propertyName);
   }
 
   @generated
   @override
   Token get beginToken {
-    if (target case var target?) {
-      return target.beginToken;
+    if (target2 case var target2?) {
+      return target2.beginToken;
     }
     return operator;
   }
@@ -33051,18 +34090,32 @@
   @override
   ExpressionImpl get realTarget {
     if (isCascaded) {
-      return _ancestorCascade.target;
+      return _ancestorCascade.target2;
     }
-    return _target!;
+    return _target2!;
   }
 
   @generated
+  @ToBeDeprecated('Use target2 instead.')
   @override
-  ExpressionImpl? get target => _target;
+  ExpressionImpl? get target => switch (target2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set target(ExpressionImpl? target) {
-    _target = _becomeParentOf12(target);
+  @experimental
+  @override
+  ExpressionImpl? get target2 => _target2;
+
+  @generated
+  @experimental
+  set target2(ExpressionImpl? target2) {
+    _target2 = _becomeParentOf2(target2);
+    _becomeParentOf1(switch (target2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   /// The cascade that contains this [IndexExpression].
@@ -33087,7 +34140,7 @@
   @generated
   @override
   ChildEntities get _childEntities2 => ChildEntities()
-    ..addNode('target', target)
+    ..addNode('target2', target2)
     ..addToken('operator', operator)
     ..addNode('propertyName', propertyName);
 
@@ -33111,8 +34164,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(target, oldNode)) {
-      target = null;
+    if (identical(target2, oldNode)) {
+      target2 = null;
       return;
     }
     if (identical(propertyName, oldNode)) {
@@ -33124,8 +34177,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(target, oldNode)) {
-      target = newNode as ExpressionImpl?;
+    if (identical(target2, oldNode)) {
+      target2 = newNode as ExpressionImpl?;
       return;
     }
     if (identical(propertyName, oldNode)) {
@@ -33153,7 +34206,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    target?.accept2(visitor);
+    target2?.accept2(visitor);
     propertyName.accept2(visitor);
   }
 
@@ -33166,14 +34219,14 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitTarget,
+    void Function(ExpressionImpl)? visitTarget2,
     void Function(SimpleIdentifierImpl)? visitPropertyName,
   }) {
-    if (target case var target?) {
-      if (visitTarget != null) {
-        visitTarget(target);
+    if (target2 case var target2?) {
+      if (visitTarget2 != null) {
+        visitTarget2(target2);
       } else {
-        target.accept2(visitor);
+        target2.accept2(visitor);
       }
     }
     if (visitPropertyName != null) {
@@ -33200,9 +34253,9 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (target case var target?) {
-      if (target._containsOffset(rangeOffset, rangeEnd)) {
-        return target;
+    if (target2 case var target2?) {
+      if (target2._containsOffset(rangeOffset, rangeEnd)) {
+        return target2;
       }
     }
     if (propertyName._containsOffset(rangeOffset, rangeEnd)) {
@@ -33224,8 +34277,12 @@
   Token? get constKeyword;
 
   /// The syntactic elements used to compute the fields of the record.
+  @ToBeDeprecated('Use fields2 instead.')
   NodeList<RecordLiteralField> get fields;
 
+  @experimental
+  NodeList<RecordLiteralField> get fields2;
+
   /// Whether this literal is a constant expression.
   ///
   /// It is a constant expression if either the keyword `const` was explicitly
@@ -33244,19 +34301,31 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class RecordLiteralField implements AstNode {
   /// The expression that computes the value for this field.
+  @ToBeDeprecated('Use fieldExpression2 instead.')
   Expression get fieldExpression;
+
+  @experimental
+  Expression get fieldExpression2;
 }
 
 base mixin RecordLiteralFieldImpl on AstNodeImpl implements RecordLiteralField {
   @override
   ExpressionImpl get fieldExpression;
+
+  @override
+  ExpressionImpl get fieldExpression2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('constKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('fields', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'fields2',
+      v1Name: 'fields',
+      v1Projection: V1Projection.recordLiteralField,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
   ],
 )
@@ -33270,8 +34339,15 @@
   final Token leftParenthesis;
 
   @generated
+  @experimental
   @override
-  final NodeListImpl<RecordLiteralFieldImpl> fields = NodeListImpl._();
+  final NodeListImpl<RecordLiteralFieldImpl> fields2 = NodeListImpl._();
+
+  @generated
+  @ToBeDeprecated('Use fields2 instead.')
+  @override
+  late final NodeListImpl<RecordLiteralFieldImpl> fields =
+      _V1ProjectedNodeListImpl(fields2, V1Projection.toV1RecordLiteralField);
 
   @generated
   @override
@@ -33281,10 +34357,14 @@
   RecordLiteralImpl({
     required this.constKeyword,
     required this.leftParenthesis,
-    required List<RecordLiteralFieldImpl> fields,
+    required List<RecordLiteralFieldImpl> fields2,
     required this.rightParenthesis,
   }) {
-    this.fields._initialize(this, fields);
+    this.fields2._initializeProjected(
+      this,
+      fields2,
+      V1Projection.toV1RecordLiteralField,
+    );
   }
 
   @generated
@@ -33318,7 +34398,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('constKeyword', constKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNodeList('fields', fields)
+    ..addNodeList('fields2', fields2)
     ..addToken('rightParenthesis', rightParenthesis);
 
   @generated
@@ -33341,9 +34421,9 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (fields.containsChild(oldNode)) {
+    if (fields2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'fields' because NodeList cannot be resized.",
+        "Cannot remove child 'fields2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -33352,7 +34432,7 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (fields.replaceChild(oldNode, newNode)) {
+    if (fields2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -33375,7 +34455,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    fields.accept2(visitor);
+    fields2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -33387,12 +34467,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(NodeListImpl<RecordLiteralFieldImpl>)? visitFields,
+    void Function(NodeListImpl<RecordLiteralFieldImpl>)? visitFields2,
   }) {
-    if (visitFields != null) {
-      visitFields(fields);
+    if (visitFields2 != null) {
+      visitFields2(fields2);
     } else {
-      fields.accept2(visitor);
+      fields2.accept2(visitor);
     }
   }
 
@@ -33409,7 +34489,7 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (fields._elementContainingRange(rangeOffset, rangeEnd)
+    if (fields2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -33425,9 +34505,14 @@
   /// The colon separating the name from the expression.
   Token get colon;
 
+  @ToBeDeprecated('Use fieldExpression2 instead.')
   @override
   Expression get fieldExpression;
 
+  @experimental
+  @override
+  Expression get fieldExpression2;
+
   /// The name associated with the expression.
   Token get name;
 }
@@ -33436,7 +34521,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('name'),
     GenerateNodeProperty('colon'),
-    GenerateNodeProperty('fieldExpression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'fieldExpression2',
+      v1Name: 'fieldExpression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class RecordLiteralNamedFieldImpl extends AstNodeImpl
@@ -33451,15 +34541,16 @@
   final Token colon;
 
   @generated
-  ExpressionImpl _fieldExpression;
+  ExpressionImpl _fieldExpression2;
 
   @generated
   RecordLiteralNamedFieldImpl({
     required this.name,
     required this.colon,
-    required ExpressionImpl fieldExpression,
-  }) : _fieldExpression = fieldExpression {
-    _becomeParentOf12(fieldExpression);
+    required ExpressionImpl fieldExpression2,
+  }) : _fieldExpression2 = fieldExpression2 {
+    _becomeParentOf2(fieldExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(fieldExpression2));
   }
 
   @generated
@@ -33471,16 +34562,25 @@
   @generated
   @override
   Token get endToken {
-    return fieldExpression.endToken;
+    return fieldExpression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use fieldExpression2 instead.')
   @override
-  ExpressionImpl get fieldExpression => _fieldExpression;
+  ExpressionImpl get fieldExpression =>
+      V1Projection.toV1Expression(fieldExpression2);
 
   @generated
-  set fieldExpression(ExpressionImpl fieldExpression) {
-    _fieldExpression = _becomeParentOf12(fieldExpression);
+  @experimental
+  @override
+  ExpressionImpl get fieldExpression2 => _fieldExpression2;
+
+  @generated
+  @experimental
+  set fieldExpression2(ExpressionImpl fieldExpression2) {
+    _fieldExpression2 = _becomeParentOf2(fieldExpression2);
+    _becomeParentOf1(V1Projection.toV1Expression(fieldExpression2));
   }
 
   @generated
@@ -33495,7 +34595,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('name', name)
     ..addToken('colon', colon)
-    ..addNode('fieldExpression', fieldExpression);
+    ..addNode('fieldExpression2', fieldExpression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -33519,8 +34619,10 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(fieldExpression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'fieldExpression'.");
+    if (identical(fieldExpression2, oldNode)) {
+      throw UnsupportedError(
+        "Cannot remove required child 'fieldExpression2'.",
+      );
     }
     super.removeChild(oldNode);
   }
@@ -33528,8 +34630,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(fieldExpression, oldNode)) {
-      fieldExpression = newNode as ExpressionImpl;
+    if (identical(fieldExpression2, oldNode)) {
+      fieldExpression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -33546,7 +34648,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    fieldExpression.accept2(visitor);
+    fieldExpression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -33558,12 +34660,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitFieldExpression,
+    void Function(ExpressionImpl)? visitFieldExpression2,
   }) {
-    if (visitFieldExpression != null) {
-      visitFieldExpression(fieldExpression);
+    if (visitFieldExpression2 != null) {
+      visitFieldExpression2(fieldExpression2);
     } else {
-      fieldExpression.accept2(visitor);
+      fieldExpression2.accept2(visitor);
     }
   }
 
@@ -33579,8 +34681,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (fieldExpression._containsOffset(rangeOffset, rangeEnd)) {
-      return fieldExpression;
+    if (fieldExpression2._containsOffset(rangeOffset, rangeEnd)) {
+      return fieldExpression2;
     }
     return null;
   }
@@ -35119,8 +36221,12 @@
   MethodElement? get element;
 
   /// The expression used to compute the operand.
+  @ToBeDeprecated('Use operand2 instead.')
   Expression get operand;
 
+  @experimental
+  Expression get operand2;
+
   /// The relational operator being applied.
   Token get operator;
 }
@@ -35128,7 +36234,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('operator'),
-    GenerateNodeProperty('operand', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'operand2',
+      v1Name: 'operand',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class RelationalPatternImpl extends DartPatternImpl
@@ -35138,7 +36249,7 @@
   final Token operator;
 
   @generated
-  ExpressionImpl _operand;
+  ExpressionImpl _operand2;
 
   @override
   MethodElement? element;
@@ -35146,9 +36257,10 @@
   @generated
   RelationalPatternImpl({
     required this.operator,
-    required ExpressionImpl operand,
-  }) : _operand = operand {
-    _becomeParentOf12(operand);
+    required ExpressionImpl operand2,
+  }) : _operand2 = operand2 {
+    _becomeParentOf2(operand2);
+    _becomeParentOf1(V1Projection.toV1Expression(operand2));
   }
 
   @generated
@@ -35160,16 +36272,24 @@
   @generated
   @override
   Token get endToken {
-    return operand.endToken;
+    return operand2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use operand2 instead.')
   @override
-  ExpressionImpl get operand => _operand;
+  ExpressionImpl get operand => V1Projection.toV1Expression(operand2);
 
   @generated
-  set operand(ExpressionImpl operand) {
-    _operand = _becomeParentOf12(operand);
+  @experimental
+  @override
+  ExpressionImpl get operand2 => _operand2;
+
+  @generated
+  @experimental
+  set operand2(ExpressionImpl operand2) {
+    _operand2 = _becomeParentOf2(operand2);
+    _becomeParentOf1(V1Projection.toV1Expression(operand2));
   }
 
   @override
@@ -35185,7 +36305,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('operator', operator)
-    ..addNode('operand', operand);
+    ..addNode('operand2', operand2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -35214,8 +36334,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(operand, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'operand'.");
+    if (identical(operand2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'operand2'.");
     }
     super.removeChild(oldNode);
   }
@@ -35223,8 +36343,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(operand, oldNode)) {
-      operand = newNode as ExpressionImpl;
+    if (identical(operand2, oldNode)) {
+      operand2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -35239,7 +36359,7 @@
     var analysisResult = resolverVisitor.analyzeRelationalPattern(
       context,
       this,
-      operand,
+      operand2,
     );
     resolverVisitor.popRewrite();
     inferenceLogWriter?.exitPattern(this);
@@ -35257,7 +36377,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    operand.accept2(visitor);
+    operand2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -35269,12 +36389,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitOperand,
+    void Function(ExpressionImpl)? visitOperand2,
   }) {
-    if (visitOperand != null) {
-      visitOperand(operand);
+    if (visitOperand2 != null) {
+      visitOperand2(operand2);
     } else {
-      operand.accept2(visitor);
+      operand2.accept2(visitor);
     }
   }
 
@@ -35290,8 +36410,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (operand._containsOffset(rangeOffset, rangeEnd)) {
-      return operand;
+    if (operand2._containsOffset(rangeOffset, rangeEnd)) {
+      return operand2;
     }
     return null;
   }
@@ -35571,8 +36691,12 @@
 abstract final class ReturnStatement implements Statement {
   /// The expression computing the value to be returned, or `null` if no
   /// explicit value was provided.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression? get expression;
 
+  @experimental
+  Expression? get expression2;
+
   /// The token representing the `return` keyword.
   Token get returnKeyword;
 
@@ -35583,7 +36707,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('returnKeyword'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('semicolon'),
   ],
 )
@@ -35594,7 +36723,7 @@
   final Token returnKeyword;
 
   @generated
-  ExpressionImpl? _expression;
+  ExpressionImpl? _expression2;
 
   @generated
   @override
@@ -35603,10 +36732,14 @@
   @generated
   ReturnStatementImpl({
     required this.returnKeyword,
-    required ExpressionImpl? expression,
+    required ExpressionImpl? expression2,
     required this.semicolon,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(switch (expression2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -35622,12 +36755,26 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl? get expression => _expression;
+  ExpressionImpl? get expression => switch (expression2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set expression(ExpressionImpl? expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl? get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl? expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(switch (expression2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @generated
@@ -35641,7 +36788,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('returnKeyword', returnKeyword)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('semicolon', semicolon);
 
   @generated
@@ -35664,8 +36811,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      expression = null;
+    if (identical(expression2, oldNode)) {
+      expression2 = null;
       return;
     }
     super.removeChild(oldNode);
@@ -35674,8 +36821,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl?;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl?;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -35692,7 +36839,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression?.accept2(visitor);
+    expression2?.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -35704,13 +36851,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (expression case var expression?) {
-      if (visitExpression != null) {
-        visitExpression(expression);
+    if (expression2 case var expression2?) {
+      if (visitExpression2 != null) {
+        visitExpression2(expression2);
       } else {
-        expression.accept2(visitor);
+        expression2.accept2(visitor);
       }
     }
   }
@@ -35729,9 +36876,9 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression case var expression?) {
-      if (expression._containsOffset(rangeOffset, rangeEnd)) {
-        return expression;
+    if (expression2 case var expression2?) {
+      if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+        return expression2;
       }
     }
     return null;
@@ -35847,8 +36994,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class SetOrMapLiteral implements TypedLiteral {
   /// The syntactic elements used to compute the elements of the set or map.
+  @ToBeDeprecated('Use elements2 instead.')
   NodeList<CollectionElement> get elements;
 
+  @experimental
+  NodeList<CollectionElement> get elements2;
+
   /// Whether this literal represents a map literal.
   ///
   /// This getter always returns `false` if [isSet] returns `true`.
@@ -35897,7 +37048,12 @@
     GenerateNodeProperty('constKeyword', isSuper: true),
     GenerateNodeProperty('typeArguments', isSuper: true),
     GenerateNodeProperty('leftBracket'),
-    GenerateNodeProperty('elements', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'elements2',
+      v1Name: 'elements',
+      v1Projection: V1Projection.collectionElement,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightBracket'),
   ],
 )
@@ -35908,8 +37064,15 @@
   final Token leftBracket;
 
   @generated
+  @experimental
   @override
-  final NodeListImpl<CollectionElementImpl> elements = NodeListImpl._();
+  final NodeListImpl<CollectionElementImpl> elements2 = NodeListImpl._();
+
+  @generated
+  @ToBeDeprecated('Use elements2 instead.')
+  @override
+  late final NodeListImpl<CollectionElementImpl> elements =
+      _V1ProjectedNodeListImpl(elements2, V1Projection.toV1CollectionElement);
 
   @generated
   @override
@@ -35927,10 +37090,14 @@
     required super.constKeyword,
     required super.typeArguments,
     required this.leftBracket,
-    required List<CollectionElementImpl> elements,
+    required List<CollectionElementImpl> elements2,
     required this.rightBracket,
   }) {
-    this.elements._initialize(this, elements);
+    this.elements2._initializeProjected(
+      this,
+      elements2,
+      V1Projection.toV1CollectionElement,
+    );
   }
 
   @generated
@@ -35972,7 +37139,7 @@
     ..addToken('constKeyword', constKeyword)
     ..addNode('typeArguments', typeArguments)
     ..addToken('leftBracket', leftBracket)
-    ..addNodeList('elements', elements)
+    ..addNodeList('elements2', elements2)
     ..addToken('rightBracket', rightBracket);
 
   @generated
@@ -36019,9 +37186,9 @@
       typeArguments = null;
       return;
     }
-    if (elements.containsChild(oldNode)) {
+    if (elements2.containsChild(oldNode)) {
       throw UnsupportedError(
-        "Cannot remove child 'elements' because NodeList cannot be resized.",
+        "Cannot remove child 'elements2' because NodeList cannot be resized.",
       );
     }
     super.removeChild(oldNode);
@@ -36034,7 +37201,7 @@
       typeArguments = newNode as TypeArgumentListImpl?;
       return;
     }
-    if (elements.replaceChild(oldNode, newNode)) {
+    if (elements2.replaceChild(oldNode, newNode)) {
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -36059,7 +37226,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     typeArguments?.accept2(visitor);
-    elements.accept2(visitor);
+    elements2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -36072,7 +37239,7 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(TypeArgumentListImpl)? visitTypeArguments,
-    void Function(NodeListImpl<CollectionElementImpl>)? visitElements,
+    void Function(NodeListImpl<CollectionElementImpl>)? visitElements2,
   }) {
     if (typeArguments case var typeArguments?) {
       if (visitTypeArguments != null) {
@@ -36081,10 +37248,10 @@
         typeArguments.accept2(visitor);
       }
     }
-    if (visitElements != null) {
-      visitElements(elements);
+    if (visitElements2 != null) {
+      visitElements2(elements2);
     } else {
-      elements.accept2(visitor);
+      elements2.accept2(visitor);
     }
   }
 
@@ -36111,7 +37278,7 @@
         return typeArguments;
       }
     }
-    if (elements._elementContainingRange(rangeOffset, rangeEnd)
+    if (elements2._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
       return result;
     }
@@ -36436,7 +37603,7 @@
       parent = initialParent.parent2!;
       target = initialParent;
     } else if (initialParent is PropertyAccess) {
-      if (identical(initialParent.target, this)) {
+      if (identical(initialParent.target2, this)) {
         return true;
       }
       parent = initialParent.parent2!;
@@ -36448,7 +37615,7 @@
     }
     // analyze usage
     if (parent is AssignmentExpression) {
-      if (identical(parent.leftHandSide, target) &&
+      if (identical(parent.leftHandSide2, target) &&
           parent.operator.type == TokenType.EQ) {
         return false;
       }
@@ -36479,7 +37646,7 @@
       parent = initialParent.parent2!;
       target = initialParent;
     } else if (initialParent is PropertyAccess) {
-      if (identical(initialParent.target, this)) {
+      if (identical(initialParent.target2, this)) {
         return false;
       }
       parent = initialParent.parent2!;
@@ -36491,7 +37658,7 @@
     } else if (parent is PostfixExpression) {
       return parent.operator.type.isIncrementOperator;
     } else if (parent is AssignmentExpression) {
-      return identical(parent.leftHandSide, target);
+      return identical(parent.leftHandSide2, target);
     } else if (parent is ForEachPartsWithIdentifier) {
       return identical(parent.identifier, target);
     }
@@ -36726,8 +37893,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class SpreadElement implements CollectionElement {
   /// The expression used to compute the collection being spread.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// Whether this is a null-aware spread, as opposed to a non-null spread.
   bool get isNullAware;
 
@@ -36738,7 +37909,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('spreadOperator'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class SpreadElementImpl extends AstNodeImpl
@@ -36749,14 +37925,15 @@
   final Token spreadOperator;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   SpreadElementImpl({
     required this.spreadOperator,
-    required ExpressionImpl expression,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+    required ExpressionImpl expression2,
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -36768,16 +37945,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -36794,7 +37979,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('spreadOperator', spreadOperator)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -36816,8 +38001,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -36825,8 +38010,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -36852,7 +38037,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -36864,12 +38049,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -36885,8 +38070,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -37881,31 +39066,41 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class SwitchCase implements SwitchMember {
   /// The expression controlling whether the statements are executed.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
+
+  @experimental
+  Expression get expression2;
 }
 
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('labels', isSuper: true),
     GenerateNodeProperty('keyword', isSuper: true),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('colon', isSuper: true),
     GenerateNodeProperty('statements', isSuper: true),
   ],
 )
 final class SwitchCaseImpl extends SwitchMemberImpl implements SwitchCase {
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   SwitchCaseImpl({
     required super.labels,
     required super.keyword,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required super.colon,
     required super.statements,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -37927,12 +39122,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -37949,7 +39152,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addNodeList('labels', labels)
     ..addToken('keyword', keyword)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('colon', colon)
     ..addNodeList('statements', statements);
 
@@ -37967,7 +39170,7 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
@@ -37978,8 +39181,8 @@
         "Cannot remove child 'labels' because NodeList cannot be resized.",
       );
     }
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (statements.containsChild(oldNode)) {
       throw UnsupportedError(
@@ -37995,8 +39198,8 @@
     if (labels.replaceChild(oldNode, newNode)) {
       return;
     }
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (statements.replaceChild(oldNode, newNode)) {
@@ -38019,7 +39222,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     labels.accept2(visitor);
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     statements.accept2(visitor);
   }
 
@@ -38033,7 +39236,7 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(NodeListImpl<LabelImpl>)? visitLabels,
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(NodeListImpl<StatementImpl>)? visitStatements,
   }) {
     if (visitLabels != null) {
@@ -38041,10 +39244,10 @@
     } else {
       labels.accept2(visitor);
     }
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (visitStatements != null) {
       visitStatements(statements);
@@ -38077,8 +39280,8 @@
         case var result?) {
       return result;
     }
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (statements._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
@@ -38272,8 +39475,12 @@
   NodeList<SwitchExpressionCase> get cases;
 
   /// The expression used to determine which of the switch cases is selected.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The left curly bracket.
   Token get leftBracket;
 
@@ -38301,9 +39508,13 @@
 
   /// The expression whose value is returned from the switch expression if the
   /// pattern matches.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
-  /// The refutable pattern that must match for the [expression] to be executed.
+  @experimental
+  Expression get expression2;
+
+  /// The refutable pattern that must match for the [expression2] to be executed.
   GuardedPattern get guardedPattern;
 }
 
@@ -38311,7 +39522,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('guardedPattern'),
     GenerateNodeProperty('arrow'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class SwitchExpressionCaseImpl extends AstNodeImpl
@@ -38325,17 +39541,18 @@
   final Token arrow;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   SwitchExpressionCaseImpl({
     required GuardedPatternImpl guardedPattern,
     required this.arrow,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
   }) : _guardedPattern = guardedPattern,
-       _expression = expression {
+       _expression2 = expression2 {
     _becomeParentOf12(guardedPattern);
-    _becomeParentOf12(expression);
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -38347,16 +39564,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -38380,7 +39605,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addNode('guardedPattern', guardedPattern)
     ..addToken('arrow', arrow)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -38398,7 +39623,7 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
@@ -38407,8 +39632,8 @@
     if (identical(guardedPattern, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'guardedPattern'.");
     }
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -38420,8 +39645,8 @@
       guardedPattern = newNode as GuardedPatternImpl;
       return;
     }
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -38440,7 +39665,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     guardedPattern.accept2(visitor);
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -38453,17 +39678,17 @@
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
     void Function(GuardedPatternImpl)? visitGuardedPattern,
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
     if (visitGuardedPattern != null) {
       visitGuardedPattern(guardedPattern);
     } else {
       guardedPattern.accept2(visitor);
     }
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -38485,8 +39710,8 @@
     if (guardedPattern._containsOffset(rangeOffset, rangeEnd)) {
       return guardedPattern;
     }
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -38496,7 +39721,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('switchKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
     GenerateNodeProperty('leftBracket'),
     GenerateNodeProperty('cases'),
@@ -38514,7 +39744,7 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -38536,13 +39766,14 @@
   SwitchExpressionImpl({
     required this.switchKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.rightParenthesis,
     required this.leftBracket,
     required List<SwitchExpressionCaseImpl> cases,
     required this.rightBracket,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
     this.cases._initialize(this, cases);
   }
 
@@ -38559,12 +39790,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -38586,7 +39825,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('switchKeyword', switchKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('rightParenthesis', rightParenthesis)
     ..addToken('leftBracket', leftBracket)
     ..addNodeList('cases', cases)
@@ -38606,14 +39845,14 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (cases.containsChild(oldNode)) {
       throw UnsupportedError(
@@ -38626,8 +39865,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (cases.replaceChild(oldNode, newNode)) {
@@ -38654,7 +39893,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     cases.accept2(visitor);
   }
 
@@ -38667,13 +39906,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(NodeListImpl<SwitchExpressionCaseImpl>)? visitCases,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (visitCases != null) {
       visitCases(cases);
@@ -38697,8 +39936,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (cases._elementContainingRange(rangeOffset, rangeEnd) case var result?) {
       return result;
@@ -39009,8 +40248,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class SwitchStatement implements Statement {
   /// The expression used to determine which of the switch members is selected.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The left curly bracket.
   Token get leftBracket;
 
@@ -39048,7 +40291,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('switchKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
     GenerateNodeProperty('leftBracket'),
     GenerateNodeProperty('members'),
@@ -39066,7 +40314,7 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -39091,13 +40339,14 @@
   SwitchStatementImpl({
     required this.switchKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.rightParenthesis,
     required this.leftBracket,
     required List<SwitchMemberImpl> members,
     required this.rightBracket,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
     this.members._initialize(this, members);
   }
 
@@ -39114,12 +40363,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -39138,7 +40395,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('switchKeyword', switchKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('rightParenthesis', rightParenthesis)
     ..addToken('leftBracket', leftBracket)
     ..addNodeList('members', members)
@@ -39158,14 +40415,14 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(expression, child);
+    return identical(expression2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     if (members.containsChild(oldNode)) {
       throw UnsupportedError(
@@ -39178,8 +40435,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     if (members.replaceChild(oldNode, newNode)) {
@@ -39200,7 +40457,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
     members.accept2(visitor);
   }
 
@@ -39213,13 +40470,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
     void Function(NodeListImpl<SwitchMemberImpl>)? visitMembers,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
     if (visitMembers != null) {
       visitMembers(members);
@@ -39244,8 +40501,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     if (members._elementContainingRange(rangeOffset, rangeEnd)
         case var result?) {
@@ -39499,8 +40756,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class ThrowExpression implements Expression {
   /// The expression computing the exception to be thrown.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The token representing the `throw` keyword.
   Token get throwKeyword;
 }
@@ -39508,7 +40769,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('throwKeyword'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class ThrowExpressionImpl extends ExpressionImpl
@@ -39518,14 +40784,15 @@
   final Token throwKeyword;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   ThrowExpressionImpl({
     required this.throwKeyword,
-    required ExpressionImpl expression,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+    required ExpressionImpl expression2,
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -39537,16 +40804,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @override
@@ -39562,7 +40837,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('throwKeyword', throwKeyword)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -39584,8 +40859,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -39593,8 +40868,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -39617,7 +40892,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -39629,12 +40904,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -39650,8 +40925,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -41120,8 +42395,17 @@
   /// Project an [ArgumentImpl] child to the V1 argument view.
   argument,
 
+  /// Project a [CollectionElementImpl] child to the V1 collection view.
+  collectionElement,
+
+  /// Project a [CommentReferableExpressionImpl] child to its V1 view.
+  commentReferableExpression,
+
   /// Project an [ExpressionImpl] child to the V1 expression view.
-  expression;
+  expression,
+
+  /// Project a [RecordLiteralFieldImpl] child to the V1 record view.
+  recordLiteralField;
 
   static ArgumentImpl toV1Argument(ArgumentImpl node) {
     if (node is ExpressionImpl) {
@@ -41130,9 +42414,33 @@
     return node;
   }
 
+  static CollectionElementImpl toV1CollectionElement(
+    CollectionElementImpl node,
+  ) {
+    if (node is ExpressionImpl) {
+      return toV1Expression(node);
+    }
+    return node;
+  }
+
+  static CommentReferableExpressionImpl toV1CommentReferableExpression(
+    CommentReferableExpressionImpl node,
+  ) {
+    return toV1Expression(node) as CommentReferableExpressionImpl;
+  }
+
   static ExpressionImpl toV1Expression(ExpressionImpl node) {
     return node;
   }
+
+  static RecordLiteralFieldImpl toV1RecordLiteralField(
+    RecordLiteralFieldImpl node,
+  ) {
+    if (node is ExpressionImpl) {
+      return toV1Expression(node);
+    }
+    return node;
+  }
 }
 
 /// An identifier that has an initial value associated with it.
@@ -41165,8 +42473,12 @@
 
   /// The expression used to compute the initial value for the variable, or
   /// `null` if the initial value isn't specified.
+  @ToBeDeprecated('Use initializer2 instead.')
   Expression? get initializer;
 
+  @experimental
+  Expression? get initializer2;
+
   /// Whether this variable was declared with the 'const' modifier.
   bool get isConst;
 
@@ -41187,7 +42499,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('name'),
     GenerateNodeProperty('equals'),
-    GenerateNodeProperty('initializer', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'initializer2',
+      v1Name: 'initializer',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class VariableDeclarationImpl extends DeclarationImpl
@@ -41201,7 +42518,7 @@
   final Token? equals;
 
   @generated
-  ExpressionImpl? _initializer;
+  ExpressionImpl? _initializer2;
 
   @override
   VariableFragmentImpl? declaredFragment;
@@ -41212,9 +42529,9 @@
   Scope? initializerScope;
 
   /// When this node is read as a part of summaries, we usually don't want
-  /// to read the [initializer], but we need to know if there is one in
+  /// to read the [initializer2], but we need to know if there is one in
   /// the code. So, this flag might be set to `true` even though
-  /// [initializer] is `null`.
+  /// [initializer2] is `null`.
   bool hasInitializer = false;
 
   @generated
@@ -41223,9 +42540,13 @@
     required super.metadata,
     required this.name,
     required this.equals,
-    required ExpressionImpl? initializer,
-  }) : _initializer = initializer {
-    _becomeParentOf12(initializer);
+    required ExpressionImpl? initializer2,
+  }) : _initializer2 = initializer2 {
+    _becomeParentOf2(initializer2);
+    _becomeParentOf1(switch (initializer2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   /// This overridden implementation of [documentationComment] looks in the
@@ -41246,8 +42567,8 @@
   @generated
   @override
   Token get endToken {
-    if (initializer case var initializer?) {
-      return initializer.endToken;
+    if (initializer2 case var initializer2?) {
+      return initializer2.endToken;
     }
     if (equals case var equals?) {
       return equals;
@@ -41262,12 +42583,26 @@
   }
 
   @generated
+  @ToBeDeprecated('Use initializer2 instead.')
   @override
-  ExpressionImpl? get initializer => _initializer;
+  ExpressionImpl? get initializer => switch (initializer2) {
+    var node? => V1Projection.toV1Expression(node),
+    _ => null,
+  };
 
   @generated
-  set initializer(ExpressionImpl? initializer) {
-    _initializer = _becomeParentOf12(initializer);
+  @experimental
+  @override
+  ExpressionImpl? get initializer2 => _initializer2;
+
+  @generated
+  @experimental
+  set initializer2(ExpressionImpl? initializer2) {
+    _initializer2 = _becomeParentOf2(initializer2);
+    _becomeParentOf1(switch (initializer2) {
+      var node? => V1Projection.toV1Expression(node),
+      _ => null,
+    });
   }
 
   @override
@@ -41300,7 +42635,7 @@
   ChildEntities get _childEntities2 => super._childEntities2
     ..addToken('name', name)
     ..addToken('equals', equals)
-    ..addNode('initializer', initializer);
+    ..addNode('initializer2', initializer2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -41323,8 +42658,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(initializer, oldNode)) {
-      initializer = null;
+    if (identical(initializer2, oldNode)) {
+      initializer2 = null;
       return;
     }
     super.removeChild(oldNode);
@@ -41333,8 +42668,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(initializer, oldNode)) {
-      initializer = newNode as ExpressionImpl?;
+    if (identical(initializer2, oldNode)) {
+      initializer2 = newNode as ExpressionImpl?;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -41353,7 +42688,7 @@
   @override
   void visitChildren2(AstVisitor2 visitor) {
     _visitCommentAndAnnotations2(visitor);
-    initializer?.accept2(visitor);
+    initializer2?.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -41365,14 +42700,14 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitInitializer,
+    void Function(ExpressionImpl)? visitInitializer2,
   }) {
     _visitCommentAndAnnotations2(visitor);
-    if (initializer case var initializer?) {
-      if (visitInitializer != null) {
-        visitInitializer(initializer);
+    if (initializer2 case var initializer2?) {
+      if (visitInitializer2 != null) {
+        visitInitializer2(initializer2);
       } else {
-        initializer.accept2(visitor);
+        initializer2.accept2(visitor);
       }
     }
   }
@@ -41397,9 +42732,9 @@
     if (super._childContainingRange2(rangeOffset, rangeEnd) case var result?) {
       return result;
     }
-    if (initializer case var initializer?) {
-      if (initializer._containsOffset(rangeOffset, rangeEnd)) {
-        return initializer;
+    if (initializer2 case var initializer2?) {
+      if (initializer2._containsOffset(rangeOffset, rangeEnd)) {
+        return initializer2;
       }
     }
     return null;
@@ -41878,8 +43213,12 @@
 abstract final class WhenClause implements AstNode {
   /// The condition that is evaluated when the pattern matches, that must
   /// evaluate to `true` in order for the [expression] to be executed.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The `when` keyword.
   Token get whenKeyword;
 }
@@ -41887,7 +43226,12 @@
 @GenerateNodeImpl(
   childEntitiesOrder: [
     GenerateNodeProperty('whenKeyword'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
   ],
 )
 final class WhenClauseImpl extends AstNodeImpl implements WhenClause {
@@ -41896,14 +43240,15 @@
   final Token whenKeyword;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   WhenClauseImpl({
     required this.whenKeyword,
-    required ExpressionImpl expression,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+    required ExpressionImpl expression2,
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -41915,16 +43260,24 @@
   @generated
   @override
   Token get endToken {
-    return expression.endToken;
+    return expression2.endToken;
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -41937,7 +43290,7 @@
   @override
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('whenKeyword', whenKeyword)
-    ..addNode('expression', expression);
+    ..addNode('expression2', expression2);
 
   @generated
   @ToBeDeprecated('Use accept2 instead.')
@@ -41959,8 +43312,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -41968,8 +43321,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -41986,7 +43339,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -41998,12 +43351,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -42019,8 +43372,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -42036,8 +43389,12 @@
   Statement get body;
 
   /// The expression used to determine whether to execute the body of the loop.
+  @ToBeDeprecated('Use condition2 instead.')
   Expression get condition;
 
+  @experimental
+  Expression get condition2;
+
   /// The left parenthesis.
   Token get leftParenthesis;
 
@@ -42052,7 +43409,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('whileKeyword'),
     GenerateNodeProperty('leftParenthesis'),
-    GenerateNodeProperty('condition', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'condition2',
+      v1Name: 'condition',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('rightParenthesis'),
     GenerateNodeProperty('body'),
   ],
@@ -42067,7 +43429,7 @@
   final Token leftParenthesis;
 
   @generated
-  ExpressionImpl _condition;
+  ExpressionImpl _condition2;
 
   @generated
   @override
@@ -42080,12 +43442,13 @@
   WhileStatementImpl({
     required this.whileKeyword,
     required this.leftParenthesis,
-    required ExpressionImpl condition,
+    required ExpressionImpl condition2,
     required this.rightParenthesis,
     required StatementImpl body,
-  }) : _condition = condition,
+  }) : _condition2 = condition2,
        _body = body {
-    _becomeParentOf12(condition);
+    _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
     _becomeParentOf12(body);
   }
 
@@ -42105,12 +43468,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use condition2 instead.')
   @override
-  ExpressionImpl get condition => _condition;
+  ExpressionImpl get condition => V1Projection.toV1Expression(condition2);
 
   @generated
-  set condition(ExpressionImpl condition) {
-    _condition = _becomeParentOf12(condition);
+  @experimental
+  @override
+  ExpressionImpl get condition2 => _condition2;
+
+  @generated
+  @experimental
+  set condition2(ExpressionImpl condition2) {
+    _condition2 = _becomeParentOf2(condition2);
+    _becomeParentOf1(V1Projection.toV1Expression(condition2));
   }
 
   @generated
@@ -42133,7 +43504,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('whileKeyword', whileKeyword)
     ..addToken('leftParenthesis', leftParenthesis)
-    ..addNode('condition', condition)
+    ..addNode('condition2', condition2)
     ..addToken('rightParenthesis', rightParenthesis)
     ..addNode('body', body);
 
@@ -42151,14 +43522,14 @@
   @override
   bool isInValueExpressionSlot(AstNode child) {
     assert(identical(child.parent2, this));
-    return identical(condition, child);
+    return identical(condition2, child);
   }
 
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(condition, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'condition'.");
+    if (identical(condition2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'condition2'.");
     }
     if (identical(body, oldNode)) {
       throw UnsupportedError("Cannot remove required child 'body'.");
@@ -42169,8 +43540,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(condition, oldNode)) {
-      condition = newNode as ExpressionImpl;
+    if (identical(condition2, oldNode)) {
+      condition2 = newNode as ExpressionImpl;
       return;
     }
     if (identical(body, oldNode)) {
@@ -42192,7 +43563,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    condition.accept2(visitor);
+    condition2.accept2(visitor);
     body.accept2(visitor);
   }
 
@@ -42205,13 +43576,13 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitCondition,
+    void Function(ExpressionImpl)? visitCondition2,
     void Function(StatementImpl)? visitBody,
   }) {
-    if (visitCondition != null) {
-      visitCondition(condition);
+    if (visitCondition2 != null) {
+      visitCondition2(condition2);
     } else {
-      condition.accept2(visitor);
+      condition2.accept2(visitor);
     }
     if (visitBody != null) {
       visitBody(body);
@@ -42235,8 +43606,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (condition._containsOffset(rangeOffset, rangeEnd)) {
-      return condition;
+    if (condition2._containsOffset(rangeOffset, rangeEnd)) {
+      return condition2;
     }
     if (body._containsOffset(rangeOffset, rangeEnd)) {
       return body;
@@ -42631,8 +44002,12 @@
 @AnalyzerPublicApi(message: 'exported by lib/dart/ast/ast.dart')
 abstract final class YieldStatement implements Statement {
   /// The expression whose value is yielded.
+  @ToBeDeprecated('Use expression2 instead.')
   Expression get expression;
 
+  @experimental
+  Expression get expression2;
+
   /// The semicolon following the expression.
   Token get semicolon;
 
@@ -42647,7 +44022,12 @@
   childEntitiesOrder: [
     GenerateNodeProperty('yieldKeyword'),
     GenerateNodeProperty('star'),
-    GenerateNodeProperty('expression', isInValueExpressionSlot: true),
+    GenerateNodeProperty(
+      'expression2',
+      v1Name: 'expression',
+      v1Projection: V1Projection.expression,
+      isInValueExpressionSlot: true,
+    ),
     GenerateNodeProperty('semicolon'),
   ],
 )
@@ -42661,7 +44041,7 @@
   final Token? star;
 
   @generated
-  ExpressionImpl _expression;
+  ExpressionImpl _expression2;
 
   @generated
   @override
@@ -42671,10 +44051,11 @@
   YieldStatementImpl({
     required this.yieldKeyword,
     required this.star,
-    required ExpressionImpl expression,
+    required ExpressionImpl expression2,
     required this.semicolon,
-  }) : _expression = expression {
-    _becomeParentOf12(expression);
+  }) : _expression2 = expression2 {
+    _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -42690,12 +44071,20 @@
   }
 
   @generated
+  @ToBeDeprecated('Use expression2 instead.')
   @override
-  ExpressionImpl get expression => _expression;
+  ExpressionImpl get expression => V1Projection.toV1Expression(expression2);
 
   @generated
-  set expression(ExpressionImpl expression) {
-    _expression = _becomeParentOf12(expression);
+  @experimental
+  @override
+  ExpressionImpl get expression2 => _expression2;
+
+  @generated
+  @experimental
+  set expression2(ExpressionImpl expression2) {
+    _expression2 = _becomeParentOf2(expression2);
+    _becomeParentOf1(V1Projection.toV1Expression(expression2));
   }
 
   @generated
@@ -42711,7 +44100,7 @@
   ChildEntities get _childEntities2 => ChildEntities()
     ..addToken('yieldKeyword', yieldKeyword)
     ..addToken('star', star)
-    ..addNode('expression', expression)
+    ..addNode('expression2', expression2)
     ..addToken('semicolon', semicolon);
 
   @generated
@@ -42734,8 +44123,8 @@
   @generated
   @override
   void removeChild(AstNodeImpl oldNode) {
-    if (identical(expression, oldNode)) {
-      throw UnsupportedError("Cannot remove required child 'expression'.");
+    if (identical(expression2, oldNode)) {
+      throw UnsupportedError("Cannot remove required child 'expression2'.");
     }
     super.removeChild(oldNode);
   }
@@ -42743,8 +44132,8 @@
   @generated
   @override
   void replaceChild(AstNodeImpl oldNode, AstNodeImpl newNode) {
-    if (identical(expression, oldNode)) {
-      expression = newNode as ExpressionImpl;
+    if (identical(expression2, oldNode)) {
+      expression2 = newNode as ExpressionImpl;
       return;
     }
     super.replaceChild(oldNode, newNode);
@@ -42761,7 +44150,7 @@
   @experimental
   @override
   void visitChildren2(AstVisitor2 visitor) {
-    expression.accept2(visitor);
+    expression2.accept2(visitor);
   }
 
   /// Visits the children of this node.
@@ -42773,12 +44162,12 @@
   @experimental
   void visitChildrenWithHooks(
     AstVisitor2 visitor, {
-    void Function(ExpressionImpl)? visitExpression,
+    void Function(ExpressionImpl)? visitExpression2,
   }) {
-    if (visitExpression != null) {
-      visitExpression(expression);
+    if (visitExpression2 != null) {
+      visitExpression2(expression2);
     } else {
-      expression.accept2(visitor);
+      expression2.accept2(visitor);
     }
   }
 
@@ -42794,8 +44183,8 @@
   @generated
   @override
   AstNodeImpl? _childContainingRange2(int rangeOffset, int rangeEnd) {
-    if (expression._containsOffset(rangeOffset, rangeEnd)) {
-      return expression;
+    if (expression2._containsOffset(rangeOffset, rangeEnd)) {
+      return expression2;
     }
     return null;
   }
@@ -43072,16 +44461,15 @@
   unresolved,
 }
 
-// ignore: unused_element
 final class _V1ProjectedNodeListImpl<
   V2Node extends AstNodeImpl,
   V1Node extends AstNodeImpl
 >
     extends NodeListImpl<V1Node> {
   final NodeListImpl<V2Node> _base;
-  final V1Node Function(V2Node node) _toV1;
+  final V1Node Function(V2Node node) _project;
 
-  _V1ProjectedNodeListImpl(this._base, this._toV1) : super._();
+  _V1ProjectedNodeListImpl(this._base, this._project) : super._();
 
   @override
   Token? get beginToken {
@@ -43113,7 +44501,7 @@
 
   @override
   V1Node operator [](int index) {
-    return _toV1(_base[index]);
+    return _project(_base[index]);
   }
 
   @override
@@ -43155,7 +44543,7 @@
   @override
   AstNodeImpl? _elementContainingRange(int rangeOffset, int rangeEnd) {
     if (_base._elementContainingRange(rangeOffset, rangeEnd) case var result?) {
-      return _toV1(result as V2Node);
+      return _project(result as V2Node);
     }
     return null;
   }
diff --git a/pkg/analyzer/lib/src/dart/ast/extensions.dart b/pkg/analyzer/lib/src/dart/ast/extensions.dart
index 1132a6b..a71eaf3 100644
--- a/pkg/analyzer/lib/src/dart/ast/extensions.dart
+++ b/pkg/analyzer/lib/src/dart/ast/extensions.dart
@@ -14,13 +14,13 @@
 Element? _readElement(AstNode node) {
   var parent = node.parent2;
 
-  if (parent is AssignmentExpression && parent.leftHandSide == node) {
+  if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
     return parent.readElement;
   }
-  if (parent is PostfixExpression && parent.operand == node) {
+  if (parent is PostfixExpression && parent.operand2 == node) {
     return parent.readElement;
   }
-  if (parent is PrefixExpression && parent.operand == node) {
+  if (parent is PrefixExpression && parent.operand2 == node) {
     return parent.readElement;
   }
 
@@ -37,13 +37,13 @@
 Element? _writeElement(AstNode node) {
   var parent = node.parent2;
 
-  if (parent is AssignmentExpression && parent.leftHandSide == node) {
+  if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
     return parent.writeElement;
   }
-  if (parent is PostfixExpression && parent.operand == node) {
+  if (parent is PostfixExpression && parent.operand2 == node) {
     return parent.writeElement;
   }
-  if (parent is PrefixExpression && parent.operand == node) {
+  if (parent is PrefixExpression && parent.operand2 == node) {
     return parent.writeElement;
   }
 
@@ -60,13 +60,13 @@
 DartType? _writeType(AstNode node) {
   var parent = node.parent2;
 
-  if (parent is AssignmentExpression && parent.leftHandSide == node) {
+  if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
     return parent.writeType;
   }
-  if (parent is PostfixExpression && parent.operand == node) {
+  if (parent is PostfixExpression && parent.operand2 == node) {
     return parent.writeType;
   }
-  if (parent is PrefixExpression && parent.operand == node) {
+  if (parent is PrefixExpression && parent.operand2 == node) {
     return parent.writeType;
   }
 
@@ -81,14 +81,14 @@
 
 extension ArgumentListExtension on ArgumentList {
   /// Returns the named argument with the given [name], or `null` if none.
-  NamedArgument? byName(String name) => arguments
+  NamedArgument? byName(String name) => arguments2
       .whereType<NamedArgument>()
       .firstWhereOrNull((e) => e.name.lexeme == name);
 
   /// Returns the argument with the given [index], or `null` if none.
   Argument? elementAtOrNull(int index) {
-    if (index < arguments.length) {
-      return arguments[index];
+    if (index < arguments2.length) {
+      return arguments2[index];
     }
     return null;
   }
diff --git a/pkg/analyzer/lib/src/dart/ast/invokes_super_self.dart b/pkg/analyzer/lib/src/dart/ast/invokes_super_self.dart
index 04b0da9..9888982 100644
--- a/pkg/analyzer/lib/src/dart/ast/invokes_super_self.dart
+++ b/pkg/analyzer/lib/src/dart/ast/invokes_super_self.dart
@@ -17,9 +17,9 @@
   @override
   void visitAssignmentExpression(AssignmentExpression node) {
     if (_usage == _Usage.writing) {
-      var left = node.leftHandSide;
+      var left = node.leftHandSide2;
       if (left is PropertyAccess) {
-        if (left.target is SuperExpression && left.propertyName.name == name) {
+        if (left.target2 is SuperExpression && left.propertyName.name == name) {
           hasSuperInvocation = true;
           return;
         }
@@ -31,7 +31,8 @@
   @override
   void visitBinaryExpression(BinaryExpression node) {
     if (_usage == _Usage.reading) {
-      if (node.leftOperand is SuperExpression && node.operator.lexeme == name) {
+      if (node.leftOperand2 is SuperExpression &&
+          node.operator.lexeme == name) {
         hasSuperInvocation = true;
         return;
       }
@@ -42,7 +43,7 @@
   @override
   void visitMethodInvocation(MethodInvocation node) {
     if (_usage == _Usage.reading) {
-      if (node.target is SuperExpression && node.methodName.name == name) {
+      if (node.target2 is SuperExpression && node.methodName.name == name) {
         hasSuperInvocation = true;
         return;
       }
@@ -54,10 +55,10 @@
   void visitPropertyAccess(PropertyAccess node) {
     if (_usage == _Usage.reading) {
       var parent = node.parent2;
-      if (parent is AssignmentExpression && parent.leftHandSide == node) {
+      if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
         // Not reading, skip.
       } else {
-        if (node.target is SuperExpression && node.propertyName.name == name) {
+        if (node.target2 is SuperExpression && node.propertyName.name == name) {
           hasSuperInvocation = true;
           return;
         }
diff --git a/pkg/analyzer/lib/src/dart/ast/mixin_super_invoked_names.dart b/pkg/analyzer/lib/src/dart/ast/mixin_super_invoked_names.dart
index 7d96b1d..281b16f 100644
--- a/pkg/analyzer/lib/src/dart/ast/mixin_super_invoked_names.dart
+++ b/pkg/analyzer/lib/src/dart/ast/mixin_super_invoked_names.dart
@@ -14,7 +14,7 @@
 
   @override
   void visitBinaryExpression(BinaryExpression node) {
-    if (node.leftOperand is SuperExpression) {
+    if (node.leftOperand2 is SuperExpression) {
       _names.add(node.operator.lexeme);
     }
     super.visitBinaryExpression(node);
@@ -22,7 +22,7 @@
 
   @override
   void visitIndexExpression(IndexExpression node) {
-    if (node.target is SuperExpression) {
+    if (node.target2 is SuperExpression) {
       if (node.inGetterContext()) {
         _names.add('[]');
       }
@@ -35,7 +35,7 @@
 
   @override
   void visitMethodInvocation(MethodInvocation node) {
-    if (node.target is SuperExpression) {
+    if (node.target2 is SuperExpression) {
       _names.add(node.methodName.name);
     }
     super.visitMethodInvocation(node);
@@ -43,7 +43,7 @@
 
   @override
   void visitPrefixExpression(PrefixExpression node) {
-    if (node.operand is SuperExpression) {
+    if (node.operand2 is SuperExpression) {
       TokenType operatorType = node.operator.type;
       if (operatorType == TokenType.MINUS) {
         _names.add('unary-');
@@ -56,7 +56,7 @@
 
   @override
   void visitPropertyAccess(PropertyAccess node) {
-    if (node.target is SuperExpression) {
+    if (node.target2 is SuperExpression) {
       var name = node.propertyName.name;
       if (node.propertyName.inGetterContext()) {
         _names.add(name);
diff --git a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
index 8183437..d3ba6b8 100644
--- a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
@@ -42,13 +42,13 @@
   void visitAnonymousExpressionBody(AnonymousExpressionBody node) {
     sink.write(node.functionDefinition.lexeme);
     sink.write(' ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
   @experimental
   void visitAnonymousMethodInvocation(AnonymousMethodInvocation node) {
-    _visitNode(node.target);
+    _visitNode(node.target2);
     _visitToken(node.operator);
     _visitNode(node.parameters);
     if (node.parameters != null) {
@@ -60,13 +60,13 @@
   @override
   void visitArgumentList(ArgumentList node) {
     sink.write('(');
-    _visitNodeList(node.arguments, separator: ', ');
+    _visitNodeList(node.arguments2, separator: ', ');
     sink.write(')');
   }
 
   @override
   void visitAsExpression(AsExpression node) {
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     sink.write(' as ');
     _visitNode(node.type);
   }
@@ -74,10 +74,10 @@
   @override
   void visitAssertInitializer(AssertInitializer node) {
     sink.write('assert (');
-    _visitNode(node.condition);
-    if (node.message != null) {
+    _visitNode(node.condition2);
+    if (node.message2 != null) {
       sink.write(', ');
-      _visitNode(node.message);
+      _visitNode(node.message2);
     }
     sink.write(')');
   }
@@ -85,10 +85,10 @@
   @override
   void visitAssertStatement(AssertStatement node) {
     sink.write('assert (');
-    _visitNode(node.condition);
-    if (node.message != null) {
+    _visitNode(node.condition2);
+    if (node.message2 != null) {
       sink.write(', ');
-      _visitNode(node.message);
+      _visitNode(node.message2);
     }
     sink.write(');');
   }
@@ -100,26 +100,26 @@
 
   @override
   void visitAssignmentExpression(AssignmentExpression node) {
-    _visitNode(node.leftHandSide);
+    _visitNode(node.leftHandSide2);
     sink.write(' ');
     sink.write(node.operator.lexeme);
     sink.write(' ');
-    _visitNode(node.rightHandSide);
+    _visitNode(node.rightHandSide2);
   }
 
   @override
   void visitAwaitExpression(AwaitExpression node) {
     sink.write('await ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
   void visitBinaryExpression(BinaryExpression node) {
-    _writeOperand(node, node.leftOperand);
+    _writeOperand(node, node.leftOperand2);
     sink.write(' ');
     sink.write(node.operator.lexeme);
     sink.write(' ');
-    _writeOperand(node, node.rightOperand);
+    _writeOperand(node, node.rightOperand2);
   }
 
   @override
@@ -172,8 +172,8 @@
 
   @override
   void visitCascadeExpression(CascadeExpression node) {
-    _visitNode(node.target);
-    _visitNodeList(node.cascadeSections);
+    _visitNode(node.target2);
+    _visitNodeList(node.cascadeSections2);
   }
 
   @override
@@ -255,7 +255,7 @@
   @override
   void visitCommentReference(CommentReference node) {
     sink.write(node.newKeyword?.lexeme ?? '');
-    _visitNode(prefix: '[', node.expression, suffix: ']');
+    _visitNode(prefix: '[', node.expression2, suffix: ']');
   }
 
   @override
@@ -271,11 +271,11 @@
 
   @override
   void visitConditionalExpression(ConditionalExpression node) {
-    _visitNode(node.condition);
+    _visitNode(node.condition2);
     sink.write(' ? ');
-    _visitNode(node.thenExpression);
+    _visitNode(node.thenExpression2);
     sink.write(' : ');
-    _visitNode(node.elseExpression);
+    _visitNode(node.elseExpression2);
   }
 
   @override
@@ -290,7 +290,7 @@
   @override
   void visitConstantPattern(ConstantPattern node) {
     _visitToken(node.constKeyword, suffix: ' ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
@@ -318,7 +318,7 @@
     _visitToken(node.thisKeyword, suffix: '.');
     _visitNode(node.fieldName);
     sink.write(' = ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
@@ -373,7 +373,7 @@
     sink.write('do ');
     _visitNode(node.body);
     sink.write(' while (');
-    _visitNode(node.condition);
+    _visitNode(node.condition2);
     sink.write(');');
   }
 
@@ -481,7 +481,7 @@
       sink.write(' ');
     }
     sink.write('${node.functionDefinition.lexeme} ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     if (node.semicolon != null) {
       sink.write(';');
     }
@@ -489,7 +489,7 @@
 
   @override
   void visitExpressionStatement(ExpressionStatement node) {
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     sink.write(';');
   }
 
@@ -586,7 +586,7 @@
     sink.write('for (');
     _visitNode(node.forLoopParts);
     sink.write(') ');
-    _visitNode(node.body);
+    _visitNode(node.body2);
   }
 
   @override
@@ -595,7 +595,7 @@
       sink.write(' ');
     }
     sink.write(node.separator.lexeme);
-    _visitNode(node.value, prefix: ' ');
+    _visitNode(node.value2, prefix: ' ');
   }
 
   @override
@@ -617,16 +617,16 @@
     sink.write(';');
     _visitNode(node.condition, prefix: ' ');
     sink.write(';');
-    _visitNodeList(node.updaters, prefix: ' ', separator: ', ');
+    _visitNodeList(node.updaters2, prefix: ' ', separator: ', ');
   }
 
   @override
   void visitForPartsWithExpression(ForPartsWithExpression node) {
-    _visitNode(node.initialization);
+    _visitNode(node.initialization2);
     sink.write(';');
     _visitNode(node.condition, prefix: ' ');
     sink.write(';');
-    _visitNodeList(node.updaters, prefix: ' ', separator: ', ');
+    _visitNodeList(node.updaters2, prefix: ' ', separator: ', ');
   }
 
   @override
@@ -635,7 +635,7 @@
     sink.write('; ');
     _visitNode(node.condition);
     sink.write('; ');
-    _visitNodeList(node.updaters, separator: ', ');
+    _visitNodeList(node.updaters2, separator: ', ');
   }
 
   @override
@@ -674,14 +674,14 @@
 
   @override
   void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
-    _visitNode(node.function);
+    _visitNode(node.function2);
     _visitNode(node.typeArguments);
     _visitNode(node.argumentList);
   }
 
   @override
   void visitFunctionReference(FunctionReference node) {
-    _visitNode(node.function);
+    _visitNode(node.function2);
     _visitNode(node.typeArguments);
   }
 
@@ -746,17 +746,17 @@
   @override
   void visitIfElement(IfElement node) {
     sink.write('if (');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     _visitNode(node.caseClause, prefix: ' ');
     sink.write(') ');
-    _visitNode(node.thenElement);
-    _visitNode(node.elseElement, prefix: ' else ');
+    _visitNode(node.thenElement2);
+    _visitNode(node.elseElement2, prefix: ' else ');
   }
 
   @override
   void visitIfStatement(IfStatement node) {
     sink.write('if (');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     _visitNode(node.caseClause, prefix: ' ');
     sink.write(') ');
     _visitNode(node.thenStatement);
@@ -771,7 +771,7 @@
 
   @override
   void visitImplicitCallReference(ImplicitCallReference node) {
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     _visitNode(node.typeArguments);
   }
 
@@ -800,11 +800,11 @@
     if (node.isCascaded) {
       _visitToken(node.period);
     } else {
-      _visitNode(node.target);
+      _visitNode(node.target2);
     }
     _visitToken(node.question);
     _visitToken(node.leftBracket);
-    _visitNode(node.index);
+    _visitNode(node.index2);
     _visitToken(node.rightBracket);
   }
 
@@ -824,11 +824,11 @@
   void visitInterpolationExpression(InterpolationExpression node) {
     if (node.rightBracket != null) {
       sink.write('\${');
-      _visitNode(node.expression);
+      _visitNode(node.expression2);
       sink.write('}');
     } else {
       sink.write('\$');
-      _visitNode(node.expression);
+      _visitNode(node.expression2);
     }
   }
 
@@ -839,7 +839,7 @@
 
   @override
   void visitIsExpression(IsExpression node) {
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     if (node.notOperator == null) {
       sink.write(' is ');
     } else {
@@ -878,7 +878,7 @@
     _visitToken(node.constKeyword, suffix: ' ');
     _visitNode(node.typeArguments);
     sink.write('[');
-    _visitNodeList(node.elements, separator: ', ');
+    _visitNodeList(node.elements2, separator: ', ');
     sink.write(']');
   }
 
@@ -910,9 +910,9 @@
 
   @override
   void visitMapLiteralEntry(MapLiteralEntry node) {
-    _visitNode(node.key);
+    _visitNode(node.key2);
     sink.write(' : ');
-    _visitNode(node.value);
+    _visitNode(node.value2);
   }
 
   @override
@@ -925,7 +925,7 @@
 
   @override
   void visitMapPatternEntry(MapPatternEntry node) {
-    _visitNode(node.key);
+    _visitNode(node.key2);
     sink.write(': ');
     _visitNode(node.value);
   }
@@ -949,7 +949,7 @@
 
   @override
   void visitMethodInvocation(MethodInvocation node) {
-    _visitNode(node.target);
+    _visitNode(node.target2);
     _visitToken(node.operator);
     _visitNode(node.methodName);
     _visitNode(node.typeArguments);
@@ -979,7 +979,7 @@
   void visitNamedArgument(NamedArgument node) {
     _visitToken(node.name);
     _visitToken(node.colon);
-    _visitNode(node.argumentExpression, prefix: ' ');
+    _visitNode(node.argumentExpression2, prefix: ' ');
   }
 
   @override
@@ -1020,7 +1020,7 @@
   @override
   void visitNullAwareElement(NullAwareElement node) {
     sink.write(node.question.lexeme);
-    _visitNode(node.value);
+    _visitNode(node.value2);
   }
 
   @override
@@ -1045,7 +1045,7 @@
   @override
   void visitParenthesizedExpression(ParenthesizedExpression node) {
     sink.write('(');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     sink.write(')');
   }
 
@@ -1077,7 +1077,7 @@
   void visitPatternAssignment(PatternAssignment node) {
     _visitNode(node.pattern);
     sink.write(' = ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
@@ -1099,7 +1099,7 @@
     sink.write(' ');
     _visitNode(node.pattern);
     sink.write(' = ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
@@ -1112,7 +1112,7 @@
 
   @override
   void visitPostfixExpression(PostfixExpression node) {
-    _writeOperand(node, node.operand);
+    _writeOperand(node, node.operand2);
     sink.write(node.operator.lexeme);
   }
 
@@ -1126,7 +1126,7 @@
   @override
   void visitPrefixExpression(PrefixExpression node) {
     sink.write(node.operator.lexeme);
-    _writeOperand(node, node.operand);
+    _writeOperand(node, node.operand2);
   }
 
   @override
@@ -1160,7 +1160,7 @@
     if (node.isCascaded) {
       sink.write(node.operator.lexeme);
     } else {
-      _visitNode(node.target);
+      _visitNode(node.target2);
       sink.write(node.operator.lexeme);
     }
     _visitNode(node.propertyName);
@@ -1169,7 +1169,7 @@
   @override
   void visitRecordLiteral(RecordLiteral node) {
     _visitToken(node.leftParenthesis);
-    _visitNodeList(node.fields, separator: ', ');
+    _visitNodeList(node.fields2, separator: ', ');
     _visitToken(node.rightParenthesis);
   }
 
@@ -1177,7 +1177,7 @@
   void visitRecordLiteralNamedField(RecordLiteralNamedField node) {
     _visitToken(node.name);
     _visitToken(node.colon);
-    _visitNode(node.fieldExpression, prefix: ' ');
+    _visitNode(node.fieldExpression2, prefix: ' ');
   }
 
   @override
@@ -1260,7 +1260,7 @@
   void visitRelationalPattern(RelationalPattern node) {
     sink.write(node.operator.lexeme);
     sink.write(' ');
-    _visitNode(node.operand);
+    _visitNode(node.operand2);
   }
 
   @override
@@ -1276,7 +1276,7 @@
 
   @override
   void visitReturnStatement(ReturnStatement node) {
-    var expression = node.expression;
+    var expression = node.expression2;
     if (expression == null) {
       sink.write('return;');
     } else {
@@ -1296,7 +1296,7 @@
     _visitToken(node.constKeyword, suffix: ' ');
     _visitNode(node.typeArguments);
     sink.write('{');
-    _visitNodeList(node.elements, separator: ', ');
+    _visitNodeList(node.elements2, separator: ', ');
     sink.write('}');
   }
 
@@ -1319,7 +1319,7 @@
   @override
   void visitSpreadElement(SpreadElement node) {
     sink.write(node.spreadOperator.lexeme);
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
@@ -1352,7 +1352,7 @@
   void visitSwitchCase(SwitchCase node) {
     _visitNodeList(node.labels, separator: ' ', suffix: ' ');
     sink.write('case ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     sink.write(': ');
     _visitNodeList(node.statements, separator: ' ');
   }
@@ -1367,7 +1367,7 @@
   @override
   void visitSwitchExpression(SwitchExpression node) {
     sink.write('switch (');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     sink.write(') {');
     _visitNodeList(node.cases, separator: ', ');
     sink.write('}');
@@ -1377,7 +1377,7 @@
   void visitSwitchExpressionCase(SwitchExpressionCase node) {
     _visitNode(node.guardedPattern);
     sink.write(' => ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
@@ -1392,7 +1392,7 @@
   @override
   void visitSwitchStatement(SwitchStatement node) {
     sink.write('switch (');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     sink.write(') {');
     _visitNodeList(node.members, separator: ' ');
     sink.write('}');
@@ -1418,7 +1418,7 @@
   @override
   void visitThrowExpression(ThrowExpression node) {
     sink.write('throw ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
@@ -1474,7 +1474,7 @@
   void visitVariableDeclaration(VariableDeclaration node) {
     _visitNodeList(node.metadata, separator: ' ', suffix: ' ');
     _visitToken(node.name);
-    _visitNode(node.initializer, prefix: ' = ');
+    _visitNode(node.initializer2, prefix: ' = ');
   }
 
   @override
@@ -1495,13 +1495,13 @@
   @override
   void visitWhenClause(WhenClause node) {
     sink.write('when ');
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
   }
 
   @override
   void visitWhileStatement(WhileStatement node) {
     sink.write('while (');
-    _visitNode(node.condition);
+    _visitNode(node.condition2);
     sink.write(') ');
     _visitNode(node.body);
   }
@@ -1526,7 +1526,7 @@
     } else {
       sink.write('yield ');
     }
-    _visitNode(node.expression);
+    _visitNode(node.expression2);
     sink.write(';');
   }
 
diff --git a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
index c73d7b4..5439caa 100644
--- a/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
+++ b/pkg/analyzer/lib/src/dart/constant/constant_verifier.dart
@@ -134,7 +134,7 @@
 
   @override
   void visitConstantPattern(covariant ConstantPatternImpl node) {
-    var expression = node.expression.unParenthesized;
+    var expression = node.expression2.unParenthesized;
     if (expression.typeOrThrow is InvalidType) {
       return;
     }
@@ -300,7 +300,7 @@
         diagnosticCode: diag.nonConstantListElement,
         listElementType: elementType,
       );
-      for (var element in node.elements) {
+      for (var element in node.elements2) {
         verifier.verify(element);
       }
     }
@@ -328,7 +328,7 @@
     for (var element in node.elements) {
       element.accept2(this);
       if (element is MapPatternEntry) {
-        var key = element.key;
+        var key = element.key2;
         var keyValue = _evaluateAndReportError(
           key,
           diag.nonConstantMapPatternKey,
@@ -394,9 +394,9 @@
     super.visitRecordLiteral(node);
 
     if (node.isConst) {
-      for (var field in node.fields) {
+      for (var field in node.fields2) {
         _evaluateAndReportError(
-          field.fieldExpression,
+          field.fieldExpression2,
           diag.nonConstantRecordField,
         );
       }
@@ -408,7 +408,7 @@
     super.visitRelationalPattern(node);
 
     _evaluateAndReportError(
-      node.operand,
+      node.operand2,
       diag.nonConstantRelationalPatternExpression,
     );
   }
@@ -426,7 +426,7 @@
           diagnosticCode: diag.nonConstantSetElement,
           setConfig: config,
         );
-        for (CollectionElement element in node.elements) {
+        for (CollectionElement element in node.elements2) {
           verifier.verify(element);
         }
         for (var duplicateEntry in config.duplicateElements.entries) {
@@ -450,7 +450,7 @@
           diagnosticCode: diag.nonConstantMapElement,
           mapConfig: config,
         );
-        for (var entry in node.elements) {
+        for (var entry in node.elements2) {
           verifier.verify(entry);
         }
         for (var duplicateEntry in config.duplicateKeys.entries) {
@@ -473,7 +473,7 @@
       _validateSwitchExhaustiveness(
         node: node,
         switchKeyword: node.switchKeyword,
-        scrutinee: node.expression,
+        scrutinee: node.expression2,
         caseNodes: node.cases,
         mapPatternKeyValues: mapPatternKeyValues,
         constantPatternValues: constantPatternValues,
@@ -491,12 +491,12 @@
         _validateSwitchExhaustiveness(
           node: node,
           switchKeyword: node.switchKeyword,
-          scrutinee: node.expression,
+          scrutinee: node.expression2,
           caseNodes: node.members,
           mapPatternKeyValues: mapPatternKeyValues,
           constantPatternValues: constantPatternValues,
           mustBeExhaustive: _typeSystem.isAlwaysExhaustive(
-            node.expression.typeOrThrow,
+            node.expression2.typeOrThrow,
           ),
           isSwitchExpression: false,
         );
@@ -509,7 +509,7 @@
   @override
   void visitVariableDeclaration(covariant VariableDeclarationImpl node) {
     super.visitVariableDeclaration(node);
-    var initializer = node.initializer;
+    var initializer = node.initializer2;
     if (initializer != null && (node.isConst || node.isFinal)) {
       var element = node.declaredFragment!.element;
       if (element is FieldElementImpl && !element.isStatic) {
@@ -811,8 +811,8 @@
   /// Validates that all arguments in the [argumentList] are potentially
   /// constant expressions.
   void _reportNotPotentialConstantsArguments(ArgumentList argumentList) {
-    for (var argument in argumentList.arguments) {
-      _reportNotPotentialConstants(argument.argumentExpression);
+    for (var argument in argumentList.arguments2) {
+      _reportNotPotentialConstants(argument.argumentExpression2);
     }
   }
 
@@ -824,8 +824,8 @@
 
   /// Validates that the arguments in [argumentList] are constant expressions.
   void _validateConstantArguments(ArgumentList argumentList) {
-    for (var argument in argumentList.arguments) {
-      var realArgument = argument.argumentExpression;
+    for (var argument in argumentList.arguments2) {
+      var realArgument = argument.argumentExpression2;
       _evaluateAndReportError(realArgument, diag.constWithNonConstantArgument);
     }
   }
@@ -836,13 +836,13 @@
   ) {
     for (ConstructorInitializer initializer in initializers) {
       if (initializer is AssertInitializer) {
-        _reportNotPotentialConstants(initializer.condition);
-        var message = initializer.message;
+        _reportNotPotentialConstants(initializer.condition2);
+        var message = initializer.message2;
         if (message != null) {
           _reportNotPotentialConstants(message);
         }
       } else if (initializer is ConstructorFieldInitializer) {
-        _reportNotPotentialConstants(initializer.expression);
+        _reportNotPotentialConstants(initializer.expression2);
       } else if (initializer is RedirectingConstructorInvocation) {
         _reportNotPotentialConstantsArguments(initializer.argumentList);
       } else if (initializer is SuperConstructorInvocation) {
@@ -867,7 +867,7 @@
       _currentLibrary,
       node,
       constructor.returnType.typeArguments,
-      argumentList.arguments,
+      argumentList.arguments2,
       constructor,
       constantVisitor,
     );
@@ -895,7 +895,7 @@
     }
     for (var formalParameter in parameters.allFormalParameters) {
       if (formalParameter.defaultClause case var defaultClause?) {
-        var defaultValue = defaultClause.value;
+        var defaultValue = defaultClause.value2;
         Constant? result;
         if (defaultValue.typeOrThrow is InvalidType) {
           // We have already reported an error.
@@ -928,7 +928,7 @@
               variableDeclaration.name.lexeme == 'values') {
             continue;
           }
-          var initializer = variableDeclaration.initializer;
+          var initializer = variableDeclaration.initializer2;
           if (initializer != null) {
             // Ignore any diagnostics produced during validation--if the
             // constant can't be evaluated we'll just report a single error.
@@ -975,7 +975,7 @@
             continue;
           }
 
-          var initializer = variableDeclaration.initializer;
+          var initializer = variableDeclaration.initializer2;
           if (initializer == null) {
             continue;
           }
@@ -1175,14 +1175,14 @@
 
     for (var switchMember in node.members) {
       if (switchMember is SwitchCase) {
-        validateExpression(switchMember.expression);
+        validateExpression(switchMember.expression2);
       } else if (switchMember is SwitchPatternCase) {
         if (_currentLibrary.featureSet.isEnabled(Feature.patterns)) {
           switchMember.accept2(this);
         } else {
           var pattern = switchMember.guardedPattern.pattern;
           if (pattern is ConstantPattern) {
-            validateExpression(pattern.expression.unParenthesized);
+            validateExpression(pattern.expression2.unParenthesized);
           }
         }
       }
@@ -1243,7 +1243,7 @@
       return false;
     } else if (element is IfElement) {
       var conditionConstant = verifier._evaluateAndReportError(
-        element.expression,
+        element.expression2,
         diagnosticCode,
       );
       if (conditionConstant is! DartObjectImpl) {
@@ -1257,8 +1257,8 @@
 
       var thenValid = true;
       var elseValid = true;
-      var thenElement = element.thenElement;
-      var elseElement = element.elseElement;
+      var thenElement = element.thenElement2;
+      var elseElement = element.elseElement2;
 
       if (conditionValue == null) {
         thenValid = _reportNotPotentialConstants(thenElement);
@@ -1288,7 +1288,7 @@
       return _validateMapLiteralEntry(element);
     } else if (element is SpreadElement) {
       var value = verifier._evaluateAndReportError(
-        element.expression,
+        element.expression2,
         diagnosticCode,
       );
       if (value is! DartObjectImpl) return false;
@@ -1305,7 +1305,7 @@
       return true;
     } else if (element is NullAwareElement) {
       var value = verifier._evaluateAndReportError(
-        element.value,
+        element.value2,
         diagnosticCode,
       );
       if (value is! DartObjectImpl) return false;
@@ -1314,7 +1314,7 @@
       if (listElementType != null) {
         return _validateListExpression(
           verifier._typeSystem.makeNullable(listElementType),
-          element.value,
+          element.value2,
           value,
         );
       }
@@ -1323,7 +1323,7 @@
       // added as an element.
       var setConfig = this.setConfig;
       if (setConfig != null && !value.type.isDartCoreNull) {
-        return _validateSetExpression(setConfig, element.value, value);
+        return _validateSetExpression(setConfig, element.value2, value);
       }
 
       return true;
@@ -1353,7 +1353,7 @@
           parent = parent.parent2
         ) {
           if (parent is MapLiteralEntry) {
-            if (parent.key == notConst) {
+            if (parent.key2 == notConst) {
               diagnosticCode = diag.nonConstantMapKey;
             } else {
               diagnosticCode = diag.nonConstantMapValue;
@@ -1419,7 +1419,7 @@
       // [ConstantVisitor._addElementsToList] and the other similar
       // _addElementsTo methods..
       verifier._diagnosticReporter.report(
-        diag.constSpreadExpectedListOrSet.at(element.expression),
+        diag.constSpreadExpectedListOrSet.at(element.expression2),
       );
       return false;
     }
@@ -1442,7 +1442,7 @@
     }
 
     for (var item in iterableValue) {
-      Expression expression = element.expression;
+      Expression expression = element.expression2;
       var existingValue = setConfig.uniqueValues[item];
       if (existingValue != null) {
         setConfig.duplicateElements[expression] = existingValue;
@@ -1458,8 +1458,8 @@
     var config = mapConfig;
     if (config == null) return false;
 
-    var keyExpression = entry.key;
-    var valueExpression = entry.value;
+    var keyExpression = entry.key2;
+    var valueExpression = entry.value2;
 
     var isKeyNullAware = entry.keyQuestion != null;
     var isValueNullAware = entry.valueQuestion != null;
@@ -1583,15 +1583,15 @@
       for (var keyValue in map.keys) {
         var existingKey = config.uniqueKeys[keyValue];
         if (existingKey != null) {
-          config.duplicateKeys[element.expression] = existingKey;
+          config.duplicateKeys[element.expression2] = existingKey;
         } else {
-          config.uniqueKeys[keyValue] = element.expression;
+          config.uniqueKeys[keyValue] = element.expression2;
         }
       }
       return true;
     }
     verifier._diagnosticReporter.report(
-      diag.constSpreadExpectedMap.at(element.expression),
+      diag.constSpreadExpectedMap.at(element.expression2),
     );
     return false;
   }
@@ -1673,11 +1673,12 @@
     AstNode child = this;
     var parent = child.parent2;
     while (parent != null) {
-      if (parent is FormalParameterDefaultClause && child == parent.value) {
+      if (parent is FormalParameterDefaultClause && child == parent.value2) {
         // A parameter default value does not constitute a constant context, but
         // must be a constant expression.
         return true;
-      } else if (parent is VariableDeclaration && child == parent.initializer) {
+      } else if (parent is VariableDeclaration &&
+          child == parent.initializer2) {
         var declarationList = parent.parent2;
         if (declarationList is VariableDeclarationList) {
           var declarationListParent = declarationList.parent2;
diff --git a/pkg/analyzer/lib/src/dart/constant/evaluation.dart b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
index 0fbb0f7..9f96a2d 100644
--- a/pkg/analyzer/lib/src/dart/constant/evaluation.dart
+++ b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
@@ -202,7 +202,7 @@
           library,
           constNode,
           element.returnType.typeArguments,
-          constNode.arguments!.arguments,
+          constNode.arguments!.arguments2,
           element,
           constantVisitor,
         );
@@ -659,7 +659,7 @@
 
   @override
   Constant visitAsExpression(AsExpression node) {
-    var expression = evaluateConstant(node.expression);
+    var expression = evaluateConstant(node.expression2);
     if (expression is! DartObjectImpl) {
       return expression;
     }
@@ -688,14 +688,14 @@
     }
 
     TokenType operatorType = node.operator.type;
-    var leftResult = evaluateConstant(node.leftOperand);
+    var leftResult = evaluateConstant(node.leftOperand2);
     if (leftResult is! DartObjectImpl) {
       return leftResult;
     }
 
     // Used for the [DartObjectComputer], which will handle any exceptions.
     DartObjectImpl computeRightOperand() {
-      var constant = evaluateConstant(node.rightOperand);
+      var constant = evaluateConstant(node.rightOperand2);
       switch (constant) {
         case DartObjectImpl():
           return constant;
@@ -707,7 +707,7 @@
     // Evaluate lazy operators.
     if (operatorType == TokenType.AMPERSAND_AMPERSAND) {
       if (leftResult.toBoolValue() == false) {
-        var error = _reportNotPotentialConstants(node.rightOperand);
+        var error = _reportNotPotentialConstants(node.rightOperand2);
         if (error is InvalidConstant) {
           return error;
         }
@@ -715,7 +715,7 @@
       return _dartObjectComputer.lazyAnd(node, leftResult, computeRightOperand);
     } else if (operatorType == TokenType.BAR_BAR) {
       if (leftResult.toBoolValue() == true) {
-        var error = _reportNotPotentialConstants(node.rightOperand);
+        var error = _reportNotPotentialConstants(node.rightOperand2);
         if (error is InvalidConstant) {
           return error;
         }
@@ -723,7 +723,7 @@
       return _dartObjectComputer.lazyOr(node, leftResult, computeRightOperand);
     } else if (operatorType == TokenType.QUESTION_QUESTION) {
       if (!leftResult.isNull) {
-        var error = _reportNotPotentialConstants(node.rightOperand);
+        var error = _reportNotPotentialConstants(node.rightOperand2);
         if (error is InvalidConstant) {
           return error;
         }
@@ -731,12 +731,12 @@
       return _dartObjectComputer.lazyQuestionQuestion(
         node,
         leftResult,
-        () => evaluateConstant(node.rightOperand),
+        () => evaluateConstant(node.rightOperand2),
       );
     }
 
     // Evaluate eager operators.
-    var rightResult = evaluateConstant(node.rightOperand);
+    var rightResult = evaluateConstant(node.rightOperand2);
     if (rightResult is! DartObjectImpl) {
       return rightResult;
     }
@@ -802,7 +802,7 @@
 
   @override
   Constant visitConditionalExpression(ConditionalExpression node) {
-    var condition = node.condition;
+    var condition = node.condition2;
     var conditionConstant = evaluateConstant(condition);
     if (conditionConstant is! DartObjectImpl) {
       return conditionConstant;
@@ -824,23 +824,23 @@
 
     var conditionResultBool = conditionConstant.toBoolValue();
     if (conditionResultBool == true) {
-      var error = _reportNotPotentialConstants(node.elseExpression);
+      var error = _reportNotPotentialConstants(node.elseExpression2);
       if (error is InvalidConstant) {
         return error;
       }
-      return evaluateConstant(node.thenExpression);
+      return evaluateConstant(node.thenExpression2);
     } else if (conditionResultBool == false) {
-      var error = _reportNotPotentialConstants(node.thenExpression);
+      var error = _reportNotPotentialConstants(node.thenExpression2);
       if (error is InvalidConstant) {
         return error;
       }
-      return evaluateConstant(node.elseExpression);
+      return evaluateConstant(node.elseExpression2);
     } else {
-      var thenConstant = evaluateConstant(node.thenExpression);
+      var thenConstant = evaluateConstant(node.thenExpression2);
       if (thenConstant is InvalidConstant) {
         return thenConstant;
       }
-      var elseConstant = evaluateConstant(node.elseExpression);
+      var elseConstant = evaluateConstant(node.elseExpression2);
       if (elseConstant is InvalidConstant) {
         return elseConstant;
       }
@@ -912,7 +912,7 @@
         _library,
         node,
         constructor.returnType.typeArguments,
-        node.argumentList.arguments,
+        node.argumentList.arguments2,
         constructor,
         this,
       );
@@ -954,7 +954,7 @@
 
   @override
   Constant visitFunctionReference(covariant FunctionReferenceImpl node) {
-    var functionResult = evaluateConstant(node.function);
+    var functionResult = evaluateConstant(node.function2);
     if (functionResult is! DartObjectImpl) {
       return functionResult;
     }
@@ -1017,7 +1017,7 @@
     return _dartObjectComputer.typeInstantiate(
       functionResult,
       typeArguments,
-      node.function,
+      node.function2,
       typeArgumentList,
     );
   }
@@ -1055,7 +1055,7 @@
       _library,
       node,
       constructor.returnType.typeArguments,
-      node.argumentList.arguments,
+      node.argumentList.arguments2,
       constructor,
       this,
     );
@@ -1079,7 +1079,7 @@
 
   @override
   Constant visitInterpolationExpression(InterpolationExpression node) {
-    var result = evaluateConstant(node.expression);
+    var result = evaluateConstant(node.expression2);
     if (result is! DartObjectImpl) {
       return result;
     }
@@ -1104,7 +1104,7 @@
 
   @override
   Constant visitIsExpression(IsExpression node) {
-    var expression = evaluateConstant(node.expression);
+    var expression = evaluateConstant(node.expression2);
     if (expression is! DartObjectImpl) {
       return expression;
     }
@@ -1130,7 +1130,7 @@
         : _typeProvider.dynamicType;
     var listType = _typeProvider.listType(elementType);
     var list = <DartObjectImpl>[];
-    return _buildListConstant(list, node.elements, typeSystem, listType);
+    return _buildListConstant(list, node.elements2, typeSystem, listType);
   }
 
   @override
@@ -1138,7 +1138,7 @@
     var element = node.methodName.element;
     if (element is TopLevelFunctionElementImpl) {
       if (element.isDartCoreIdentical) {
-        var arguments = node.argumentList.arguments;
+        var arguments = node.argumentList.arguments2;
         var leftArgument = evaluateConstant(arguments[0]);
         if (leftArgument is! DartObjectImpl) {
           return leftArgument;
@@ -1160,7 +1160,7 @@
 
   @override
   Constant visitNamedArgument(NamedArgument node) =>
-      evaluateConstant(node.argumentExpression);
+      evaluateConstant(node.argumentExpression2);
 
   @override
   Constant visitNamedType(NamedType node) {
@@ -1203,7 +1203,7 @@
 
   @override
   Constant visitParenthesizedExpression(ParenthesizedExpression node) =>
-      evaluateConstant(node.expression);
+      evaluateConstant(node.expression2);
 
   @override
   Constant visitPrefixedIdentifier(covariant PrefixedIdentifierImpl node) {
@@ -1261,7 +1261,7 @@
         );
     }
 
-    var operand = evaluateConstant(node.operand);
+    var operand = evaluateConstant(node.operand2);
     if (operand is! DartObjectImpl) {
       return operand;
     }
@@ -1280,7 +1280,7 @@
 
   @override
   Constant visitPropertyAccess(covariant PropertyAccessImpl node) {
-    var target = node.target;
+    var target = node.target2;
     if (target != null) {
       if (target is PrefixedIdentifierImpl &&
           (target.element is ExtensionElement ||
@@ -1325,10 +1325,10 @@
   Constant visitRecordLiteral(RecordLiteral node) {
     var positionalFields = <DartObjectImpl>[];
     var namedFields = <String, DartObjectImpl>{};
-    for (var field in node.fields) {
+    for (var field in node.fields2) {
       if (field is RecordLiteralNamedField) {
         var name = field.name.lexeme;
-        var value = evaluateConstant(field.fieldExpression);
+        var value = evaluateConstant(field.fieldExpression2);
         if (value is! DartObjectImpl) {
           return value;
         }
@@ -1392,7 +1392,7 @@
       }
       var mapType = _typeProvider.mapType(keyType, valueType);
       var map = <DartObjectImpl, DartObjectImpl>{};
-      var result = _buildMapConstant(map, node.elements, typeSystem, mapType);
+      var result = _buildMapConstant(map, node.elements2, typeSystem, mapType);
       if (result is InvalidConstant && !node.isMap) {
         // We don't report the error if we know this is an ambiguous map or
         // set. [CompileTimeErrorCode.AMBIGUOUS_SET_OR_MAP_LITERAL_BOTH]
@@ -1415,7 +1415,7 @@
           : _typeProvider.dynamicType;
       var setType = _typeProvider.setType(elementType);
       var set = <DartObjectImpl>{};
-      return _buildSetConstant(set, node.elements, typeSystem, setType);
+      return _buildSetConstant(set, node.elements2, typeSystem, setType);
     }
   }
 
@@ -1498,7 +1498,7 @@
             locatableDiagnostic: diag.constEvalForElement,
           );
         case IfElement():
-          var condition = evaluateConstant(element.expression);
+          var condition = evaluateConstant(element.expression2);
           switch (condition) {
             case InvalidConstant():
               return condition;
@@ -1516,20 +1516,20 @@
               Constant? branchResult;
               if (conditionValue == null) {
                 return InvalidConstant.forEntity(
-                  entity: element.expression,
+                  entity: element.expression2,
                   locatableDiagnostic: diag.nonBoolCondition,
                 );
               } else if (conditionValue) {
                 branchResult = _buildListConstant(
                   list,
-                  [element.thenElement],
+                  [element.thenElement2],
                   typeSystem,
                   listType,
                 );
-              } else if (element.elseElement != null) {
+              } else if (element.elseElement2 != null) {
                 branchResult = _buildListConstant(
                   list,
-                  [element.elseElement!],
+                  [element.elseElement2!],
                   typeSystem,
                   listType,
                 );
@@ -1544,7 +1544,7 @@
             locatableDiagnostic: diag.mapEntryNotInMap,
           );
         case SpreadElement():
-          var spread = evaluateConstant(element.expression);
+          var spread = evaluateConstant(element.expression2);
           switch (spread) {
             case InvalidConstant():
               return spread;
@@ -1556,14 +1556,14 @@
               var listValue = spread.toListValue() ?? spread.toSetValue();
               if (listValue == null) {
                 return InvalidConstant.forEntity(
-                  entity: element.expression,
+                  entity: element.expression2,
                   locatableDiagnostic: diag.constSpreadExpectedListOrSet,
                 );
               }
               list.addAll(listValue);
           }
         case NullAwareElement():
-          var value = evaluateConstant(element.value);
+          var value = evaluateConstant(element.value2);
           switch (value) {
             case InvalidConstant():
               return value;
@@ -1573,7 +1573,7 @@
               }
               var result = _buildListConstant(
                 list,
-                [element.value],
+                [element.value2],
                 typeSystem,
                 listType,
               );
@@ -1617,7 +1617,7 @@
             locatableDiagnostic: diag.constEvalForElement,
           );
         case IfElement():
-          var condition = evaluateConstant(element.expression);
+          var condition = evaluateConstant(element.expression2);
           switch (condition) {
             case InvalidConstant():
               return condition;
@@ -1636,20 +1636,20 @@
               var conditionValue = condition.toBoolValue();
               if (conditionValue == null) {
                 return InvalidConstant.forEntity(
-                  entity: element.expression,
+                  entity: element.expression2,
                   locatableDiagnostic: diag.nonBoolCondition,
                 );
               } else if (conditionValue) {
                 branchResult = _buildMapConstant(
                   map,
-                  [element.thenElement],
+                  [element.thenElement2],
                   typeSystem,
                   mapType,
                 );
-              } else if (element.elseElement != null) {
+              } else if (element.elseElement2 != null) {
                 branchResult = _buildMapConstant(
                   map,
-                  [element.elseElement!],
+                  [element.elseElement2!],
                   typeSystem,
                   mapType,
                 );
@@ -1659,8 +1659,8 @@
               }
           }
         case MapLiteralEntry():
-          var keyResult = evaluateConstant(element.key);
-          var valueResult = evaluateConstant(element.value);
+          var keyResult = evaluateConstant(element.key2);
+          var valueResult = evaluateConstant(element.value2);
           switch (keyResult) {
             case InvalidConstant():
               return keyResult;
@@ -1673,7 +1673,7 @@
               }
           }
         case SpreadElement():
-          var spread = evaluateConstant(element.expression);
+          var spread = evaluateConstant(element.expression2);
           switch (spread) {
             case InvalidConstant():
               return spread;
@@ -1685,7 +1685,7 @@
               var mapValue = spread.toMapValue();
               if (mapValue == null) {
                 return InvalidConstant.forEntity(
-                  entity: element.expression,
+                  entity: element.expression2,
                   locatableDiagnostic: diag.constSpreadExpectedMap,
                 );
               }
@@ -1740,7 +1740,7 @@
             locatableDiagnostic: diag.constEvalForElement,
           );
         case IfElement():
-          var condition = evaluateConstant(element.expression);
+          var condition = evaluateConstant(element.expression2);
           switch (condition) {
             case InvalidConstant():
               return condition;
@@ -1758,20 +1758,20 @@
               var conditionValue = condition.toBoolValue();
               if (conditionValue == null) {
                 return InvalidConstant.forEntity(
-                  entity: element.expression,
+                  entity: element.expression2,
                   locatableDiagnostic: diag.nonBoolCondition,
                 );
               } else if (conditionValue) {
                 branchResult = _buildSetConstant(
                   set,
-                  [element.thenElement],
+                  [element.thenElement2],
                   typeSystem,
                   setType,
                 );
-              } else if (element.elseElement != null) {
+              } else if (element.elseElement2 != null) {
                 branchResult = _buildSetConstant(
                   set,
-                  [element.elseElement!],
+                  [element.elseElement2!],
                   typeSystem,
                   setType,
                 );
@@ -1786,7 +1786,7 @@
             locatableDiagnostic: diag.mapEntryNotInMap,
           );
         case SpreadElement():
-          var spread = evaluateConstant(element.expression);
+          var spread = evaluateConstant(element.expression2);
           switch (spread) {
             case InvalidConstant():
               return spread;
@@ -1798,14 +1798,14 @@
               var setValue = spread.toSetValue() ?? spread.toListValue();
               if (setValue == null) {
                 return InvalidConstant.forEntity(
-                  entity: element.expression,
+                  entity: element.expression2,
                   locatableDiagnostic: diag.constSpreadExpectedListOrSet,
                 );
               }
               set.addAll(setValue);
           }
         case NullAwareElement():
-          var value = evaluateConstant(element.value);
+          var value = evaluateConstant(element.value2);
           switch (value) {
             case InvalidConstant():
               return value;
@@ -1815,7 +1815,7 @@
               }
               var result = _buildSetConstant(
                 set,
-                [element.value],
+                [element.value2],
                 typeSystem,
                 setType,
               );
@@ -2108,14 +2108,14 @@
           return diag.constInitializedWithNonConstantValueFromDeferredLibrary;
         } else if (current is FormalParameterDefaultClause) {
           return diag.nonConstantDefaultValueFromDeferredLibrary;
-        } else if (current is IfElement && current.expression == node) {
+        } else if (current is IfElement && current.expression2 == node) {
           return diag.ifElementConditionFromDeferredLibrary;
         } else if (current is InstanceCreationExpression) {
           return diag.constConstructorConstantFromDeferredLibrary;
         } else if (current is ListLiteral) {
           return diag.nonConstantListElementFromDeferredLibrary;
         } else if (current is MapLiteralEntry) {
-          if (previous == current.key) {
+          if (previous == current.key2) {
             return diag.nonConstantMapKeyFromDeferredLibrary;
           } else {
             return diag.nonConstantMapValueFromDeferredLibrary;
@@ -3141,7 +3141,7 @@
     List<Argument>? superArguments;
     for (var initializer in constructorBase.constantInitializers) {
       if (initializer is ConstructorFieldInitializer) {
-        var initializerExpression = initializer.expression;
+        var initializerExpression = initializer.expression2;
         var evaluationResult = _initializerVisitor.evaluateConstant(
           initializerExpression,
         );
@@ -3218,7 +3218,7 @@
         if (name != null) {
           superName = name.name;
         }
-        superArguments = initializer.argumentList.arguments.toList();
+        superArguments = initializer.argumentList.arguments2.toList();
       } else if (initializer is RedirectingConstructorInvocationImpl) {
         // This is a redirecting constructor, so just evaluate the constructor
         // it redirects to.
@@ -3233,7 +3233,7 @@
             _library,
             _errorNode,
             _typeArguments,
-            initializer.argumentList.arguments,
+            initializer.argumentList.arguments2,
             constructor,
             _initializerVisitor,
             invocation: _invocation,
@@ -3245,7 +3245,7 @@
           );
         }
       } else if (initializer is AssertInitializer) {
-        var condition = initializer.condition;
+        var condition = initializer.condition2;
         var evaluationResult = _initializerVisitor.evaluateConstant(condition);
         switch (evaluationResult) {
           case DartObjectImpl():
@@ -3254,7 +3254,7 @@
               InvalidConstant? invalidConstant;
 
               // Adds the assert message if we are able to evaluate it.
-              if (initializer.message case var message?) {
+              if (initializer.message2 case var message?) {
                 var messageConstant = _initializerVisitor.evaluateConstant(
                   message,
                 );
@@ -3611,7 +3611,7 @@
         var parameterType =
             argument.correspondingParameter?.type ?? InvalidTypeImpl.instance;
         var argumentConstant = constantVisitor._valueOf(
-          argument.argumentExpression,
+          argument.argumentExpression2,
           parameterType,
         );
         if (argumentConstant is! DartObjectImpl) {
diff --git a/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart b/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart
index f2d232b..616bd0d 100644
--- a/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart
+++ b/pkg/analyzer/lib/src/dart/constant/potentially_constant.dart
@@ -86,7 +86,7 @@
     if (node is StringInterpolation) {
       for (var component in node.elements) {
         if (component is InterpolationExpression) {
-          collect(component.expression);
+          collect(component.expression2);
         }
       }
       return;
@@ -108,7 +108,7 @@
     }
 
     if (node is ParenthesizedExpression) {
-      collect(node.expression);
+      collect(node.expression2);
       return;
     }
 
@@ -121,16 +121,16 @@
     }
 
     if (node is NamedArgument) {
-      return collect(node.argumentExpression);
+      return collect(node.argumentExpression2);
     }
 
     if (node is RecordLiteralNamedField) {
-      return collect(node.fieldExpression);
+      return collect(node.fieldExpression2);
     }
 
     if (node is BinaryExpression) {
-      collect(node.leftOperand);
-      collect(node.rightOperand);
+      collect(node.leftOperand2);
+      collect(node.rightOperand2);
       return;
     }
 
@@ -139,7 +139,7 @@
       if (operator == TokenType.BANG ||
           operator == TokenType.MINUS ||
           operator == TokenType.TILDE) {
-        collect(node.operand);
+        collect(node.operand2);
         return;
       }
       nodes.add(node);
@@ -147,9 +147,9 @@
     }
 
     if (node is ConditionalExpression) {
-      collect(node.condition);
-      collect(node.thenExpression);
-      collect(node.elseExpression);
+      collect(node.condition2);
+      collect(node.thenExpression2);
+      collect(node.elseExpression2);
       return;
     }
 
@@ -167,7 +167,7 @@
           nodes.add(node.type);
         }
       }
-      collect(node.expression);
+      collect(node.expression2);
       return;
     }
 
@@ -181,26 +181,26 @@
           nodes.add(node.type);
         }
       }
-      collect(node.expression);
+      collect(node.expression2);
       return;
     }
 
     if (node is MapLiteralEntry) {
-      collect(node.key);
-      collect(node.value);
+      collect(node.key2);
+      collect(node.value2);
       return;
     }
 
     if (node is SpreadElement) {
-      collect(node.expression);
+      collect(node.expression2);
       return;
     }
 
     if (node is IfElement) {
-      collect(node.expression);
-      collect(node.thenElement);
-      if (node.elseElement != null) {
-        collect(node.elseElement!);
+      collect(node.expression2);
+      collect(node.thenElement2);
+      if (node.elseElement2 != null) {
+        collect(node.elseElement2!);
       }
       return;
     }
@@ -212,7 +212,7 @@
 
     if (node is FunctionReference) {
       _typeArgumentList(node.typeArguments);
-      collect(node.function);
+      collect(node.function2);
       return;
     }
 
@@ -301,7 +301,7 @@
   }
 
   void _methodInvocation(MethodInvocation node) {
-    var arguments = node.argumentList.arguments;
+    var arguments = node.argumentList.arguments2;
     if (arguments.length == 2) {
       var element = node.methodName.element;
       if (element is TopLevelFunctionElement && element.isDartCoreIdentical) {
@@ -316,7 +316,7 @@
 
   void _propertyAccess(PropertyAccess node) {
     // CascadeExpression is not a constant, so the target is never null.
-    var target = node.target!;
+    var target = node.target2!;
 
     if (node.propertyName.name == 'length') {
       collect(target);
@@ -348,7 +348,7 @@
   }
 
   void _recordLiteral(RecordLiteral node) {
-    for (var field in node.fields) {
+    for (var field in node.fields2) {
       collect(field);
     }
   }
@@ -379,7 +379,7 @@
         }
       }
 
-      for (var element in node.elements) {
+      for (var element in node.elements2) {
         collect(element);
       }
       return;
@@ -405,7 +405,7 @@
         }
       }
 
-      for (var element in node.elements) {
+      for (var element in node.elements2) {
         collect(element);
       }
     }
diff --git a/pkg/analyzer/lib/src/dart/constant/utilities.dart b/pkg/analyzer/lib/src/dart/constant/utilities.dart
index eefb355..43a35d2 100644
--- a/pkg/analyzer/lib/src/dart/constant/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/constant/utilities.dart
@@ -23,7 +23,7 @@
 
   @override
   visitConstantPattern(ConstantPattern node) {
-    _find(node.expression);
+    _find(node.expression2);
   }
 
   @override
@@ -57,7 +57,7 @@
 
   @override
   void visitMapPatternEntry(MapPatternEntry node) {
-    _find(node.key);
+    _find(node.key2);
     super.visitMapPatternEntry(node);
   }
 
@@ -72,7 +72,7 @@
 
   @override
   void visitRelationalPattern(RelationalPattern node) {
-    _find(node.operand);
+    _find(node.operand2);
   }
 
   @override
@@ -82,13 +82,13 @@
     } else {
       if (node.isMap) {
         // Values of keys are computed to check that they are unique.
-        for (var entry in node.elements) {
+        for (var entry in node.elements2) {
           // TODO(mfairhurst): How do if/for loops/spreads affect this?
           _find(entry);
         }
       } else if (node.isSet) {
         // values of sets are computed to check that they are unique.
-        for (var entry in node.elements) {
+        for (var entry in node.elements2) {
           _find(entry);
         }
       }
@@ -98,7 +98,7 @@
 
   @override
   void visitSwitchCase(SwitchCase node) {
-    _find(node.expression);
+    _find(node.expression2);
     node.statements.accept2(this);
   }
 
@@ -210,7 +210,7 @@
   @override
   void visitVariableDeclaration(covariant VariableDeclarationImpl node) {
     super.visitVariableDeclaration(node);
-    var initializer = node.initializer;
+    var initializer = node.initializer2;
     var element = node.declaredFragment!.element;
     if (initializer != null &&
         (node.isConst ||
@@ -223,7 +223,7 @@
       if (element.constantInitializer case var constantInitializer?) {
         configuration.addErrorNode(
           fromElement: constantInitializer,
-          fromAst: node.initializer,
+          fromAst: node.initializer2,
         );
       }
     }
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 64f2ac5..5fc7bc8 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -606,7 +606,7 @@
             : null,
         argumentList: ArgumentListImpl(
           leftParenthesis: Tokens.openParenthesis(),
-          arguments: superInvocationArguments,
+          arguments2: superInvocationArguments,
           rightParenthesis: Tokens.closeParenthesis(),
         ),
       );
diff --git a/pkg/analyzer/lib/src/dart/element/since_sdk_version.dart b/pkg/analyzer/lib/src/dart/element/since_sdk_version.dart
index 5831e02..b51b472 100644
--- a/pkg/analyzer/lib/src/dart/element/since_sdk_version.dart
+++ b/pkg/analyzer/lib/src/dart/element/since_sdk_version.dart
@@ -51,7 +51,7 @@
     Version? result;
     for (var annotation in annotations) {
       if (annotation.isDartInternalSince) {
-        var arguments = annotation.annotationAst.arguments?.arguments;
+        var arguments = annotation.annotationAst.arguments?.arguments2;
         var versionNode = arguments?.singleOrNull;
         if (versionNode is SimpleStringLiteralImpl) {
           var versionStr = versionNode.value;
diff --git a/pkg/analyzer/lib/src/dart/micro/utils.dart b/pkg/analyzer/lib/src/dart/micro/utils.dart
index b330928..403dcd8 100644
--- a/pkg/analyzer/lib/src/dart/micro/utils.dart
+++ b/pkg/analyzer/lib/src/dart/micro/utils.dart
@@ -98,7 +98,7 @@
       usedElement = prefixed.element;
     }
   } else if (parent case MethodInvocation invocation) {
-    if (invocation.target == prefixNode) {
+    if (invocation.target2 == prefixNode) {
       usedElement = invocation.methodName.element;
     }
   }
@@ -283,12 +283,16 @@
     if (writeElement is PropertyAccessorElement) {
       var kind = MatchKind.WRITE;
       if (writeElement.variable == element || writeElement == element) {
-        if (node.leftHandSide is SimpleIdentifier) {
+        if (node.leftHandSide2 is SimpleIdentifier) {
           references.add(
-            MatchInfo(node.leftHandSide.offset, node.leftHandSide.length, kind),
+            MatchInfo(
+              node.leftHandSide2.offset,
+              node.leftHandSide2.length,
+              kind,
+            ),
           );
-        } else if (node.leftHandSide is PrefixedIdentifier) {
-          var prefixIdentifier = node.leftHandSide as PrefixedIdentifier;
+        } else if (node.leftHandSide2 is PrefixedIdentifier) {
+          var prefixIdentifier = node.leftHandSide2 as PrefixedIdentifier;
           references.add(
             MatchInfo(
               prefixIdentifier.identifier.offset,
@@ -296,8 +300,8 @@
               kind,
             ),
           );
-        } else if (node.leftHandSide is PropertyAccess) {
-          var accessor = node.leftHandSide as PropertyAccess;
+        } else if (node.leftHandSide2 is PropertyAccess) {
+          var accessor = node.leftHandSide2 as PropertyAccess;
           references.add(
             MatchInfo(accessor.propertyName.offset, accessor.length, kind),
           );
@@ -310,8 +314,8 @@
       if (readElement.variable == element) {
         references.add(
           MatchInfo(
-            node.rightHandSide.offset,
-            node.rightHandSide.length,
+            node.rightHandSide2.offset,
+            node.rightHandSide2.length,
             MatchKind.READ,
           ),
         );
@@ -321,7 +325,7 @@
 
   @override
   visitCommentReference(CommentReference node) {
-    var expression = node.expression;
+    var expression = node.expression2;
     if (expression is Identifier) {
       var element = expression.element;
       if (element is ConstructorElement) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
index f3b536d..28d818b 100644
--- a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
@@ -43,12 +43,12 @@
     var isIfNull = operator == TokenType.QUESTION_QUESTION_EQ;
 
     var leftResolution = _resolver.resolveForWrite(
-      node: node.leftHandSide,
+      node: node.leftHandSide2,
       hasRead: hasRead,
     );
 
-    var left = node.leftHandSide;
-    var right = node.rightHandSide;
+    var left = node.leftHandSide2;
+    var right = node.rightHandSide2;
 
     var readElement = leftResolution.readElement2;
     var writeElement = leftResolution.writeElement2;
@@ -231,7 +231,7 @@
   }
 
   void _resolveOperator(AssignmentExpressionImpl node) {
-    var left = node.leftHandSide;
+    var left = node.leftHandSide2;
     var operator = node.operator;
     var operatorType = operator.type;
 
@@ -288,7 +288,7 @@
   }) {
     TypeImpl assignedType;
 
-    var rightHandSide = node.rightHandSide;
+    var rightHandSide = node.rightHandSide2;
     var operator = node.operator.type;
     if (operator == TokenType.EQ) {
       assignedType = rightHandSide.typeOrThrow;
@@ -360,14 +360,14 @@
     // TODO(scheglov): Remove from ErrorVerifier?
     _checkForInvalidAssignment(
       node.writeType!,
-      node.rightHandSide,
+      node.rightHandSide2,
       assignedType,
       whyNotPromoted: operator == TokenType.EQ ? whyNotPromoted : null,
     );
     if (operator != TokenType.EQ &&
         operator != TokenType.QUESTION_QUESTION_EQ) {
       _resolver.checkForArgumentTypeNotAssignableForArgument(
-        node.rightHandSide,
+        node.rightHandSide2,
         whyNotPromoted: whyNotPromoted,
       );
     }
diff --git a/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart b/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
index 0a65f98..c21d2c6 100644
--- a/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/ast_rewrite.dart
@@ -138,7 +138,7 @@
       return node;
     }
 
-    var target = node.target;
+    var target = node.target2;
     var operator = node.operator;
     if (target == null) {
       // Possible cases: C() or C<>()
@@ -271,7 +271,7 @@
       // [ConstructorReference] at some point.
       return node;
     }
-    if (parent is AssignmentExpressionImpl && parent.leftHandSide == node) {
+    if (parent is AssignmentExpressionImpl && parent.leftHandSide2 == node) {
       // A constructor cannot be assigned to, in some expression like
       // `C.new = foo`; do not rewrite.
       return node;
@@ -350,7 +350,7 @@
       // [ConstructorReference] at some point.
       return node;
     }
-    var receiver = node.target!;
+    var receiver = node.target2!;
 
     IdentifierImpl receiverIdentifier;
     TypeArgumentListImpl? typeArguments;
@@ -360,7 +360,7 @@
       // A [ConstructorReference] with explicit type arguments is initially
       // parsed as a [PropertyAccess] with a [FunctionReference] target; for
       // example: `List<int>.filled` or `core.List<int>.filled`.
-      var function = receiver.function;
+      var function = receiver.function2;
       if (function is! IdentifierImpl) {
         // If [receiverIdentifier] is not an Identifier then [node] is not a
         // ConstructorReference.
@@ -699,7 +699,7 @@
     typeName.type = element.aliasedType;
     var typeLiteral = TypeLiteralImpl(type: typeName);
     var methodInvocation = MethodInvocationImpl(
-      target: typeLiteral,
+      target2: typeLiteral,
       operator: node.constructorName.period,
       methodName: node.constructorName.name!,
       typeArguments: null,
@@ -720,11 +720,11 @@
     }
 
     var functionReference = FunctionReferenceImpl(
-      function: function,
+      function2: function,
       typeArguments: node.constructorName.type.typeArguments,
     );
     var methodInvocation = MethodInvocationImpl(
-      target: functionReference,
+      target2: functionReference,
       operator: period,
       methodName: constructorId,
       typeArguments: null,
diff --git a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
index d168ac1..69bef78 100644
--- a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
@@ -94,7 +94,7 @@
 
   void _resolveEqual(BinaryExpressionImpl node, {required bool notEqual}) {
     _resolver.analyzeExpression(
-      node.leftOperand,
+      node.leftOperand2,
       SharedTypeSchemaView(UnknownInferredType.instance),
     );
     var left = _resolver.popRewrite()!;
@@ -109,15 +109,15 @@
 
     // When evaluating exactly a dot shorthand in the RHS, we save the LHS type
     // to provide the context type for the shorthand.
-    if (_resolver.isDotShorthand(node.rightOperand)) {
+    if (_resolver.isDotShorthand(node.rightOperand2)) {
       _resolver.pushDotShorthandContext(
-        node.rightOperand,
+        node.rightOperand2,
         SharedTypeSchemaView(left.typeOrThrow),
       );
     }
 
     _resolver.analyzeExpression(
-      node.rightOperand,
+      node.rightOperand2,
       SharedTypeSchemaView(UnknownInferredType.instance),
     );
     var right = _resolver.popRewrite()!;
@@ -145,7 +145,7 @@
     );
     _resolveUserDefinableType(node);
     _resolver.checkForArgumentTypeNotAssignableForArgument(
-      node.rightOperand,
+      node.rightOperand2,
       promoteParameterToNullable: true,
       whyNotPromoted: whyNotPromoted,
     );
@@ -179,8 +179,8 @@
     BinaryExpressionImpl node, {
     required TypeImpl contextType,
   }) {
-    var left = node.leftOperand;
-    var right = node.rightOperand;
+    var left = node.leftOperand2;
+    var right = node.rightOperand2;
     var flow = _resolver.flowAnalysis.flow;
 
     // An if-null expression `E` of the form `e1 ?? e2` with context type `K` is
@@ -252,8 +252,8 @@
   }
 
   void _resolveLogicalAnd(BinaryExpressionImpl node) {
-    var left = node.leftOperand;
-    var right = node.rightOperand;
+    var left = node.leftOperand2;
+    var right = node.rightOperand2;
     var flow = _resolver.flowAnalysis.flow;
 
     flow?.logicalBinaryOp_begin();
@@ -298,8 +298,8 @@
   }
 
   void _resolveLogicalOr(BinaryExpressionImpl node) {
-    var left = node.leftOperand;
-    var right = node.rightOperand;
+    var left = node.leftOperand2;
+    var right = node.rightOperand2;
     var flow = _resolver.flowAnalysis.flow;
 
     flow?.logicalBinaryOp_begin();
@@ -344,7 +344,7 @@
   }
 
   void _resolveRightOperand(BinaryExpressionImpl node, TypeImpl contextType) {
-    var left = node.leftOperand;
+    var left = node.leftOperand2;
 
     var invokeType = node.staticInvokeType;
     TypeImpl rightContextType;
@@ -363,7 +363,7 @@
     }
 
     _resolver.analyzeExpression(
-      node.rightOperand,
+      node.rightOperand2,
       SharedTypeSchemaView(rightContextType),
     );
     var right = _resolver.popRewrite()!;
@@ -380,12 +380,12 @@
 
   void _resolveUnsupportedOperator(BinaryExpressionImpl node) {
     _resolver.analyzeExpression(
-      node.leftOperand,
+      node.leftOperand2,
       _resolver.operations.unknownType,
     );
     _resolver.popRewrite();
     _resolver.analyzeExpression(
-      node.rightOperand,
+      node.rightOperand2,
       _resolver.operations.unknownType,
     );
     _resolver.popRewrite();
@@ -396,10 +396,10 @@
     BinaryExpressionImpl node, {
     required TypeImpl contextType,
   }) {
-    var left = node.leftOperand;
+    var left = node.leftOperand2;
 
     _resolver.analyzeExpression(
-      node.leftOperand,
+      node.leftOperand2,
       SharedTypeSchemaView(UnknownInferredType.instance),
     );
     left = _resolver.popRewrite()!;
@@ -407,7 +407,7 @@
     if (left is SuperExpressionImpl) {
       if (SuperContext.of(left) != SuperContext.valid) {
         _resolver.analyzeExpression(
-          node.rightOperand,
+          node.rightOperand2,
           SharedTypeSchemaView(InvalidTypeImpl.instance),
         );
         _resolver.popRewrite();
@@ -427,7 +427,7 @@
     String methodName, {
     bool promoteLeftTypeToNonNull = false,
   }) {
-    ExpressionImpl leftOperand = node.leftOperand;
+    ExpressionImpl leftOperand = node.leftOperand2;
 
     if (leftOperand is ExtensionOverrideImpl) {
       var extension = leftOperand.element;
@@ -492,7 +492,7 @@
   }
 
   void _resolveUserDefinableType(BinaryExpressionImpl node) {
-    var leftOperand = node.leftOperand;
+    var leftOperand = node.leftOperand2;
 
     TypeImpl leftType;
     if (leftOperand is ExtensionOverrideImpl) {
@@ -519,7 +519,7 @@
       staticType = _typeSystem.refineBinaryExpressionType(
         leftType,
         node.operator.type,
-        node.rightOperand.typeOrThrow,
+        node.rightOperand2.typeOrThrow,
         staticType,
         node.element,
       );
diff --git a/pkg/analyzer/lib/src/dart/resolver/body_inference_context.dart b/pkg/analyzer/lib/src/dart/resolver/body_inference_context.dart
index 794543a..3b9a243 100644
--- a/pkg/analyzer/lib/src/dart/resolver/body_inference_context.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/body_inference_context.dart
@@ -111,7 +111,7 @@
   }
 
   void addYield(YieldStatement node) {
-    var expressionType = node.expression.typeOrThrow;
+    var expressionType = node.expression2.typeOrThrow;
 
     if (node.star == null) {
       _returnTypes.add(expressionType);
diff --git a/pkg/analyzer/lib/src/dart/resolver/comment_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/comment_reference_resolver.dart
index 3cbec82..1b4d0f0 100644
--- a/pkg/analyzer/lib/src/dart/resolver/comment_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/comment_reference_resolver.dart
@@ -29,7 +29,7 @@
   void resolve(CommentReference commentReference) {
     _resolver.diagnosticReporter.lockLevel++;
     try {
-      var expression = commentReference.expression;
+      var expression = commentReference.expression2;
       if (expression is SimpleIdentifierImpl) {
         _resolveSimpleIdentifierReference(
           expression,
@@ -113,7 +113,7 @@
     PropertyAccessImpl expression, {
     required bool hasNewKeyword,
   }) {
-    var target = expression.target;
+    var target = expression.target2;
     if (target is! PrefixedIdentifierImpl) {
       // A PropertyAccess with a target more complex than a
       // [PrefixedIdentifier] is not a valid comment reference.
diff --git a/pkg/analyzer/lib/src/dart/resolver/element_binding_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/element_binding_visitor.dart
index 73f68fb..8887821 100644
--- a/pkg/analyzer/lib/src/dart/resolver/element_binding_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/element_binding_visitor.dart
@@ -706,7 +706,7 @@
       _elementHolder.enclose(fragment);
 
       localFragment.hasImplicitType = variableList.type == null;
-      localFragment.hasInitializer = node.initializer != null;
+      localFragment.hasInitializer = node.initializer2 != null;
       localFragment.isConst = variableList.isConst;
       localFragment.isFinal = variableList.isFinal;
       localFragment.isLate = variableList.isLate;
@@ -821,12 +821,12 @@
 
     if (node.defaultClause case var defaultClause?) {
       if (_elementWalker == null) {
-        fragment.constantInitializer = defaultClause.value;
+        fragment.constantInitializer = defaultClause.value2;
       }
 
       _withElementWalker(null, () {
         _withElementHolder(ElementHolder(fragment), () {
-          defaultClause.value.accept2(this);
+          defaultClause.value2.accept2(this);
         });
       });
     }
diff --git a/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart b/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart
index 6215e6f..c54d7ac 100644
--- a/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/exit_detector.dart
@@ -25,10 +25,10 @@
   final Set<AstNode?> _enclosingBlockBreaksLabel = <AstNode?>{};
 
   @override
-  bool visitArgumentList(ArgumentList node) => _visitNodes(node.arguments);
+  bool visitArgumentList(ArgumentList node) => _visitNodes(node.arguments2);
 
   @override
-  bool visitAsExpression(AsExpression node) => _nodeExits(node.expression);
+  bool visitAsExpression(AsExpression node) => _nodeExits(node.expression2);
 
   @override
   bool visitAssertInitializer(AssertInitializer node) => false;
@@ -38,7 +38,7 @@
 
   @override
   bool visitAssignmentExpression(AssignmentExpression node) {
-    Expression leftHandSide = node.leftHandSide;
+    Expression leftHandSide = node.leftHandSide2;
     if (_nodeExits(leftHandSide)) {
       return true;
     }
@@ -51,17 +51,17 @@
     if (leftHandSide is PropertyAccess && leftHandSide.isNullAware) {
       return false;
     }
-    return _nodeExits(node.rightHandSide);
+    return _nodeExits(node.rightHandSide2);
   }
 
   @override
   bool visitAwaitExpression(AwaitExpression node) =>
-      _nodeExits(node.expression);
+      _nodeExits(node.expression2);
 
   @override
   bool visitBinaryExpression(BinaryExpression node) {
-    Expression lhsExpression = node.leftOperand;
-    Expression rhsExpression = node.rightOperand;
+    Expression lhsExpression = node.leftOperand2;
+    Expression rhsExpression = node.rightOperand2;
     TokenType operatorType = node.operator.type;
     // If the operator is ||, then only consider the RHS of the binary
     // expression if the left hand side is the false literal.
@@ -111,13 +111,13 @@
 
   @override
   bool visitCascadeExpression(CascadeExpression node) =>
-      _nodeExits(node.target) || _visitNodes(node.cascadeSections);
+      _nodeExits(node.target2) || _visitNodes(node.cascadeSections2);
 
   @override
   bool visitConditionalExpression(ConditionalExpression node) {
-    var conditionExpression = node.condition;
-    var thenExpression = node.thenExpression;
-    var elseExpression = node.elseExpression;
+    var conditionExpression = node.condition2;
+    var thenExpression = node.thenExpression2;
+    var elseExpression = node.elseExpression2;
     // TODO(jwren): Do we want to take constant expressions into account,
     // evaluate if(false) {} differently than if(<condition>), when <condition>
     // evaluates to a constant false value?
@@ -151,7 +151,7 @@
       if (bodyExits && !containsBreakOrContinue) {
         return true;
       }
-      Expression conditionExpression = node.condition;
+      Expression conditionExpression = node.condition2;
       if (_nodeExits(conditionExpression)) {
         return true;
       }
@@ -195,7 +195,7 @@
 
   @override
   bool visitExpressionStatement(ExpressionStatement node) =>
-      _nodeExits(node.expression);
+      _nodeExits(node.expression2);
 
   @override
   bool visitExtensionOverride(ExtensionOverride node) => false;
@@ -212,7 +212,7 @@
             return true;
           }
         } else if (forLoopParts is ForPartsWithExpression) {
-          var initialization = forLoopParts.initialization;
+          var initialization = forLoopParts.initialization2;
           if (initialization != null && _nodeExits(initialization)) {
             return true;
           }
@@ -221,10 +221,10 @@
         if (conditionExpression != null && _nodeExits(conditionExpression)) {
           return true;
         }
-        if (_visitNodes(forLoopParts.updaters)) {
+        if (_visitNodes(forLoopParts.updaters2)) {
           return true;
         }
-        bool blockReturns = _nodeExits(node.body);
+        bool blockReturns = _nodeExits(node.body2);
         // TODO(jwren): Do we want to take all constant expressions into account?
         // If for(; true; ) (or for(;;)), and the body doesn't return or the body
         // doesn't have a break, then return true.
@@ -244,7 +244,7 @@
         // may be empty, execution may never enter the body, so it doesn't matter
         // if it exits or not.  We still must visit the body, to accurately
         // manage `_enclosingBlockBreaksLabel`.
-        _nodeExits(node.body);
+        _nodeExits(node.body2);
         return iterableExits;
       }
     } finally {
@@ -275,11 +275,11 @@
       if (parts is ForPartsWithDeclarations) {
         variables = parts.variables;
         condition = parts.condition;
-        updaters = parts.updaters;
+        updaters = parts.updaters2;
       } else if (parts is ForPartsWithExpression) {
-        initialization = parts.initialization;
+        initialization = parts.initialization2;
         condition = parts.condition;
-        updaters = parts.updaters;
+        updaters = parts.updaters2;
       } else {
         throw UnimplementedError();
       }
@@ -322,7 +322,7 @@
 
   @override
   bool visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
-    if (_nodeExits(node.function)) {
+    if (_nodeExits(node.function2)) {
       return true;
     }
     return node.argumentList.accept2(this)!;
@@ -332,7 +332,7 @@
   bool visitFunctionReference(FunctionReference node) {
     // Note: `node.function` could be a reference to a method
     // (`Target.methodName`) so we need to visit it in case the target exits.
-    return node.function.accept2(this)!;
+    return node.function2.accept2(this)!;
   }
 
   @override
@@ -343,9 +343,9 @@
 
   @override
   bool visitIfElement(IfElement node) {
-    var conditionExpression = node.expression;
-    var thenElement = node.thenElement;
-    var elseElement = node.elseElement;
+    var conditionExpression = node.expression2;
+    var thenElement = node.thenElement2;
+    var elseElement = node.elseElement2;
     if (_nodeExits(conditionExpression)) {
       return true;
     }
@@ -367,7 +367,7 @@
 
   @override
   bool visitIfStatement(IfStatement node) {
-    var conditionExpression = node.expression;
+    var conditionExpression = node.expression2;
     var thenStatement = node.thenStatement;
     var elseStatement = node.elseStatement;
     if (_nodeExits(conditionExpression)) {
@@ -391,7 +391,7 @@
 
   @override
   bool visitImplicitCallReference(ImplicitCallReference node) {
-    return _nodeExits(node.expression);
+    return _nodeExits(node.expression2);
   }
 
   @override
@@ -400,7 +400,7 @@
     if (_nodeExits(target)) {
       return true;
     }
-    if (_nodeExits(node.index)) {
+    if (_nodeExits(node.index2)) {
       return true;
     }
     return false;
@@ -411,7 +411,7 @@
       _nodeExits(node.argumentList);
 
   @override
-  bool visitIsExpression(IsExpression node) => node.expression.accept2(this)!;
+  bool visitIsExpression(IsExpression node) => node.expression2.accept2(this)!;
 
   @override
   bool visitLabel(Label node) => false;
@@ -431,7 +431,7 @@
 
   @override
   bool visitListLiteral(ListLiteral node) {
-    for (CollectionElement element in node.elements) {
+    for (CollectionElement element in node.elements2) {
       if (_nodeExits(element)) {
         return true;
       }
@@ -444,7 +444,7 @@
 
   @override
   bool visitMapLiteralEntry(MapLiteralEntry node) {
-    return _nodeExits(node.key) || _nodeExits(node.value);
+    return _nodeExits(node.key2) || _nodeExits(node.value2);
   }
 
   @override
@@ -467,7 +467,7 @@
 
   @override
   bool visitNamedArgument(NamedArgument node) =>
-      node.argumentExpression.accept2(this)!;
+      node.argumentExpression2.accept2(this)!;
 
   @override
   bool visitNamedType(NamedType node) => false;
@@ -481,20 +481,20 @@
 
   @override
   bool? visitNullAwareElement(NullAwareElement node) {
-    return _nodeExits(node.value);
+    return _nodeExits(node.value2);
   }
 
   @override
   bool visitParenthesizedExpression(ParenthesizedExpression node) =>
-      node.expression.accept2(this)!;
+      node.expression2.accept2(this)!;
 
   @override
   bool visitPatternAssignment(PatternAssignment node) =>
-      _nodeExits(node.expression);
+      _nodeExits(node.expression2);
 
   @override
   bool visitPatternVariableDeclaration(PatternVariableDeclaration node) =>
-      _nodeExits(node.expression);
+      _nodeExits(node.expression2);
 
   @override
   bool visitPatternVariableDeclarationStatement(
@@ -521,7 +521,7 @@
 
   @override
   bool visitSetOrMapLiteral(SetOrMapLiteral node) {
-    for (CollectionElement element in node.elements) {
+    for (CollectionElement element in node.elements2) {
       if (_nodeExits(element)) {
         return true;
       }
@@ -531,7 +531,7 @@
 
   @override
   bool visitSpreadElement(SpreadElement node) {
-    return _nodeExits(node.expression);
+    return _nodeExits(node.expression2);
   }
 
   @override
@@ -556,8 +556,8 @@
 
   @override
   bool visitSwitchExpressionCase(SwitchExpressionCase node) {
-    return _nodeExits(node.guardedPattern.whenClause?.expression) ||
-        _nodeExits(node.expression);
+    return _nodeExits(node.guardedPattern.whenClause?.expression2) ||
+        _nodeExits(node.expression2);
   }
 
   @override
@@ -629,7 +629,7 @@
 
   @override
   bool visitVariableDeclaration(VariableDeclaration node) {
-    var initializer = node.initializer;
+    var initializer = node.initializer2;
     if (initializer != null) {
       return initializer.accept2(this)!;
     }
@@ -656,7 +656,7 @@
     bool outerBreakValue = _enclosingBlockContainsBreak;
     _enclosingBlockContainsBreak = false;
     try {
-      Expression conditionExpression = node.condition;
+      Expression conditionExpression = node.condition2;
       if (conditionExpression.accept2(this)!) {
         return true;
       }
@@ -685,7 +685,7 @@
   }
 
   @override
-  bool visitYieldStatement(YieldStatement node) => _nodeExits(node.expression);
+  bool visitYieldStatement(YieldStatement node) => _nodeExits(node.expression2);
 
   /// If the given [conditionExpression] has a known Boolean value, return the
   /// known value, otherwise return `null`.
diff --git a/pkg/analyzer/lib/src/dart/resolver/extension_member_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/extension_member_resolver.dart
index 98cf3fe..211a690 100644
--- a/pkg/analyzer/lib/src/dart/resolver/extension_member_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/extension_member_resolver.dart
@@ -55,7 +55,7 @@
     var element = node.element;
     var typeParameters = element.typeParameters;
 
-    var arguments = node.argumentList.arguments;
+    var arguments = node.argumentList.arguments2;
     if (arguments.length != 1) {
       return null;
     }
@@ -243,7 +243,7 @@
       nodeImpl.setPseudoExpressionStaticType(DynamicTypeImpl.instance);
     }
 
-    var arguments = node.argumentList.arguments;
+    var arguments = node.argumentList.arguments2;
     if (arguments.length != 1) {
       _diagnosticReporter.report(
         diag.invalidExtensionArgumentCount.at(node.argumentList),
@@ -512,19 +512,19 @@
 
   static bool _isCascadeTarget(ExtensionOverride node) {
     var parent = node.parent2;
-    return parent is CascadeExpression && parent.target == node;
+    return parent is CascadeExpression && parent.target2 == node;
   }
 
   /// Return `true` if the extension override [node] is being used as a target
   /// of an operation that might be accessing an instance member.
   static bool _isValidContext(ExtensionOverride node) {
     var parent = node.parent2;
-    return parent is BinaryExpression && parent.leftOperand == node ||
-        parent is FunctionExpressionInvocation && parent.function == node ||
-        parent is IndexExpression && parent.target == node ||
-        parent is MethodInvocation && parent.target == node ||
+    return parent is BinaryExpression && parent.leftOperand2 == node ||
+        parent is FunctionExpressionInvocation && parent.function2 == node ||
+        parent is IndexExpression && parent.target2 == node ||
+        parent is MethodInvocation && parent.target2 == node ||
         parent is PrefixExpression ||
-        parent is PropertyAccess && parent.target == node;
+        parent is PropertyAccess && parent.target2 == node;
   }
 }
 
diff --git a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
index ce03bbb..ca9f7a0 100644
--- a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
@@ -125,7 +125,7 @@
   void asExpression(AsExpressionImpl node) {
     if (flow == null) return;
 
-    var expression = node.expression;
+    var expression = node.expression2;
     var typeAnnotation = node.type;
 
     flow!.asExpression_end(
@@ -312,7 +312,7 @@
   void isExpression(IsExpressionImpl node) {
     if (flow == null) return;
 
-    var expression = node.expression;
+    var expression = node.expression2;
     var typeAnnotation = node.type;
 
     storeExpressionInfo(
@@ -371,7 +371,7 @@
         flow!.declare(
           declaredElement,
           SharedTypeView(declaredElement.type),
-          initialized: variable.initializer != null,
+          initialized: variable.initializer2 != null,
         );
       }
     }
@@ -1044,7 +1044,7 @@
 
   @override
   void visitAnonymousMethodInvocation(AnonymousMethodInvocation node) {
-    node.target?.accept2(this);
+    node.target2?.accept2(this);
     var parameters = node.parameters;
     if (parameters != null) {
       for (var parameter in parameters.parameters) {
@@ -1068,7 +1068,7 @@
 
   @override
   void visitAssignmentExpression(AssignmentExpression node) {
-    var left = node.leftHandSide;
+    var left = node.leftHandSide2;
 
     super.visitAssignmentExpression(node);
 
@@ -1083,9 +1083,9 @@
   @override
   void visitBinaryExpression(BinaryExpression node) {
     if (node.operator.type == TokenType.AMPERSAND_AMPERSAND) {
-      node.leftOperand.accept2(this);
+      node.leftOperand2.accept2(this);
       assignedVariables.beginNode();
-      node.rightOperand.accept2(this);
+      node.rightOperand2.accept2(this);
       assignedVariables.endNode(node);
     } else {
       super.visitBinaryExpression(node);
@@ -1107,11 +1107,11 @@
 
   @override
   void visitConditionalExpression(ConditionalExpression node) {
-    node.condition.accept2(this);
+    node.condition2.accept2(this);
     assignedVariables.beginNode();
-    node.thenExpression.accept2(this);
+    node.thenExpression2.accept2(this);
     assignedVariables.endNode(node);
-    node.elseExpression.accept2(this);
+    node.elseExpression2.accept2(this);
   }
 
   @override
@@ -1128,7 +1128,7 @@
 
   @override
   void visitForElement(covariant ForElementImpl node) {
-    _handleFor(node, node.forLoopParts, node.body);
+    _handleFor(node, node.forLoopParts, node.body2);
   }
 
   @override
@@ -1192,7 +1192,7 @@
   void visitPostfixExpression(PostfixExpression node) {
     super.visitPostfixExpression(node);
     if (node.operator.type.isIncrementOperator) {
-      var operand = node.operand;
+      var operand = node.operand2;
       if (operand is SimpleIdentifier) {
         var element = operand.element;
         if (element is PromotableElementImpl) {
@@ -1206,7 +1206,7 @@
   void visitPrefixExpression(PrefixExpression node) {
     super.visitPrefixExpression(node);
     if (node.operator.type.isIncrementOperator) {
-      var operand = node.operand;
+      var operand = node.operand2;
       if (operand is SimpleIdentifier) {
         var element = operand.element;
         if (element is PromotableElementImpl) {
@@ -1230,7 +1230,7 @@
 
   @override
   void visitSwitchExpression(covariant SwitchExpressionImpl node) {
-    node.expression.accept2(this);
+    node.expression2.accept2(this);
 
     for (var case_ in node.cases) {
       var guardedPattern = case_.guardedPattern;
@@ -1244,13 +1244,13 @@
 
   @override
   void visitSwitchStatement(covariant SwitchStatementImpl node) {
-    node.expression.accept2(this);
+    node.expression2.accept2(this);
 
     assignedVariables.beginNode();
     for (var group in node.memberGroups) {
       for (var member in group.members) {
         if (member is SwitchCaseImpl) {
-          member.expression.accept2(this);
+          member.expression2.accept2(this);
         } else if (member is SwitchPatternCaseImpl) {
           var guardedPattern = member.guardedPattern;
           guardedPattern.pattern.accept2(this);
@@ -1295,7 +1295,7 @@
     var declaredElement =
         node.declaredFragment?.element as PromotableElementImpl;
     assignedVariables.declare(declaredElement);
-    if (declaredElement.isLate && node.initializer != null) {
+    if (declaredElement.isLate && node.initializer2 != null) {
       assignedVariables.beginNode();
       super.visitVariableDeclaration(node);
       assignedVariables.endNode(node, isClosureOrLateVariableInitializer: true);
@@ -1321,7 +1321,7 @@
   void _handleFor(AstNode node, ForLoopPartsImpl forLoopParts, AstNode body) {
     if (forLoopParts is ForPartsImpl) {
       if (forLoopParts is ForPartsWithExpressionImpl) {
-        forLoopParts.initialization?.accept2(this);
+        forLoopParts.initialization2?.accept2(this);
       } else if (forLoopParts is ForPartsWithDeclarationsImpl) {
         forLoopParts.variables.accept2(this);
       } else if (forLoopParts is ForPartsWithPatternImpl) {
@@ -1333,7 +1333,7 @@
       assignedVariables.beginNode();
       forLoopParts.condition?.accept2(this);
       body.accept2(this);
-      forLoopParts.updaters.accept2(this);
+      forLoopParts.updaters2.accept2(this);
       assignedVariables.endNode(node);
     } else if (forLoopParts is ForEachPartsImpl) {
       var iterable = forLoopParts.iterable;
diff --git a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
index 10ca270..542c064 100644
--- a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
@@ -28,7 +28,7 @@
   void resolveElement(ForElementImpl node, CollectionLiteralContext? context) {
     var forLoopParts = node.forLoopParts;
     void visitBody() {
-      node.body.resolveElement(_resolver, context);
+      node.body2.resolveElement(_resolver, context);
       _resolver.popRewrite();
     }
 
@@ -40,7 +40,7 @@
         awaitKeyword: node.awaitKeyword,
         forLoopParts: forLoopParts,
         dispatchBody: () {
-          _resolver.dispatchCollectionElement(node.body, context);
+          _resolver.dispatchCollectionElement(node.body2, context);
         },
       );
     } else if (forLoopParts is ForEachPartsImpl) {
@@ -221,7 +221,7 @@
     if (forParts is ForPartsWithDeclarationsImpl) {
       forParts.variables.accept2(_resolver);
     } else if (forParts is ForPartsWithExpressionImpl) {
-      if (forParts.initialization case var initialization?) {
+      if (forParts.initialization2 case var initialization?) {
         _resolver.analyzeExpression(
           initialization,
           _resolver.operations.unknownType,
@@ -259,10 +259,10 @@
 
     _resolver.flowAnalysis.flow?.for_updaterBegin();
     _resolver.nullSafetyDeadCodeVerifier.for_updaterBegin(
-      forParts.updaters,
+      forParts.updaters2,
       deadCodeForPartsState,
     );
-    for (var updater in forParts.updaters) {
+    for (var updater in forParts.updaters2) {
       _resolver.analyzeExpression(updater, _resolver.operations.unknownType);
       _resolver.popRewrite();
     }
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
index 897f79c..e620388 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_invocation_resolver.dart
@@ -40,7 +40,7 @@
     List<WhyNotPromotedGetter> whyNotPromotedArguments, {
     required TypeImpl contextType,
   }) {
-    var function = node.function;
+    var function = node.function2;
 
     if (function is ExtensionOverrideImpl) {
       _resolveReceiverExtensionOverride(
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
index 93b264e..372da22 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_reference_resolver.dart
@@ -38,7 +38,7 @@
   DiagnosticReporter get _diagnosticReporter => _resolver.diagnosticReporter;
 
   void resolve(FunctionReferenceImpl node) {
-    var function = node.function;
+    var function = node.function2;
     node.typeArguments?.accept2(_resolver);
 
     if (function is SimpleIdentifierImpl) {
@@ -226,7 +226,7 @@
       // ConstructorReference child is invalid. E.g. `List.filled<int>`.
       // [CompileTimeErrorCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS_CONSTRUCTOR] is
       // reported elsewhere; don't check type arguments here.
-      if (node.function is ConstructorReference) {
+      if (node.function2 is ConstructorReference) {
         node.recordStaticType(InvalidTypeImpl.instance, resolver: _resolver);
       } else {
         var typeArguments = node.typeArguments;
@@ -250,7 +250,7 @@
         // Only report constructor tearoff-related errors if the constructor
         // tearoff feature is enabled.
         _diagnosticReporter.report(
-          diag.disallowedTypeInstantiationExpression.at(node.function),
+          diag.disallowedTypeInstantiationExpression.at(node.function2),
         );
         node.recordStaticType(InvalidTypeImpl.instance, resolver: _resolver);
       } else if (rawType is DynamicType) {
@@ -275,7 +275,7 @@
       target: InvocationTargetExecutableElement(callMethod),
     );
     var callReference = ImplicitCallReferenceImpl(
-      expression: node.function,
+      expression2: node.function2,
       element: callMethod,
       typeArguments: node.typeArguments,
       typeArgumentTypes: typeArgumentTypes,
@@ -287,7 +287,7 @@
 
   void _resolveConstructorReference(FunctionReferenceImpl node) {
     // TODO(srawlins): Rewrite and resolve [node] as a constructor reference.
-    node.function.accept2(_resolver);
+    node.function2.accept2(_resolver);
     node.setPseudoExpressionStaticType(DynamicTypeImpl.instance);
   }
 
@@ -324,7 +324,7 @@
       // Only report constructor tearoff-related errors if the constructor
       // tearoff feature is enabled.
       _diagnosticReporter.report(
-        diag.disallowedTypeInstantiationExpression.at(node.function),
+        diag.disallowedTypeInstantiationExpression.at(node.function2),
       );
     }
     _resolve(
diff --git a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
index 275e70f..f13cae6 100644
--- a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
@@ -421,7 +421,7 @@
   }) : super._();
 
   @override
-  ExpressionImpl get _errorEntity => node.function;
+  ExpressionImpl get _errorEntity => node.function2;
 }
 
 /// Specialization of [InvocationInferrer] for performing type inference on AST
@@ -593,7 +593,7 @@
     GenericInferrer? inferrer,
   }) {
     var flow = resolver.flowAnalysis.flow;
-    var arguments = argumentList.arguments;
+    var arguments = argumentList.arguments2;
     for (var deferredArgument in deferredFunctionLiterals) {
       var parameter = deferredArgument.parameter;
       TypeImpl parameterContextType;
@@ -614,7 +614,7 @@
       );
       expression = resolver.popRewrite()!;
       if (argument is NamedArgumentImpl) {
-        argument.argumentExpression = expression;
+        argument.argumentExpression2 = expression;
       } else {
         arguments[deferredArgument.index] = expression;
       }
@@ -649,14 +649,14 @@
     resolver.checkUnreachableNode(argumentList);
     var flow = resolver.flowAnalysis.flow;
     var unnamedArgumentIndex = 0;
-    var arguments = argumentList.arguments;
+    var arguments = argumentList.arguments2;
     for (int i = 0; i < arguments.length; i++) {
       var argument = arguments[i];
       Expression value;
       InternalFormalParameterElement? parameter;
       Object parameterKey;
       if (argument is NamedArgumentImpl) {
-        value = argument.argumentExpression;
+        value = argument.argumentExpression2;
         parameterKey = argument.name.lexeme;
       } else {
         value = argument.argumentExpression;
@@ -691,7 +691,7 @@
         );
         var rewritten = resolver.popRewrite()!;
         if (argument is NamedArgumentImpl) {
-          argument.argumentExpression = rewritten;
+          argument.argumentExpression2 = rewritten;
         } else {
           arguments[i] = rewritten;
         }
@@ -752,7 +752,7 @@
     var invokedMethod = node.methodName.element;
     return invokedMethod is TopLevelFunctionElement &&
         invokedMethod.isDartCoreIdentical &&
-        node.argumentList.arguments.length == 2;
+        node.argumentList.arguments2.length == 2;
   }
 
   @override
@@ -776,7 +776,7 @@
     if (targetType != null) {
       returnType = resolver.typeSystem
           .refineNumericInvocationType(targetType, node.methodName.element, [
-            for (var argument in node.argumentList.arguments)
+            for (var argument in node.argumentList.arguments2)
               argument.argumentExpression.typeOrThrow,
           ], returnType);
     }
diff --git a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
index aaf4d8e..e677098 100644
--- a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
@@ -515,7 +515,7 @@
       _reportStaticAccessToInstanceMember(getter, nameNode);
       _rewriteAsFunctionExpressionInvocation(
         node,
-        node.target,
+        node.target2,
         node.operator,
         node.methodName,
         node.typeArguments,
@@ -606,7 +606,7 @@
     if (member is InternalPropertyAccessorElement) {
       _rewriteAsFunctionExpressionInvocation(
         node,
-        node.target,
+        node.target2,
         node.operator,
         node.methodName,
         node.typeArguments,
@@ -647,7 +647,7 @@
       node.recordStaticType(InvalidTypeImpl.instance, resolver: _resolver);
     } else if (targetElement != null &&
         !targetElement.isStatic &&
-        _hasMatchingObjectMethod(targetElement, node.argumentList.arguments)) {
+        _hasMatchingObjectMethod(targetElement, node.argumentList.arguments2)) {
       nameNode.element = targetElement;
       target = InvocationTargetExecutableElement(targetElement);
       nameNode.setPseudoExpressionStaticType(targetElement.type);
@@ -775,7 +775,7 @@
       if (element is InternalPropertyAccessorElement) {
         _rewriteAsFunctionExpressionInvocation(
           node,
-          node.target,
+          node.target2,
           node.operator,
           node.methodName,
           node.typeArguments,
@@ -805,7 +805,7 @@
         );
         _rewriteAsFunctionExpressionInvocation(
           node,
-          node.target,
+          node.target2,
           node.operator,
           node.methodName,
           node.typeArguments,
@@ -946,7 +946,7 @@
     if (element is InternalPropertyAccessorElement) {
       _rewriteAsFunctionExpressionInvocation(
         node,
-        node.target,
+        node.target2,
         node.operator,
         node.methodName,
         node.typeArguments,
@@ -1012,7 +1012,7 @@
       if (target is InternalPropertyAccessorElement) {
         _rewriteAsFunctionExpressionInvocation(
           node,
-          node.target,
+          node.target2,
           node.operator,
           node.methodName,
           node.typeArguments,
@@ -1131,7 +1131,7 @@
     if (recordField != null) {
       _rewriteAsFunctionExpressionInvocation(
         node,
-        node.target,
+        node.target2,
         node.operator,
         node.methodName,
         node.typeArguments,
@@ -1155,7 +1155,7 @@
       if (target is PropertyAccessorElement) {
         _rewriteAsFunctionExpressionInvocation(
           node,
-          node.target,
+          node.target2,
           node.operator,
           node.methodName,
           node.typeArguments,
@@ -1228,7 +1228,7 @@
         if (element is InternalPropertyAccessorElement) {
           _rewriteAsFunctionExpressionInvocation(
             node,
-            node.target,
+            node.target2,
             node.operator,
             node.methodName,
             node.typeArguments,
@@ -1375,7 +1375,7 @@
         );
       } else if (isCascaded) {
         functionExpression = PropertyAccessImpl(
-          target: null,
+          target2: null,
           operator: operator!,
           propertyName: methodName,
         );
@@ -1412,7 +1412,7 @@
         );
       } else {
         functionExpression = PropertyAccessImpl(
-          target: target,
+          target2: target,
           operator: operator!,
           propertyName: methodName,
         );
@@ -1444,7 +1444,7 @@
     }
 
     var invocation = FunctionExpressionInvocationImpl(
-      function: functionExpression,
+      function2: functionExpression,
       typeArguments: typeArguments,
       argumentList: argumentList,
     );
@@ -1561,7 +1561,7 @@
     inferenceLogWriter?.recordLookupResult(
       expression: node,
       type: type,
-      target: node.target,
+      target: node.target2,
       methodName: node.methodName.name,
     );
     // TODO(scheglov): We need this for StaticTypeAnalyzer to run inference.
diff --git a/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart
index 351b9ce..26a1a61 100644
--- a/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/postfix_expression_resolver.dart
@@ -40,14 +40,14 @@
     }
 
     var operandResolution = _resolver.resolveForWrite(
-      node: node.operand,
+      node: node.operand2,
       hasRead: true,
     );
 
     var readElement = operandResolution.readElement2;
     var writeElement = operandResolution.writeElement2;
 
-    var operand = node.operand;
+    var operand = node.operand2;
     _resolver.setReadElement(
       operand,
       readElement,
@@ -129,7 +129,7 @@
   }
 
   void _resolve1(PostfixExpressionImpl node, TypeImpl receiverType) {
-    ExpressionImpl operand = node.operand;
+    ExpressionImpl operand = node.operand2;
 
     if (identical(receiverType, NeverTypeImpl.instance)) {
       _resolver.diagnosticReporter.report(diag.receiverOfTypeNever.at(operand));
@@ -165,7 +165,7 @@
   }
 
   void _resolve2(PostfixExpressionImpl node, TypeImpl receiverType) {
-    Expression operand = node.operand;
+    Expression operand = node.operand2;
 
     if (identical(receiverType, NeverTypeImpl.instance)) {
       node.recordStaticType(NeverTypeImpl.instance, resolver: _resolver);
@@ -197,7 +197,7 @@
     PostfixExpressionImpl node, {
     required TypeImpl contextType,
   }) {
-    var operand = node.operand;
+    var operand = node.operand2;
 
     if (operand is SuperExpression) {
       _resolver.diagnosticReporter.report(
diff --git a/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart
index 1f994b7..d7bbf97 100644
--- a/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/prefix_expression_resolver.dart
@@ -45,10 +45,10 @@
       return;
     }
 
-    var operand = node.operand;
+    var operand = node.operand2;
     if (operator.isIncrementOperator) {
       var operandResolution = _resolver.resolveForWrite(
-        node: node.operand,
+        node: node.operand2,
         hasRead: true,
       );
 
@@ -66,7 +66,7 @@
         atDynamicTarget: operandResolution.atDynamicTarget,
       );
 
-      _assignmentShared.checkFinalAlreadyAssigned(node.operand);
+      _assignmentShared.checkFinalAlreadyAssigned(node.operand2);
     } else {
       TypeImpl innerContextType;
       if (operator == TokenType.MINUS && operand is IntegerLiteralImpl) {
@@ -155,7 +155,7 @@
     TokenType operatorType = operator.type;
     if (operatorType.isUserDefinableOperator ||
         operatorType.isIncrementOperator) {
-      ExpressionImpl operand = node.operand;
+      ExpressionImpl operand = node.operand2;
       String methodName = _getPrefixOperator(node);
       if (operand is ExtensionOverrideImpl) {
         var element = operand.element;
@@ -217,7 +217,7 @@
 
   void _resolve2(PrefixExpressionImpl node) {
     TokenType operator = node.operator.type;
-    var readType = node.readType ?? node.operand.staticType;
+    var readType = node.readType ?? node.operand2.staticType;
     if (identical(readType, NeverTypeImpl.instance)) {
       node.recordStaticType(NeverTypeImpl.instance, resolver: _resolver);
     } else {
@@ -231,7 +231,7 @@
         var staticMethodElement = node.element;
         staticType = _computeStaticReturnType(staticMethodElement);
       }
-      Expression operand = node.operand;
+      Expression operand = node.operand2;
       if (operand is ExtensionOverride) {
         // No special handling for incremental operators.
       } else if (operator.isIncrementOperator) {
@@ -260,7 +260,7 @@
   }
 
   void _resolveNegation(PrefixExpressionImpl node) {
-    var operand = node.operand;
+    var operand = node.operand2;
 
     _resolver.analyzeExpression(
       operand,
diff --git a/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart
index d18f7d5..48a318c 100644
--- a/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/prefixed_identifier_resolver.dart
@@ -42,7 +42,7 @@
         );
         if (prefixTypeResolved is RecordType) {
           var propertyAccess = PropertyAccessImpl(
-            target: node.prefix,
+            target2: node.prefix,
             operator: node.period,
             propertyName: node.identifier,
           );
@@ -173,9 +173,9 @@
     }
 
     if (parent is CommentReference ||
-        parent is MethodInvocationImpl && parent.target == node ||
+        parent is MethodInvocationImpl && parent.target2 == node ||
         parent is PrefixedIdentifierImpl && parent.prefix == node ||
-        parent is PropertyAccessImpl && parent.target == node) {
+        parent is PropertyAccessImpl && parent.target2 == node) {
       inferenceLogWriter?.recordExpressionWithNoType(node);
       return;
     }
diff --git a/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart
index 767d677..c12bfd0 100644
--- a/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/property_element_resolver.dart
@@ -300,7 +300,7 @@
     return _resolve(
       node: node,
       target: target,
-      isCascaded: node.target == null,
+      isCascaded: node.target2 == null,
       isNullAware: node.isNullAware,
       propertyName: propertyName,
       hasRead: hasRead,
@@ -318,7 +318,7 @@
     if (ancestorCascade != null) {
       return _resolve(
         node: node,
-        target: ancestorCascade.target,
+        target: ancestorCascade.target2,
         isCascaded: true,
         isNullAware: ancestorCascade.isNullAware,
         propertyName: node,
diff --git a/pkg/analyzer/lib/src/dart/resolver/record_literal_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/record_literal_resolver.dart
index bda980c..8e950dd 100644
--- a/pkg/analyzer/lib/src/dart/resolver/record_literal_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/record_literal_resolver.dart
@@ -43,11 +43,11 @@
   ) {
     if (contextType is! RecordTypeImpl) return null;
     if (contextType.namedFields.length + contextType.positionalFields.length !=
-        node.fields.length) {
+        node.fields2.length) {
       return null;
     }
     var numPositionalFields = 0;
-    for (var field in node.fields) {
+    for (var field in node.fields2) {
       if (field is RecordLiteralNamedFieldImpl) {
         if (contextType.namedField(field.name.lexeme) == null) {
           return null;
@@ -78,7 +78,7 @@
   /// defined name.
   void _reportDuplicateFieldDefinitions(RecordLiteralImpl node) {
     var usedNames = <String, RecordLiteralNamedField>{};
-    for (var field in node.fields) {
+    for (var field in node.fields2) {
       if (field is RecordLiteralNamedFieldImpl) {
         var name = field.name.lexeme;
         var previousField = usedNames[name];
@@ -99,7 +99,7 @@
 
   /// Report any fields in the record literal [node] that use an invalid name.
   void _reportInvalidFieldNames(RecordLiteralImpl node) {
-    var fields = node.fields;
+    var fields = node.fields2;
     var positionalCount = 0;
     for (var field in fields) {
       if (field is! RecordLiteralNamedField) {
@@ -168,7 +168,7 @@
     var namedFields = <RecordTypeNamedFieldImpl>[];
     var contextTypeAsRecord = _matchContextType(node, contextType);
     var index = 0;
-    for (var field in node.fields) {
+    for (var field in node.fields2) {
       if (field is RecordLiteralNamedFieldImpl) {
         var name = field.name.lexeme;
         var fieldContextType =
diff --git a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
index d4da249..d59ef9e 100644
--- a/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart
@@ -151,7 +151,7 @@
   void visitAnonymousMethodInvocation(
     covariant AnonymousMethodInvocationImpl node,
   ) {
-    node.target?.accept2(this);
+    node.target2?.accept2(this);
 
     _scopeContext.withLocalScope((scope) {
       if (node.parameters case var parameters?) {
@@ -362,7 +362,7 @@
   void visitDoStatement(covariant DoStatementImpl node) {
     _withUnlabeledBreakContinueContextNested(node, () {
       _visitStatementInScope(node.body);
-      node.condition.accept2(this);
+      node.condition2.accept2(this);
     });
   }
 
@@ -476,7 +476,7 @@
       node.nameScope = scope;
       _visitForLoopParts(scope, node.forLoopParts);
       _scopeContext.withLocalScope((_) {
-        node.body.accept2(this);
+        node.body2.accept2(this);
       });
     });
   }
@@ -568,7 +568,7 @@
   @override
   void visitIfElement(covariant IfElementImpl node) {
     if (node.caseClause case var caseClause?) {
-      node.expression.accept2(this);
+      node.expression2.accept2(this);
       _resolveGuardedPattern(
         caseClause.guardedPattern,
         then: () {
@@ -585,7 +585,7 @@
   @override
   void visitIfStatement(covariant IfStatementImpl node) {
     if (node.caseClause case var caseClause?) {
-      node.expression.accept2(this);
+      node.expression2.accept2(this);
       _resolveGuardedPattern(
         caseClause.guardedPattern,
         then: () {
@@ -595,7 +595,7 @@
       );
       _visitStatementInScope(node.ifFalse);
     } else {
-      node.expression.accept2(this);
+      node.expression2.accept2(this);
       _visitStatementInScope(node.ifTrue);
       _visitStatementInScope(node.ifFalse);
     }
@@ -631,7 +631,7 @@
     if (newNode != node) {
       if (node.constructorName.type.typeArguments != null &&
           newNode is MethodInvocation &&
-          newNode.target is FunctionReference &&
+          newNode.target2 is FunctionReference &&
           !_libraryElement.featureSet.isEnabled(Feature.constructor_tearoffs)) {
         // A function reference with explicit type arguments (an expression of
         // the form `a<...>.m(...)` or `p.a<...>.m(...)` where `a` does not
@@ -740,7 +740,7 @@
       var variables = _computeDeclaredPatternVariables(node.pattern);
       scope.addAll(variables);
       node.pattern.accept2(this);
-      node.expression.accept2(this);
+      node.expression2.accept2(this);
     });
   }
 
@@ -881,14 +881,14 @@
 
   @override
   void visitSwitchExpression(covariant SwitchExpressionImpl node) {
-    node.expression.accept2(this);
+    node.expression2.accept2(this);
 
     for (var case_ in node.cases) {
       _resolveGuardedPattern(
         case_.guardedPattern,
         then: () {
           case_.nameScope = nameScope;
-          case_.expression.accept2(this);
+          case_.expression2.accept2(this);
         },
       );
     }
@@ -913,13 +913,13 @@
 
     _withUnlabeledBreakContinueContextNested(node, () {
       _withLabelScope(labelScope, () {
-        node.expression.accept2(this);
+        node.expression2.accept2(this);
 
         for (var group in node.memberGroups) {
           _patternVariables.switchStatementSharedCaseScopeStart(group);
           for (var member in group.members) {
             if (member is SwitchCaseImpl) {
-              member.expression.accept2(this);
+              member.expression2.accept2(this);
             } else if (member is SwitchDefaultImpl) {
               _patternVariables.switchStatementSharedCaseScopeEmpty(group);
             } else if (member is SwitchPatternCaseImpl) {
@@ -977,7 +977,7 @@
       }
     }
 
-    node.initializer?.accept2(this);
+    node.initializer2?.accept2(this);
   }
 
   @override
@@ -990,7 +990,7 @@
   @override
   void visitWhileStatement(covariant WhileStatementImpl node) {
     _withUnlabeledBreakContinueContextNested(node, () {
-      node.condition.accept2(this);
+      node.condition2.accept2(this);
       _visitStatementInScope(node.body);
     });
   }
@@ -1380,16 +1380,16 @@
         scope.addAll(node.variables.declaredElements);
         node.variables.accept2(this);
         node.condition?.accept2(this);
-        node.updaters.accept2(this);
+        node.updaters2.accept2(this);
       case ForPartsWithExpressionImpl():
-        node.initialization?.accept2(this);
+        node.initialization2?.accept2(this);
         node.condition?.accept2(this);
-        node.updaters.accept2(this);
+        node.updaters2.accept2(this);
       case ForPartsWithPatternImpl():
         _definePatternVariableDeclarationElements(scope, node.variables);
         node.variables.accept2(this);
         node.condition?.accept2(this);
-        node.updaters.accept2(this);
+        node.updaters2.accept2(this);
     }
   }
 
diff --git a/pkg/analyzer/lib/src/dart/resolver/shared_type_analyzer.dart b/pkg/analyzer/lib/src/dart/resolver/shared_type_analyzer.dart
index eada7e7..3bef616 100644
--- a/pkg/analyzer/lib/src/dart/resolver/shared_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/shared_type_analyzer.dart
@@ -212,7 +212,7 @@
             parameterType: parameterType.unwrapTypeView<TypeImpl>(),
             operator: pattern.operator.lexeme,
           )
-          .at(pattern.operand),
+          .at(pattern.operand2),
     );
   }
 
diff --git a/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
index c2d34c6..367f763 100644
--- a/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
@@ -100,7 +100,7 @@
     } else if (parent is PrefixedIdentifierImpl) {
       return true;
     } else if (parent is MethodInvocationImpl) {
-      return identical(parent.target, node) &&
+      return identical(parent.target2, node) &&
           parent.operator?.type == TokenType.PERIOD;
     }
     return false;
@@ -276,7 +276,7 @@
     } else if (element is PrefixElement) {
       var parent = node.parent2;
       if (parent is PrefixedIdentifierImpl && parent.prefix == node ||
-          parent is MethodInvocationImpl && parent.target == node) {
+          parent is MethodInvocationImpl && parent.target2 == node) {
         inferenceLogWriter?.recordExpressionWithNoType(node);
         return;
       }
@@ -320,9 +320,9 @@
     }
 
     if (parent is CommentReferenceImpl ||
-        parent is MethodInvocationImpl && parent.target == node ||
+        parent is MethodInvocationImpl && parent.target2 == node ||
         parent is PrefixedIdentifierImpl && parent.prefix == node ||
-        parent is PropertyAccessImpl && parent.target == node) {
+        parent is PropertyAccessImpl && parent.target2 == node) {
       return;
     }
 
diff --git a/pkg/analyzer/lib/src/dart/resolver/type_property_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/type_property_resolver.dart
index e242dd0..b96a5b5 100644
--- a/pkg/analyzer/lib/src/dart/resolver/type_property_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/type_property_resolver.dart
@@ -130,7 +130,7 @@
         locatableDiagnostic = diag.uncheckedInvocationOfNullableValue;
       } else {
         if (parentNode is CascadeExpression) {
-          parentNode = parentNode.cascadeSections.first;
+          parentNode = parentNode.cascadeSections2.first;
         }
         if (parentNode is BinaryExpression || parentNode is RelationalPattern) {
           locatableDiagnostic = diag.uncheckedOperatorInvocationOfNullableValue
diff --git a/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart
index 401a70e..4cdbf0a 100644
--- a/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/typed_literal_resolver.dart
@@ -97,7 +97,7 @@
     }
 
     node.typeArguments?.accept2(_resolver);
-    _resolveElements(node.elements, context);
+    _resolveElements(node.elements2, context);
     var staticType = _resolveListLiteral2(
       inferrer,
       node,
@@ -183,7 +183,7 @@
     }
 
     node.typeArguments?.accept2(_resolver);
-    _resolveElements(node.elements, context);
+    _resolveElements(node.elements2, context);
     _resolveSetOrMapLiteral2(
       inferrer,
       literalResolution,
@@ -197,10 +197,10 @@
       case ExpressionImpl():
         return element.typeOrThrow;
       case ForElementImpl():
-        return _computeElementType(element.body);
+        return _computeElementType(element.body2);
       case IfElementImpl():
-        var thenElement = element.thenElement;
-        var elseElement = element.elseElement;
+        var thenElement = element.thenElement2;
+        var elseElement = element.elseElement2;
 
         var thenType = _computeElementType(thenElement);
         if (elseElement == null) {
@@ -213,7 +213,7 @@
         // This error will be reported elsewhere.
         return _typeProvider.dynamicType;
       case SpreadElementImpl():
-        var expressionType = element.expression.typeOrThrow;
+        var expressionType = element.expression2.typeOrThrow;
 
         var iterableType = expressionType.asInstanceOf(
           _typeProvider.iterableElement,
@@ -240,7 +240,7 @@
         // TODO(brianwilkerson): Report this as an error.
         return _typeProvider.dynamicType;
       case NullAwareElementImpl():
-        return _typeSystem.promoteToNonNull(element.value.typeOrThrow);
+        return _typeSystem.promoteToNonNull(element.value2.typeOrThrow);
       default:
         throw UnimplementedError('${element.runtimeType}');
     }
@@ -255,7 +255,7 @@
       literal.typeArguments?.arguments,
     );
     _LiteralResolution contextResolution = _fromContextType(contextType);
-    _LeafElements elementCounts = _LeafElements(literal.elements);
+    _LeafElements elementCounts = _LeafElements(literal.elements2);
     _LiteralResolution elementResolution = elementCounts.resolution;
 
     List<_LiteralResolution> unambiguousResolutions = [];
@@ -296,7 +296,7 @@
           : unambiguousResolutions[0];
     } else if (unambiguousResolutions.length == 1) {
       return unambiguousResolutions[0];
-    } else if (literal.elements.isEmpty) {
+    } else if (literal.elements2.isEmpty) {
       return _LiteralResolution(
         _LiteralResolutionKind.map,
         _typeProvider.mapType(_dynamicType, _dynamicType),
@@ -372,26 +372,26 @@
           elementType: element.typeOrThrow,
         );
       case ForElementImpl():
-        return _inferCollectionElementType(element.body);
+        return _inferCollectionElementType(element.body2);
       case IfElementImpl():
         _InferredCollectionElementTypeInformation thenType =
-            _inferCollectionElementType(element.thenElement);
-        if (element.elseElement == null) {
+            _inferCollectionElementType(element.thenElement2);
+        if (element.elseElement2 == null) {
           return thenType;
         }
         _InferredCollectionElementTypeInformation elseType =
-            _inferCollectionElementType(element.elseElement!);
+            _inferCollectionElementType(element.elseElement2!);
         return _InferredCollectionElementTypeInformation.forIfElement(
           _typeSystem,
           thenType,
           elseType,
         );
       case MapLiteralEntryImpl():
-        var keyType = element.key.staticType;
+        var keyType = element.key2.staticType;
         if (keyType != null && element.keyQuestion != null) {
           keyType = _typeSystem.promoteToNonNull(keyType);
         }
-        var valueType = element.value.staticType;
+        var valueType = element.value2.staticType;
         if (valueType != null && element.valueQuestion != null) {
           valueType = _typeSystem.promoteToNonNull(valueType);
         }
@@ -400,7 +400,7 @@
           valueType: valueType,
         );
       case SpreadElementImpl():
-        var expressionType = element.expression.typeOrThrow;
+        var expressionType = element.expression2.typeOrThrow;
 
         var iterableType = expressionType.asInstanceOf(
           _typeProvider.iterableElement,
@@ -448,7 +448,7 @@
         return _InferredCollectionElementTypeInformation();
       case NullAwareElementImpl():
         return _InferredCollectionElementTypeInformation(
-          elementType: _typeSystem.promoteToNonNull(element.value.typeOrThrow),
+          elementType: _typeSystem.promoteToNonNull(element.value2.typeOrThrow),
         );
       default:
         throw UnimplementedError('${element.runtimeType}');
@@ -492,7 +492,7 @@
     );
 
     // Also use upwards information to infer the type.
-    List<TypeImpl> elementTypes = node.elements
+    List<TypeImpl> elementTypes = node.elements2
         .map(_computeElementType)
         .toList();
     var syntheticParameter = FormalParameterElementImpl.synthetic(
@@ -562,7 +562,7 @@
     var literalImpl = literal as SetOrMapLiteralImpl;
     var contextType = literalImpl.contextType;
     literalImpl.contextType = null; // Not needed anymore.
-    List<CollectionElementImpl> elements = literal.elements;
+    List<CollectionElementImpl> elements = literal.elements2;
     List<_InferredCollectionElementTypeInformation> inferredTypes = [];
     bool canBeAMap = true;
     bool mustBeAMap = false;
@@ -773,7 +773,7 @@
       node.becomeSet();
     }
     if (_strictInference &&
-        node.elements.isEmpty &&
+        node.elements2.isEmpty &&
         contextType is UnknownInferredType) {
       // We cannot infer the type of a collection literal with no elements, and
       // no context type. If there are any elements, inference has not failed,
@@ -1028,10 +1028,10 @@
         expressionCount++;
       }
     } else if (element is ForElement) {
-      _count(element.body);
+      _count(element.body2);
     } else if (element is IfElement) {
-      _count(element.thenElement);
-      _count(element.elseElement);
+      _count(element.thenElement2);
+      _count(element.elseElement2);
     } else if (element is MapLiteralEntry) {
       if (_isComplete(element)) {
         mapEntryCount++;
diff --git a/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart
index 6fc07dc..0be474e 100644
--- a/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/variable_declaration_resolver.dart
@@ -28,7 +28,7 @@
   void resolve(VariableDeclarationImpl node) {
     var parent = node.parent2 as VariableDeclarationList;
 
-    var initializer = node.initializer;
+    var initializer = node.initializer2;
 
     if (initializer == null) {
       if (_strictInference && parent.type == null) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/yield_statement_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/yield_statement_resolver.dart
index bbb9a66..ca4e4b6 100644
--- a/pkg/analyzer/lib/src/dart/resolver/yield_statement_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/yield_statement_resolver.dart
@@ -67,7 +67,7 @@
     YieldStatement node, {
     required bool isYieldEach,
   }) {
-    var expression = node.expression;
+    var expression = node.expression2;
     var expressionType = expression.typeOrThrow;
 
     TypeImpl impliedReturnType;
@@ -159,7 +159,7 @@
   ) {
     _resolver.analyzeYieldStatement(
       node,
-      node.expression,
+      node.expression2,
       isYieldStar: node.star != null,
     );
     _resolver.popRewrite();
@@ -167,7 +167,7 @@
     if (node.star != null) {
       _resolver.nullableDereferenceVerifier.expression(
         diag.uncheckedUseOfNullableValueInYieldEach,
-        node.expression,
+        node.expression2,
       );
     }
 
@@ -178,12 +178,12 @@
       node,
       isYieldEach: node.star != null,
     );
-    _checkForUseOfVoidResult(node.expression);
+    _checkForUseOfVoidResult(node.expression2);
   }
 
   void _resolve_notGenerator(YieldStatementImpl node) {
     _resolver.analyzeExpression(
-      node.expression,
+      node.expression2,
       _resolver.operations.unknownType,
     );
     _resolver.popRewrite();
@@ -195,6 +195,6 @@
           .at(node),
     );
 
-    _checkForUseOfVoidResult(node.expression);
+    _checkForUseOfVoidResult(node.expression2);
   }
 }
diff --git a/pkg/analyzer/lib/src/error/annotation_verifier.dart b/pkg/analyzer/lib/src/error/annotation_verifier.dart
index 07d19e6..12e5f30 100644
--- a/pkg/analyzer/lib/src/error/annotation_verifier.dart
+++ b/pkg/analyzer/lib/src/error/annotation_verifier.dart
@@ -301,13 +301,13 @@
     bool factoryExpression(Expression? expression) =>
         expression is InstanceCreationExpression || expression is NullLiteral;
 
-    if (body is ExpressionFunctionBody && factoryExpression(body.expression)) {
+    if (body is ExpressionFunctionBody && factoryExpression(body.expression2)) {
       return;
     } else if (body is BlockFunctionBody) {
       NodeList<Statement> statements = body.block.statements;
       if (statements.isNotEmpty) {
         Statement last = statements.last;
-        if (last is ReturnStatement && factoryExpression(last.expression)) {
+        if (last is ReturnStatement && factoryExpression(last.expression2)) {
           return;
         }
       }
@@ -680,14 +680,14 @@
       }
 
       // Find and return the parameter value node.
-      var arguments = node.arguments?.arguments;
+      var arguments = node.arguments?.arguments2;
       if (arguments == null) {
         return null;
       }
 
       for (var arg in arguments) {
         if (arg is NamedArgument && arg.name.lexeme == 'parameterDefined') {
-          return arg.argumentExpression;
+          return arg.argumentExpression2;
         }
       }
 
diff --git a/pkg/analyzer/lib/src/error/async_return_visitor.dart b/pkg/analyzer/lib/src/error/async_return_visitor.dart
index e4cfff8..2171c65 100644
--- a/pkg/analyzer/lib/src/error/async_return_visitor.dart
+++ b/pkg/analyzer/lib/src/error/async_return_visitor.dart
@@ -27,7 +27,7 @@
   @override
   void visitExpressionFunctionBody(ExpressionFunctionBody node) {
     if (_withinTryBlock) return;
-    var expression = node.expression;
+    var expression = node.expression2;
     var expressionType = expression.staticType ?? DynamicTypeImpl.instance;
     var body = node.withAncestors.whereType<FunctionBody>().firstOrNull;
     _report(body, expressionType, node.functionDefinition);
@@ -35,7 +35,7 @@
 
   @override
   void visitReturnStatement(ReturnStatement node) {
-    var expression = node.expression;
+    var expression = node.expression2;
     if (expression == null) return;
     if (_withinTryBlock != node.isWithinTryBlock) return;
     var expressionType = expression.staticType ?? DynamicTypeImpl.instance;
diff --git a/pkg/analyzer/lib/src/error/best_practices_verifier.dart b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
index bc867bf..d29a051 100644
--- a/pkg/analyzer/lib/src/error/best_practices_verifier.dart
+++ b/pkg/analyzer/lib/src/error/best_practices_verifier.dart
@@ -183,7 +183,7 @@
     var type = node.type.type;
     if (type != null &&
         _typeSystem.isNonNullable(type) &&
-        node.expression.typeOrThrow.isDartCoreNull) {
+        node.expression2.typeOrThrow.isDartCoreNull) {
       _diagnosticReporter.report(diag.castFromNullAlwaysFails.at(node));
     }
     super.visitAsExpression(node);
@@ -291,7 +291,7 @@
 
   @override
   void visitConstantPattern(ConstantPattern node) {
-    if (node.expression.isDoubleNan) {
+    if (node.expression2.isDoubleNan) {
       _diagnosticReporter.report(diag.unnecessaryNanComparisonFalse.at(node));
     }
     super.visitConstantPattern(node);
@@ -369,7 +369,7 @@
   @override
   void visitExpressionFunctionBody(ExpressionFunctionBody node) {
     if (!_invalidAccessVerifier._inTestDirectory) {
-      _checkForReturnOfDoNotStore(node.expression);
+      _checkForReturnOfDoNotStore(node.expression2);
     }
     super.visitExpressionFunctionBody(node);
   }
@@ -410,7 +410,7 @@
       super.visitFieldDeclaration(node);
       for (var field in node.fields.variables) {
         if (!_invalidAccessVerifier._inTestDirectory) {
-          _checkForAssignmentOfDoNotStore(field.initializer);
+          _checkForAssignmentOfDoNotStore(field.initializer2);
         }
 
         var element = field.declaredFragment!.element;
@@ -750,7 +750,7 @@
   void visitPostfixExpression(PostfixExpression node) {
     _elementUsageFrontierDetector.postfixExpression(node);
     if (node.operator.type == TokenType.BANG &&
-        node.operand.typeOrThrow.isDartCoreNull) {
+        node.operand2.typeOrThrow.isDartCoreNull) {
       _diagnosticReporter.report(diag.nullCheckAlwaysFails.at(node));
     }
     super.visitPostfixExpression(node);
@@ -810,7 +810,7 @@
   @override
   void visitReturnStatement(ReturnStatement node) {
     if (!_invalidAccessVerifier._inTestDirectory) {
-      _checkForReturnOfDoNotStore(node.expression);
+      _checkForReturnOfDoNotStore(node.expression2);
     }
     super.visitReturnStatement(node);
   }
@@ -854,7 +854,7 @@
 
     if (!_invalidAccessVerifier._inTestDirectory) {
       for (var decl in node.variables.variables) {
-        _checkForAssignmentOfDoNotStore(decl.initializer);
+        _checkForAssignmentOfDoNotStore(decl.initializer2);
       }
     }
 
@@ -875,7 +875,7 @@
   /// [diag.unnecessaryTypeCheckTrue], and
   /// [diag.unnecessaryTypeCheckFalse].
   bool _checkAllTypeChecks(IsExpressionImpl node) {
-    var leftNode = node.expression;
+    var leftNode = node.expression2;
     var leftType = leftNode.typeOrThrow;
 
     var rightNode = node.type;
@@ -982,8 +982,10 @@
       return;
     }
     var expressions = node.isSet
-        ? node.elements.whereType<Expression>()
-        : node.elements.whereType<MapLiteralEntry>().map((entry) => entry.key);
+        ? node.elements2.whereType<Expression>()
+        : node.elements2.whereType<MapLiteralEntry>().map(
+            (entry) => entry.key2,
+          );
     var alreadySeen = <DartObject>{};
     for (var expression in expressions) {
       var constEvaluation = expression.computeConstantValue();
@@ -1106,10 +1108,10 @@
     }
 
     void checkLeftRight(LocatableDiagnostic locatableDiagnostic) {
-      if (node.leftOperand.isDoubleNan) {
-        reportStartEnd(locatableDiagnostic, node.leftOperand, node.operator);
-      } else if (node.rightOperand.isDoubleNan) {
-        reportStartEnd(locatableDiagnostic, node.operator, node.rightOperand);
+      if (node.leftOperand2.isDoubleNan) {
+        reportStartEnd(locatableDiagnostic, node.leftOperand2, node.operator);
+      } else if (node.rightOperand2.isDoubleNan) {
+        reportStartEnd(locatableDiagnostic, node.operator, node.rightOperand2);
       }
     }
 
@@ -1130,10 +1132,10 @@
       return;
     }
 
-    if (node.leftOperand is NullLiteral) {
-      var rightType = node.rightOperand.typeOrThrow;
+    if (node.leftOperand2 is NullLiteral) {
+      var rightType = node.rightOperand2.typeOrThrow;
       if (_typeSystem.isStrictlyNonNullable(rightType)) {
-        var offset = node.leftOperand.offset;
+        var offset = node.leftOperand2.offset;
         _diagnosticReporter.report(
           locatableDiagnostic.atOffset(
             offset: offset,
@@ -1143,14 +1145,14 @@
       }
     }
 
-    if (node.rightOperand is NullLiteral) {
-      var leftType = node.leftOperand.typeOrThrow;
+    if (node.rightOperand2 is NullLiteral) {
+      var leftType = node.leftOperand2.typeOrThrow;
       if (_typeSystem.isStrictlyNonNullable(leftType)) {
         var offset = node.operator.offset;
         _diagnosticReporter.report(
           locatableDiagnostic.atOffset(
             offset: offset,
-            length: node.rightOperand.end - offset,
+            length: node.rightOperand2.end - offset,
           ),
         );
       }
@@ -1318,8 +1320,8 @@
     }
     bool isNonObjectNoSuchMethodInvocation(Expression? invocation) {
       if (invocation is MethodInvocation &&
-          invocation.target is SuperExpression &&
-          invocation.argumentList.arguments.length == 1) {
+          invocation.target2 is SuperExpression &&
+          invocation.argumentList.arguments2.length == 1) {
         SimpleIdentifier name = invocation.methodName;
         if (name.name == MethodElement.NO_SUCH_METHOD_METHOD_NAME) {
           var methodElement = name.element;
@@ -1334,7 +1336,7 @@
 
     FunctionBody body = node.body;
     if (body is ExpressionFunctionBody) {
-      if (isNonObjectNoSuchMethodInvocation(body.expression)) {
+      if (isNonObjectNoSuchMethodInvocation(body.expression2)) {
         _diagnosticReporter.report(diag.unnecessaryNoSuchMethod.at(node.name));
         return true;
       }
@@ -1343,7 +1345,7 @@
       if (statements.length == 1) {
         Statement returnStatement = statements.first;
         if (returnStatement is ReturnStatement &&
-            isNonObjectNoSuchMethodInvocation(returnStatement.expression)) {
+            isNonObjectNoSuchMethodInvocation(returnStatement.expression2)) {
           _diagnosticReporter.report(
             diag.unnecessaryNoSuchMethod.at(node.name),
           );
@@ -1386,7 +1388,7 @@
         isReturnVoid = false;
       }
       if (isReturnVoid) {
-        var expression = body.expression;
+        var expression = body.expression2;
         if (expression is SetOrMapLiteralImpl && expression.isSet) {
           _diagnosticReporter.report(diag.unnecessarySetLiteral.at(expression));
         }
@@ -1505,26 +1507,29 @@
       }
     } else if (expression is ConditionalExpression) {
       _getSubExpressionsMarkedDoNotStore(
-        expression.elseExpression,
+        expression.elseExpression2,
         addTo: expressions,
       );
       _getSubExpressionsMarkedDoNotStore(
-        expression.thenExpression,
+        expression.thenExpression2,
         addTo: expressions,
       );
     } else if (expression is BinaryExpression) {
       _getSubExpressionsMarkedDoNotStore(
-        expression.leftOperand,
+        expression.leftOperand2,
         addTo: expressions,
       );
       _getSubExpressionsMarkedDoNotStore(
-        expression.rightOperand,
+        expression.rightOperand2,
         addTo: expressions,
       );
     } else if (expression is FunctionExpression) {
       var body = expression.body;
       if (body is ExpressionFunctionBody) {
-        _getSubExpressionsMarkedDoNotStore(body.expression, addTo: expressions);
+        _getSubExpressionsMarkedDoNotStore(
+          body.expression2,
+          addTo: expressions,
+        );
       }
     }
     if (element is PropertyAccessorElement && element.isOriginVariable) {
@@ -1562,7 +1567,7 @@
   /// Returns `true` if and only if an unnecessary cast hint should be generated
   /// on [node].  See [diag.unnecessaryCast].
   static bool _isUnnecessaryCast(AsExpression node, TypeSystemImpl typeSystem) {
-    var leftType = node.expression.typeOrThrow;
+    var leftType = node.expression2.typeOrThrow;
     var rightType = node.type.typeOrThrow;
 
     // `cannotResolve is SomeType` is already reported.
@@ -1676,7 +1681,7 @@
     if (element != null && _hasVisibleForOverriding(element)) {
       var operator = node.operator;
 
-      if (node.leftOperand is SuperExpression) {
+      if (node.leftOperand2 is SuperExpression) {
         var methodDeclaration = node.thisOrAncestorOfType2<MethodDeclaration>();
         if (methodDeclaration?.name.lexeme == operator.lexeme) {
           return;
@@ -1849,8 +1854,8 @@
     var hasVisibleForOverriding = _hasVisibleForOverriding(element);
     if (hasVisibleForOverriding) {
       var parent = node.parent2;
-      if (parent is MethodInvocation && parent.target is SuperExpression ||
-          parent is PropertyAccess && parent.target is SuperExpression) {
+      if (parent is MethodInvocation && parent.target2 is SuperExpression ||
+          parent is PropertyAccess && parent.target2 is SuperExpression) {
         var grandparent = parent?.parent2;
         var methodDeclaration = grandparent
             ?.thisOrAncestorOfType2<MethodDeclaration>();
diff --git a/pkg/analyzer/lib/src/error/const_argument_verifier.dart b/pkg/analyzer/lib/src/error/const_argument_verifier.dart
index f401cb5..4d04f6f 100644
--- a/pkg/analyzer/lib/src/error/const_argument_verifier.dart
+++ b/pkg/analyzer/lib/src/error/const_argument_verifier.dart
@@ -46,12 +46,12 @@
 
   @override
   void visitAssignmentExpression(AssignmentExpression node) {
-    _check(arguments: [node.rightHandSide], errorNode: node.operator);
+    _check(arguments: [node.rightHandSide2], errorNode: node.operator);
   }
 
   @override
   void visitBinaryExpression(BinaryExpression node) {
-    _check(arguments: [node.rightOperand], errorNode: node.operator);
+    _check(arguments: [node.rightOperand2], errorNode: node.operator);
   }
 
   @override
@@ -62,27 +62,27 @@
   @override
   void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
     if (node.staticInvokeType is FunctionType) {
-      _check(arguments: node.argumentList.arguments, errorNode: node);
+      _check(arguments: node.argumentList.arguments2, errorNode: node);
     }
   }
 
   @override
   void visitIndexExpression(IndexExpression node) {
-    _check(arguments: [node.index], errorNode: node.leftBracket);
+    _check(arguments: [node.index2], errorNode: node.leftBracket);
   }
 
   @override
   void visitInstanceCreationExpression(InstanceCreationExpression node) {
     if (node.inConstantContext) return;
     _check(
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorNode: node.constructorName,
     );
   }
 
   @override
   void visitMethodInvocation(MethodInvocation node) {
-    _check(arguments: node.argumentList.arguments, errorNode: node.methodName);
+    _check(arguments: node.argumentList.arguments2, errorNode: node.methodName);
   }
 
   @override
@@ -100,7 +100,7 @@
     RedirectingConstructorInvocation node,
   ) {
     _check(
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorNode: node.constructorName ?? node.thisKeyword,
     );
   }
@@ -121,7 +121,7 @@
   @override
   void visitSuperConstructorInvocation(SuperConstructorInvocation node) {
     _check(
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorNode: node.constructorName ?? node.superKeyword,
     );
   }
@@ -142,7 +142,7 @@
       }
 
       if (parameter.metadata.hasMustBeConst) {
-        var resolvedArgument = argument.argumentExpression;
+        var resolvedArgument = argument.argumentExpression2;
         if (!_isConst(resolvedArgument)) {
           _diagnosticReporter.report(
             diag.nonConstArgumentForConstParameter
diff --git a/pkg/analyzer/lib/src/error/dead_code_verifier.dart b/pkg/analyzer/lib/src/error/dead_code_verifier.dart
index 527b63d..9aaa63f 100644
--- a/pkg/analyzer/lib/src/error/dead_code_verifier.dart
+++ b/pkg/analyzer/lib/src/error/dead_code_verifier.dart
@@ -118,7 +118,7 @@
 
   @override
   void visitVariableDeclaration(VariableDeclaration node) {
-    var initializer = node.initializer;
+    var initializer = node.initializer2;
     if (initializer != null && node.isLate) {
       var element = node.declaredFragment!.element;
       // TODO(pq): ask the LocalVariableElement once implemented
@@ -241,7 +241,7 @@
     }
 
     var parent = firstDeadNode.parent2;
-    if (parent is Assertion && identical(firstDeadNode, parent.message)) {
+    if (parent is Assertion && identical(firstDeadNode, parent.message2)) {
       // Don't report "dead code" for the message part of an assert statement,
       // because this causes nuisance warnings for redundant `!= null`
       // asserts.
@@ -307,10 +307,10 @@
           offset = node.end;
         }
       } else if (parent is ForParts) {
-        if (parent.updaters.lastOrNull case var last?) node = last;
+        if (parent.updaters2.lastOrNull case var last?) node = last;
       } else if (parent is BinaryExpression) {
         offset = parent.operator.offset;
-        node = parent.rightOperand;
+        node = parent.rightOperand2;
       } else if (parent is LogicalOrPattern &&
           firstDeadNode == parent.rightOperand) {
         offset = parent.operator.offset;
@@ -399,13 +399,13 @@
   }
 
   void verifyCascadeExpression(CascadeExpression node) {
-    var first = node.cascadeSections.firstOrNull;
+    var first = node.cascadeSections2.firstOrNull;
     if (first is PropertyAccess) {
-      _verifyUnassignedSimpleIdentifier(node, node.target, first.operator);
+      _verifyUnassignedSimpleIdentifier(node, node.target2, first.operator);
     } else if (first is MethodInvocation) {
-      _verifyUnassignedSimpleIdentifier(node, node.target, first.operator);
+      _verifyUnassignedSimpleIdentifier(node, node.target2, first.operator);
     } else if (first is IndexExpression) {
-      _verifyUnassignedSimpleIdentifier(node, node.target, first.period);
+      _verifyUnassignedSimpleIdentifier(node, node.target2, first.period);
     }
   }
 
@@ -417,15 +417,15 @@
   }
 
   void verifyIndexExpression(IndexExpression node) {
-    _verifyUnassignedSimpleIdentifier(node, node.target, node.question);
+    _verifyUnassignedSimpleIdentifier(node, node.target2, node.question);
   }
 
   void verifyMethodInvocation(MethodInvocation node) {
-    _verifyUnassignedSimpleIdentifier(node, node.target, node.operator);
+    _verifyUnassignedSimpleIdentifier(node, node.target2, node.operator);
   }
 
   void verifyPropertyAccess(PropertyAccess node) {
-    _verifyUnassignedSimpleIdentifier(node, node.target, node.operator);
+    _verifyUnassignedSimpleIdentifier(node, node.target2, node.operator);
   }
 
   void visitNode(AstNode node) {
diff --git a/pkg/analyzer/lib/src/error/deprecated_functionality_verifier.dart b/pkg/analyzer/lib/src/error/deprecated_functionality_verifier.dart
index 16d55dd..96cd894 100644
--- a/pkg/analyzer/lib/src/error/deprecated_functionality_verifier.dart
+++ b/pkg/analyzer/lib/src/error/deprecated_functionality_verifier.dart
@@ -218,7 +218,7 @@
     required SyntacticEntity errorEntity,
   }) {
     var omittedParameters = element.formalParameters.toList();
-    for (var argument in argumentList.arguments) {
+    for (var argument in argumentList.arguments2) {
       var parameter = argument.correspondingParameter;
       if (parameter == null) continue;
       omittedParameters.remove(parameter);
@@ -305,7 +305,7 @@
       // `superConstructorInvocation` or via super-parameters.
       var superConstructorInvocation = superConstructorInvocations.single;
       superConstructorArguments =
-          superConstructorInvocation.argumentList.arguments;
+          superConstructorInvocation.argumentList.arguments2;
 
       var errorEntity =
           superConstructorInvocation.constructorName ??
diff --git a/pkg/analyzer/lib/src/error/element_usage_detector.dart b/pkg/analyzer/lib/src/error/element_usage_detector.dart
index 42e9b0b..039d132 100644
--- a/pkg/analyzer/lib/src/error/element_usage_detector.dart
+++ b/pkg/analyzer/lib/src/error/element_usage_detector.dart
@@ -51,8 +51,8 @@
   }
 
   void assignmentExpression(AssignmentExpression node) {
-    checkUsage(node.readElement, node.leftHandSide);
-    checkUsage(node.writeElement, node.leftHandSide);
+    checkUsage(node.readElement, node.leftHandSide2);
+    checkUsage(node.writeElement, node.leftHandSide2);
     checkUsage(node.element, node);
   }
 
@@ -109,7 +109,7 @@
 
     SyntacticEntity errorEntity = node;
     var parent = node.parent2;
-    if (parent is AssignmentExpression && parent.leftHandSide == node) {
+    if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
       if (node is SimpleIdentifier) {
         errorEntity = node;
       } else if (node is PrefixedIdentifier) {
@@ -288,14 +288,14 @@
   }
 
   void postfixExpression(PostfixExpression node) {
-    checkUsage(node.readElement, node.operand);
-    checkUsage(node.writeElement, node.operand);
+    checkUsage(node.readElement, node.operand2);
+    checkUsage(node.writeElement, node.operand2);
     checkUsage(node.element, node);
   }
 
   void prefixExpression(PrefixExpression node) {
-    checkUsage(node.readElement, node.operand);
-    checkUsage(node.writeElement, node.operand);
+    checkUsage(node.readElement, node.operand2);
+    checkUsage(node.writeElement, node.operand2);
     checkUsage(node.element, node);
   }
 
@@ -359,7 +359,7 @@
     if (element is ExecutableElement) {
       _visitParametersAndArguments(
         element.formalParameters,
-        arguments.arguments,
+        arguments.arguments2,
       );
     }
   }
diff --git a/pkg/analyzer/lib/src/error/error_handler_verifier.dart b/pkg/analyzer/lib/src/error/error_handler_verifier.dart
index 06a2703..f373c70 100644
--- a/pkg/analyzer/lib/src/error/error_handler_verifier.dart
+++ b/pkg/analyzer/lib/src/error/error_handler_verifier.dart
@@ -65,7 +65,7 @@
       return;
     }
 
-    if (node.argumentList.arguments.isEmpty) {
+    if (node.argumentList.arguments2.isEmpty) {
       return;
     }
 
@@ -75,47 +75,47 @@
     }
     var methodName = node.methodName.name;
     if (methodName == 'catchError' && targetType.isDartAsyncFuture) {
-      var callback = node.argumentList.arguments.first;
+      var callback = node.argumentList.arguments2.first;
       if (callback is NamedArgument) {
         // TODO(srawlins): The comment below is wrong, given
         // `named-arguments-anywhere`.
         // This implies that no positional arguments are passed.
         return;
       }
-      _checkFutureCatchErrorOnError(target, callback.argumentExpression);
+      _checkFutureCatchErrorOnError(target, callback.argumentExpression2);
       return;
     }
 
     if (methodName == 'then' && targetType.isDartAsyncFuture) {
-      var callback = node.argumentList.arguments
+      var callback = node.argumentList.arguments2
           .whereType<NamedArgument>()
           .firstWhereOrNull((argument) => argument.name.lexeme == 'onError');
       if (callback == null) {
         return;
       }
-      _checkFutureThenOnError(node, callback.argumentExpression);
+      _checkFutureThenOnError(node, callback.argumentExpression2);
       return;
     }
 
     if (methodName == 'handleError' &&
         _isDartCoreAsyncType(targetType, 'Stream')) {
-      var callback = node.argumentList.arguments.first;
+      var callback = node.argumentList.arguments2.first;
       if (callback is NamedArgument) {
         // This implies that no positional arguments are passed.
         return;
       }
-      var callbackType = callback.argumentExpression.staticType;
+      var callbackType = callback.argumentExpression2.staticType;
       if (callbackType == null) {
         return;
       }
       if (callbackType is FunctionTypeImpl) {
         _checkErrorHandlerFunctionType(
           callback,
-          callback.argumentExpression,
+          callback.argumentExpression2,
           callbackType,
           _typeProvider.voidType,
           checkFirstParameterType:
-              callback.argumentExpression is FunctionExpression,
+              callback.argumentExpression2 is FunctionExpression,
         );
         return;
       }
@@ -124,24 +124,24 @@
     }
 
     if (methodName == 'listen' && _isDartCoreAsyncType(targetType, 'Stream')) {
-      var callback = node.argumentList.arguments
+      var callback = node.argumentList.arguments2
           .whereType<NamedArgument>()
           .firstWhereOrNull((argument) => argument.name.lexeme == 'onError');
       if (callback == null) {
         return;
       }
-      var callbackType = callback.argumentExpression.staticType;
+      var callbackType = callback.argumentExpression2.staticType;
       if (callbackType == null) {
         return;
       }
       if (callbackType is FunctionTypeImpl) {
         _checkErrorHandlerFunctionType(
           callback,
-          callback.argumentExpression,
+          callback.argumentExpression2,
           callbackType,
           _typeProvider.voidType,
           checkFirstParameterType:
-              callback.argumentExpression is FunctionExpression,
+              callback.argumentExpression2 is FunctionExpression,
         );
         return;
       }
@@ -151,23 +151,23 @@
 
     if (methodName == 'onError' &&
         _isDartCoreAsyncType(targetType, 'StreamSubscription')) {
-      var callback = node.argumentList.arguments.first;
+      var callback = node.argumentList.arguments2.first;
       if (callback is NamedArgument) {
         // This implies that no positional arguments are passed.
         return;
       }
-      var callbackType = callback.argumentExpression.staticType;
+      var callbackType = callback.argumentExpression2.staticType;
       if (callbackType == null) {
         return;
       }
       if (callbackType is FunctionTypeImpl) {
         _checkErrorHandlerFunctionType(
           callback,
-          callback.argumentExpression,
+          callback.argumentExpression2,
           callbackType,
           _typeProvider.voidType,
           checkFirstParameterType:
-              callback.argumentExpression is FunctionExpression,
+              callback.argumentExpression2 is FunctionExpression,
         );
         return;
       }
diff --git a/pkg/analyzer/lib/src/error/literal_element_verifier.dart b/pkg/analyzer/lib/src/error/literal_element_verifier.dart
index 40c6cd8..1419fae 100644
--- a/pkg/analyzer/lib/src/error/literal_element_verifier.dart
+++ b/pkg/analyzer/lib/src/error/literal_element_verifier.dart
@@ -100,10 +100,10 @@
           _diagnosticReporter.report(diag.expressionInMap.at(element));
         }
       case ForElementImpl():
-        _verifyElement(element.body);
+        _verifyElement(element.body2);
       case IfElementImpl():
-        _verifyElement(element.thenElement);
-        _verifyElement(element.elseElement);
+        _verifyElement(element.thenElement2);
+        _verifyElement(element.elseElement2);
       case MapLiteralEntryImpl():
         if (forMap) {
           _verifyMapLiteralEntry(element);
@@ -112,7 +112,7 @@
         }
       case SpreadElementImpl():
         var isNullAware = element.isNullAware;
-        Expression expression = element.expression;
+        Expression expression = element.expression2;
         if (forList || forSet) {
           _verifySpreadForListOrSet(isNullAware, expression);
         } else if (forMap) {
@@ -120,11 +120,11 @@
         }
       case NullAwareElementImpl():
         if (forList || forSet) {
-          var valueType = element.value.typeOrThrow;
+          var valueType = element.value2.typeOrThrow;
           // A null-aware marker tests this expression for `null`, so a `void`
           // value is used even when the stored element type is also `void`.
           if (valueType is VoidType) {
-            _errorVerifier.checkForUseOfVoidResult(element.value);
+            _errorVerifier.checkForUseOfVoidResult(element.value2);
             return;
           }
           _checkAssignableToElementType(
@@ -143,32 +143,32 @@
   /// and [mapValueType].
   void _verifyMapLiteralEntry(MapLiteralEntry entry) {
     var mapKeyType = this.mapKeyType!;
-    var keyType = entry.key.typeOrThrow;
+    var keyType = entry.key2.typeOrThrow;
 
     // A null-aware marker tests this expression for `null`, so a `void` value
     // is used even when the stored key type is also `void`.
     if (entry.keyQuestion != null && keyType is VoidType) {
-      _errorVerifier.checkForUseOfVoidResult(entry.key);
+      _errorVerifier.checkForUseOfVoidResult(entry.key2);
       return;
     }
 
     if (mapKeyType is! VoidType &&
-        _errorVerifier.checkForUseOfVoidResult(entry.key)) {
+        _errorVerifier.checkForUseOfVoidResult(entry.key2)) {
       return;
     }
 
     var mapValueType = this.mapValueType!;
-    var valueType = entry.value.typeOrThrow;
+    var valueType = entry.value2.typeOrThrow;
 
     // A null-aware marker tests this expression for `null`, so a `void` value
     // is used even when the stored value type is also `void`.
     if (entry.valueQuestion != null && valueType is VoidType) {
-      _errorVerifier.checkForUseOfVoidResult(entry.value);
+      _errorVerifier.checkForUseOfVoidResult(entry.value2);
       return;
     }
 
     if (mapValueType is! VoidType &&
-        _errorVerifier.checkForUseOfVoidResult(entry.value)) {
+        _errorVerifier.checkForUseOfVoidResult(entry.value2)) {
       return;
     }
 
@@ -191,13 +191,13 @@
         _diagnosticReporter.report(
           diag.mapKeyTypeNotAssignableNullability
               .withArguments(actualType: keyType, expectedType: mapKeyType)
-              .at(entry.key),
+              .at(entry.key2),
         );
       } else {
         _diagnosticReporter.report(
           diag.mapKeyTypeNotAssignable
               .withArguments(actualType: keyType, expectedType: mapKeyType)
-              .at(entry.key),
+              .at(entry.key2),
         );
       }
     }
@@ -221,13 +221,13 @@
         _diagnosticReporter.report(
           diag.mapValueTypeNotAssignableNullability
               .withArguments(actualType: valueType, expectedType: mapValueType)
-              .at(entry.value),
+              .at(entry.value2),
         );
       } else {
         _diagnosticReporter.report(
           diag.mapValueTypeNotAssignable
               .withArguments(actualType: valueType, expectedType: mapValueType)
-              .at(entry.value),
+              .at(entry.value2),
         );
       }
     }
diff --git a/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart b/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart
index 6988b22..01a3273 100644
--- a/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart
+++ b/pkg/analyzer/lib/src/error/null_safe_api_verifier.dart
@@ -72,9 +72,9 @@
     // If there's more than one argument, something else is wrong (and will
     // generate another diagnostic). Also, only check the argument type if we
     // expect a non-nullable type in the first place.
-    if (args.arguments.length > 1 || !_typeSystem.isNonNullable(type)) return;
+    if (args.arguments2.length > 1 || !_typeSystem.isNonNullable(type)) return;
 
-    var argument = args.arguments.isEmpty ? null : args.arguments.single;
+    var argument = args.arguments2.isEmpty ? null : args.arguments2.single;
     var argumentType = argument?.argumentExpression.staticType;
     // Skip if the type is not currently resolved.
     if (argument != null && argumentType == null) return;
diff --git a/pkg/analyzer/lib/src/error/required_parameters_verifier.dart b/pkg/analyzer/lib/src/error/required_parameters_verifier.dart
index 929fda6..df29fa1 100644
--- a/pkg/analyzer/lib/src/error/required_parameters_verifier.dart
+++ b/pkg/analyzer/lib/src/error/required_parameters_verifier.dart
@@ -26,7 +26,7 @@
       if (errorNode != null) {
         _check(
           parameters: element.formalParameters,
-          arguments: argumentList.arguments,
+          arguments: argumentList.arguments2,
           errorEntity: errorNode,
         );
       }
@@ -41,7 +41,7 @@
     if (constructorElement is ConstructorElement) {
       _check(
         parameters: constructorElement.formalParameters,
-        arguments: node.argumentList.arguments,
+        arguments: node.argumentList.arguments2,
         errorEntity: node.constructorName,
       );
     }
@@ -51,7 +51,7 @@
   void visitDotShorthandInvocation(DotShorthandInvocation node) {
     _check(
       parameters: _executableElement(node.memberName.element)?.formalParameters,
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorEntity: node.memberName,
     );
   }
@@ -60,7 +60,7 @@
   void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
     _check(
       parameters: node.constructorElement?.formalParameters,
-      arguments: node.arguments?.argumentList.arguments ?? <Argument>[],
+      arguments: node.arguments?.argumentList.arguments2 ?? <Argument>[],
       errorEntity: node.name,
     );
   }
@@ -71,7 +71,7 @@
     if (type is FunctionType) {
       _check(
         parameters: type.formalParameters,
-        arguments: node.argumentList.arguments,
+        arguments: node.argumentList.arguments2,
         errorEntity: node,
       );
     }
@@ -81,7 +81,7 @@
   void visitInstanceCreationExpression(InstanceCreationExpression node) {
     _check(
       parameters: node.constructorName.element?.formalParameters,
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorEntity: node.constructorName,
     );
   }
@@ -93,7 +93,7 @@
       if (targetType is FunctionType) {
         _check(
           parameters: targetType.formalParameters,
-          arguments: node.argumentList.arguments,
+          arguments: node.argumentList.arguments2,
           errorEntity: node.argumentList,
         );
         return;
@@ -102,7 +102,7 @@
 
     _check(
       parameters: _executableElement(node.methodName.element)?.formalParameters,
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorEntity: node.methodName,
     );
   }
@@ -113,7 +113,7 @@
   ) {
     _check(
       parameters: _executableElement(node.element)?.formalParameters,
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorEntity: node,
     );
   }
@@ -126,7 +126,7 @@
     _check(
       parameters: _executableElement(node.element)?.formalParameters,
       enclosingConstructor: enclosingConstructor,
-      arguments: node.argumentList.arguments,
+      arguments: node.argumentList.arguments2,
       errorEntity: node,
     );
   }
diff --git a/pkg/analyzer/lib/src/error/return_type_verifier.dart b/pkg/analyzer/lib/src/error/return_type_verifier.dart
index f790256..ae0dd36 100644
--- a/pkg/analyzer/lib/src/error/return_type_verifier.dart
+++ b/pkg/analyzer/lib/src/error/return_type_verifier.dart
@@ -48,11 +48,11 @@
       return;
     }
 
-    return _checkReturnExpression(node.expression);
+    return _checkReturnExpression(node.expression2);
   }
 
   void verifyReturnStatement(ReturnStatement statement) {
-    var expression = statement.expression;
+    var expression = statement.expression2;
 
     if (enclosingExecutable.isGenerativeConstructor) {
       if (expression != null) {
diff --git a/pkg/analyzer/lib/src/error/type_arguments_verifier.dart b/pkg/analyzer/lib/src/error/type_arguments_verifier.dart
index c3da31c..46c2a56 100644
--- a/pkg/analyzer/lib/src/error/type_arguments_verifier.dart
+++ b/pkg/analyzer/lib/src/error/type_arguments_verifier.dart
@@ -181,7 +181,7 @@
     // expressions, the function is on `node`'s `function`.
     // TODO(srawlins): It seems that `node.function`, the Expression, should
     // always have the static type of the `call` method.
-    var functionType = node.element?.type ?? node.function.staticType;
+    var functionType = node.element?.type ?? node.function2.staticType;
     _checkInvocationTypeArguments(
       node.typeArguments?.arguments,
       functionType,
@@ -192,7 +192,7 @@
   void checkFunctionReference(FunctionReference node) {
     _checkInvocationTypeArguments(
       node.typeArguments?.arguments,
-      node.function.staticType,
+      node.function2.staticType,
       node.staticType,
     );
   }
diff --git a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
index a28e4e7..7233c3f 100644
--- a/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
+++ b/pkg/analyzer/lib/src/error/unused_local_elements_verifier.dart
@@ -208,7 +208,7 @@
   @override
   void visitIsExpression(IsExpression node) {
     var insideIsExpressionOld = _insideIsExpression;
-    node.expression.accept2(this);
+    node.expression2.accept2(this);
     try {
       _insideIsExpression = true;
       node.type.accept2(this);
@@ -392,7 +392,7 @@
   }
 
   void _addParametersForArguments(ArgumentList argumentList) {
-    for (var argument in argumentList.arguments) {
+    for (var argument in argumentList.arguments2) {
       var parameter = argument.correspondingParameter;
       usedElements.addElement(parameter);
     }
@@ -440,7 +440,7 @@
         // ++v;
         return false;
       }
-      if (parent is AssignmentExpression && parent.leftHandSide == node) {
+      if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
         // v ??= doSomething();
         //   vs.
         // v += 2;
diff --git a/pkg/analyzer/lib/src/error/use_result_verifier.dart b/pkg/analyzer/lib/src/error/use_result_verifier.dart
index 8d638b4..87a7312 100644
--- a/pkg/analyzer/lib/src/error/use_result_verifier.dart
+++ b/pkg/analyzer/lib/src/error/use_result_verifier.dart
@@ -163,7 +163,7 @@
     }
 
     if (parent is CascadeExpression) {
-      return parent.target == node;
+      return parent.target2 == node;
     }
 
     if (parent is PrefixedIdentifier) {
@@ -253,7 +253,7 @@
   AstNode get nodeToAnnotate => switch (this) {
     MethodInvocation node => node.methodName,
     PropertyAccess node => node.propertyName,
-    FunctionExpressionInvocation node => node.function.nodeToAnnotate,
+    FunctionExpressionInvocation node => node.function2.nodeToAnnotate,
     _ => this,
   };
 }
diff --git a/pkg/analyzer/lib/src/error/widget_preview_verifier.dart b/pkg/analyzer/lib/src/error/widget_preview_verifier.dart
index d991c21..5bb6026 100644
--- a/pkg/analyzer/lib/src/error/widget_preview_verifier.dart
+++ b/pkg/analyzer/lib/src/error/widget_preview_verifier.dart
@@ -233,10 +233,10 @@
 
   @override
   void visitArgumentList(ArgumentList node) {
-    for (var argument in node.arguments) {
+    for (var argument in node.arguments2) {
       if (argument is NamedArgument) {
         rootArgument = argument;
-        argument.argumentExpression.accept2(this);
+        argument.argumentExpression2.accept2(this);
         rootArgument = null;
       }
     }
diff --git a/pkg/analyzer/lib/src/fasta/ast_builder.dart b/pkg/analyzer/lib/src/fasta/ast_builder.dart
index 5fb4127..0f01999 100644
--- a/pkg/analyzer/lib/src/fasta/ast_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/ast_builder.dart
@@ -215,8 +215,8 @@
     } else {
       push(
         CascadeExpressionImpl(
-          target: expression,
-          cascadeSections: <ExpressionImpl>[],
+          target2: expression,
+          cascadeSections2: <ExpressionImpl>[],
         ),
       );
     }
@@ -639,7 +639,7 @@
 
   ConstructorInitializerImpl? buildInitializer(Object initializerObject) {
     if (initializerObject is FunctionExpressionInvocationImpl) {
-      var function = initializerObject.function;
+      var function = initializerObject.function2;
       if (function is SuperExpressionImpl) {
         return SuperConstructorInvocationImpl(
           superKeyword: function.superKeyword,
@@ -660,7 +660,7 @@
     }
 
     if (initializerObject is MethodInvocationImpl) {
-      var target = initializerObject.target;
+      var target = initializerObject.target2;
       if (target is SuperExpressionImpl) {
         return SuperConstructorInvocationImpl(
           superKeyword: target.superKeyword,
@@ -685,7 +685,7 @@
 
     if (initializerObject is PropertyAccessImpl) {
       return buildInitializerTargetExpressionRecovery(
-        initializerObject.target,
+        initializerObject.target2,
         initializerObject,
       );
     }
@@ -694,9 +694,9 @@
       Token? thisKeyword;
       Token? period;
       SimpleIdentifierImpl fieldName;
-      var left = initializerObject.leftHandSide;
+      var left = initializerObject.leftHandSide2;
       if (left is PropertyAccessImpl) {
-        var target = left.target;
+        var target = left.target2;
         if (target is ThisExpressionImpl) {
           thisKeyword = target.thisKeyword;
           period = left.operator;
@@ -716,7 +716,7 @@
         period: period,
         fieldName: fieldName,
         equals: initializerObject.operator,
-        expression: initializerObject.rightHandSide,
+        expression2: initializerObject.rightHandSide2,
       );
     }
 
@@ -726,14 +726,14 @@
 
     if (initializerObject is IndexExpressionImpl) {
       return buildInitializerTargetExpressionRecovery(
-        initializerObject.target,
+        initializerObject.target2,
         initializerObject,
       );
     }
 
     if (initializerObject is CascadeExpressionImpl) {
       return buildInitializerTargetExpressionRecovery(
-        initializerObject.target,
+        initializerObject.target2,
         initializerObject,
       );
     }
@@ -749,13 +749,13 @@
     while (true) {
       if (target is FunctionExpressionInvocationImpl) {
         argumentList = target.argumentList;
-        target = target.function;
+        target = target.function2;
       } else if (target is MethodInvocationImpl) {
         argumentList = target.argumentList;
-        target = target.target;
+        target = target.target2;
       } else if (target is PropertyAccessImpl) {
         argumentList = null;
-        target = target.target;
+        target = target.target2;
       } else {
         break;
       }
@@ -841,16 +841,16 @@
       } else {
         push(
           PropertyAccessImpl(
-            target: receiver,
+            target2: receiver,
             operator: dot,
             propertyName: identifierOrInvoke,
           ),
         );
       }
     } else if (identifierOrInvoke is MethodInvocationImpl) {
-      assert(identifierOrInvoke.target == null);
+      assert(identifierOrInvoke.target2 == null);
       identifierOrInvoke
-        ..target = receiver
+        ..target2 = receiver
         ..operator = dot;
       push(identifierOrInvoke);
     } else {
@@ -866,7 +866,7 @@
       SimpleIdentifierImpl identifier = SimpleIdentifierImpl(token: token);
       push(
         PropertyAccessImpl(
-          target: receiver,
+          target2: receiver,
           operator: dot,
           propertyName: identifier,
         ),
@@ -883,7 +883,7 @@
       case SimpleIdentifierImpl():
         push(
           MethodInvocationImpl(
-            target: null,
+            target2: null,
             operator: null,
             methodName: receiver,
             typeArguments: typeArguments,
@@ -893,7 +893,7 @@
       default:
         push(
           FunctionExpressionInvocationImpl(
-            function: receiver,
+            function2: receiver,
             typeArguments: typeArguments,
             argumentList: argumentList,
           ),
@@ -936,7 +936,7 @@
       expressionOrBlock as ExpressionImpl;
       methodBody = AnonymousExpressionBodyImpl(
         functionDefinition: functionDefinition!,
-        expression: expressionOrBlock,
+        expression2: expressionOrBlock,
       );
     } else {
       expressionOrBlock as BlockImpl;
@@ -945,7 +945,7 @@
 
     push(
       AnonymousMethodInvocationImpl(
-        target: target,
+        target2: target,
         operator: startToken,
         parameters: formals,
         body: methodBody,
@@ -966,7 +966,7 @@
 
     var argumentList = ArgumentListImpl(
       leftParenthesis: leftParenthesis,
-      arguments: expressions,
+      arguments2: expressions,
       rightParenthesis: rightParenthesis,
     );
 
@@ -1020,11 +1020,11 @@
         }
         push(
           FunctionExpressionInvocationImpl(
-            function: SimpleIdentifierImpl(token: assertKeyword),
+            function2: SimpleIdentifierImpl(token: assertKeyword),
             typeArguments: null,
             argumentList: ArgumentListImpl(
               leftParenthesis: leftParenthesis,
-              arguments: arguments,
+              arguments2: arguments,
               rightParenthesis: leftParenthesis.endGroup!,
             ),
           ),
@@ -1034,9 +1034,9 @@
           AssertInitializerImpl(
             assertKeyword: assertKeyword,
             leftParenthesis: leftParenthesis,
-            condition: condition,
+            condition2: condition,
             comma: comma,
-            message: message,
+            message2: message,
             rightParenthesis: leftParenthesis.endGroup!,
           ),
         );
@@ -1045,9 +1045,9 @@
           AssertStatementImpl(
             assertKeyword: assertKeyword,
             leftParenthesis: leftParenthesis,
-            condition: condition,
+            condition2: condition,
             comma: comma,
-            message: message,
+            message2: message,
             rightParenthesis: leftParenthesis.endGroup!,
             semicolon: endToken.next!,
           ),
@@ -1064,7 +1064,7 @@
     reportErrorIfSuper(expression);
 
     push(
-      AwaitExpressionImpl(awaitKeyword: awaitKeyword, expression: expression),
+      AwaitExpressionImpl(awaitKeyword: awaitKeyword, expression2: expression),
     );
   }
 
@@ -1082,9 +1082,9 @@
     reportErrorIfSuper(right);
     push(
       BinaryExpressionImpl(
-        leftOperand: left,
+        leftOperand2: left,
         operator: operatorToken,
-        rightOperand: right,
+        rightOperand2: right,
       ),
     );
     if (!enableTripleShift && operatorToken.type == TokenType.GT_GT_GT) {
@@ -1184,9 +1184,9 @@
     pop(); // Token.
     push(
       CascadeExpressionImpl(
-        target: cascade.target,
-        cascadeSections: <ExpressionImpl>[
-          ...cascade.cascadeSections,
+        target2: cascade.target2,
+        cascadeSections2: <ExpressionImpl>[
+          ...cascade.cascadeSections2,
           expression,
         ],
       ),
@@ -1202,7 +1202,7 @@
     WhenClauseImpl? whenClause;
     if (when != null) {
       var expression = pop() as ExpressionImpl;
-      whenClause = WhenClauseImpl(whenKeyword: when, expression: expression);
+      whenClause = WhenClauseImpl(whenKeyword: when, expression2: expression);
     }
 
     if (_featureSet.isEnabled(Feature.patterns)) {
@@ -1225,7 +1225,7 @@
         SwitchCaseImpl(
           labels: <LabelImpl>[],
           keyword: caseKeyword,
-          expression: expression,
+          expression2: expression,
           colon: colon,
           statements: <StatementImpl>[],
         ),
@@ -1304,11 +1304,11 @@
     reportErrorIfSuper(thenExpression);
     push(
       ConditionalExpressionImpl(
-        condition: condition,
+        condition2: condition,
         question: question,
-        thenExpression: thenExpression,
+        thenExpression2: thenExpression,
         colon: colon,
-        elseExpression: elseExpression,
+        elseExpression2: elseExpression,
       ),
     );
   }
@@ -1361,7 +1361,7 @@
     push(
       ConstantPatternImpl(
         constKeyword: constKeyword,
-        expression: pop() as ExpressionImpl,
+        expression2: pop() as ExpressionImpl,
       ),
     );
   }
@@ -1490,7 +1490,7 @@
         body: body,
         whileKeyword: whileKeyword,
         leftParenthesis: condition.leftParenthesis,
-        condition: condition.expression,
+        condition2: condition.expression,
         rightParenthesis: condition.rightParenthesis,
         semicolon: semicolon,
       ),
@@ -1660,7 +1660,7 @@
         metadata: [],
         name: name.token,
         equals: equals,
-        initializer: initializer,
+        initializer2: initializer,
       ),
     );
   }
@@ -1709,7 +1709,7 @@
         leftParenthesis: leftParenthesis,
         forLoopParts: forLoopParts,
         rightParenthesis: leftParenthesis.endGroup!,
-        body: body,
+        body2: body,
       ),
     );
   }
@@ -1758,7 +1758,7 @@
         leftParenthesis: leftParenthesis,
         forLoopParts: forLoopParts,
         rightParenthesis: leftParenthesis.endGroup!,
-        body: body,
+        body2: body,
       ),
     );
   }
@@ -2069,12 +2069,12 @@
       IfElementImpl(
         ifKeyword: ifToken,
         leftParenthesis: condition.leftParenthesis,
-        expression: condition.expression,
+        expression2: condition.expression,
         caseClause: condition.caseClause,
         rightParenthesis: condition.rightParenthesis,
-        thenElement: thenElement,
+        thenElement2: thenElement,
         elseKeyword: null,
-        elseElement: null,
+        elseElement2: null,
       ),
     );
   }
@@ -2090,12 +2090,12 @@
       IfElementImpl(
         ifKeyword: ifToken,
         leftParenthesis: condition.leftParenthesis,
-        expression: condition.expression,
+        expression2: condition.expression,
         caseClause: condition.caseClause,
         rightParenthesis: condition.rightParenthesis,
-        thenElement: thenElement,
+        thenElement2: thenElement,
         elseKeyword: elseToken,
-        elseElement: elseElement,
+        elseElement2: elseElement,
       ),
     );
   }
@@ -2112,7 +2112,7 @@
       IfStatementImpl(
         ifKeyword: ifToken,
         leftParenthesis: condition.leftParenthesis,
-        expression: condition.expression,
+        expression2: condition.expression,
         caseClause: condition.caseClause,
         rightParenthesis: condition.rightParenthesis,
         thenStatement: thenPart,
@@ -2178,7 +2178,7 @@
         metadata: [],
         name: node.token,
         equals: null,
-        initializer: null,
+        initializer2: null,
       );
     } else {
       internalProblem(
@@ -2621,7 +2621,7 @@
     push(
       ParenthesizedExpressionImpl(
         leftParenthesis: leftParenthesis,
-        expression: expression,
+        expression2: expression,
         rightParenthesis: leftParenthesis.endGroup!,
       ),
     );
@@ -2694,7 +2694,7 @@
   void endPatternGuard(Token when) {
     debugEvent("PatternGuard");
     var expression = pop() as ExpressionImpl;
-    push(WhenClauseImpl(whenKeyword: when, expression: expression));
+    push(WhenClauseImpl(whenKeyword: when, expression2: expression));
   }
 
   @override
@@ -2791,7 +2791,7 @@
         RecordLiteralImpl(
           constKeyword: constKeyword,
           leftParenthesis: leftParenthesis,
-          fields: fields,
+          fields2: fields,
           rightParenthesis: rightParenthesis,
         ),
       );
@@ -2809,7 +2809,7 @@
       push(
         ParenthesizedExpressionImpl(
           leftParenthesis: leftParenthesis,
-          expression: expression,
+          expression2: expression,
           rightParenthesis: rightParenthesis,
         ),
       );
@@ -2933,7 +2933,9 @@
 
     var expression = RethrowExpressionImpl(rethrowKeyword: rethrowToken);
     // TODO(scheglov): According to the specification, 'rethrow' is a statement.
-    push(ExpressionStatementImpl(expression: expression, semicolon: semicolon));
+    push(
+      ExpressionStatementImpl(expression2: expression, semicolon: semicolon),
+    );
   }
 
   @override
@@ -2950,7 +2952,7 @@
     push(
       ReturnStatementImpl(
         returnKeyword: returnKeyword,
-        expression: expression,
+        expression2: expression,
         semicolon: semicolon,
       ),
     );
@@ -3034,7 +3036,7 @@
         return SwitchCaseImpl(
           labels: labels ?? member.labels,
           keyword: member.keyword,
-          expression: member.expression,
+          expression2: member.expression2,
           colon: member.colon,
           statements: statements ?? member.statements,
         );
@@ -3112,7 +3114,7 @@
       SwitchExpressionImpl(
         switchKeyword: switchKeyword,
         leftParenthesis: condition.leftParenthesis,
-        expression: condition.expression,
+        expression2: condition.expression,
         rightParenthesis: condition.rightParenthesis,
         leftBracket: leftBracket,
         cases: cases,
@@ -3150,7 +3152,7 @@
     WhenClauseImpl? whenClause;
     if (when != null) {
       var expression = pop() as ExpressionImpl;
-      whenClause = WhenClauseImpl(whenKeyword: when, expression: expression);
+      whenClause = WhenClauseImpl(whenKeyword: when, expression2: expression);
     }
     var pattern = pop() as DartPatternImpl;
     push(
@@ -3160,7 +3162,7 @@
           whenClause: whenClause,
         ),
         arrow: arrow,
-        expression: expression,
+        expression2: expression,
       ),
     );
   }
@@ -3178,7 +3180,7 @@
       SwitchStatementImpl(
         switchKeyword: switchKeyword,
         leftParenthesis: condition.leftParenthesis,
-        expression: condition.expression,
+        expression2: condition.expression,
         rightParenthesis: condition.rightParenthesis,
         leftBracket: leftBracket,
         members: members,
@@ -3466,7 +3468,7 @@
         metadata: [],
         name: identifier.token,
         equals: equals,
-        initializer: initializer,
+        initializer2: initializer,
       ),
     );
   }
@@ -3498,7 +3500,7 @@
               if (awaitToken.type == Keyword.AWAIT) {
                 push(
                   ExpressionStatementImpl(
-                    expression: PrefixedIdentifierImpl(
+                    expression2: PrefixedIdentifierImpl(
                       prefix: SimpleIdentifierImpl(token: importPrefix.name),
                       period: importPrefix.period,
                       identifier: SimpleIdentifierImpl(
@@ -3531,7 +3533,7 @@
                 );
                 push(
                   ExpressionStatementImpl(
-                    expression: PrefixedIdentifierImpl(
+                    expression2: PrefixedIdentifierImpl(
                       prefix: SimpleIdentifierImpl(token: importPrefix.name),
                       period: importPrefix.period,
                       identifier: SimpleIdentifierImpl(token: type.name),
@@ -3573,7 +3575,7 @@
       WhileStatementImpl(
         whileKeyword: whileKeyword,
         leftParenthesis: condition.leftParenthesis,
-        condition: condition.expression,
+        condition2: condition.expression,
         rightParenthesis: condition.rightParenthesis,
         body: body,
       ),
@@ -3597,7 +3599,7 @@
       YieldStatementImpl(
         yieldKeyword: yieldToken,
         star: starToken,
-        expression: expression,
+        expression2: expression,
         semicolon: semicolon,
       ),
     );
@@ -3622,7 +3624,7 @@
 
     push(
       AsExpressionImpl(
-        expression: expression,
+        expression2: expression,
         asOperator: asOperator,
         type: type,
       ),
@@ -3655,9 +3657,9 @@
     reportErrorIfSuper(rhs);
     push(
       AssignmentExpressionImpl(
-        leftHandSide: lhs,
+        leftHandSide2: lhs,
         operator: token,
-        rightHandSide: rhs,
+        rightHandSide2: rhs,
       ),
     );
     if (!enableTripleShift && token.type == TokenType.GT_GT_GT_EQ) {
@@ -4187,7 +4189,7 @@
           keyword: asyncKeyword,
           star: star,
           functionDefinition: arrowToken,
-          expression: expression,
+          expression2: expression,
           semicolon: semicolon,
         ),
       );
@@ -4212,16 +4214,18 @@
       );
     }
     if (expression is AssignmentExpressionImpl) {
-      if (!expression.leftHandSide.isAssignable) {
+      if (!expression.leftHandSide2.isAssignable) {
         // This error is also reported by the body builder.
         handleRecoverableError(
           fe_diag.illegalAssignmentToNonAssignable,
-          expression.leftHandSide.beginToken,
-          expression.leftHandSide.endToken,
+          expression.leftHandSide2.beginToken,
+          expression.leftHandSide2.endToken,
         );
       }
     }
-    push(ExpressionStatementImpl(expression: expression, semicolon: semicolon));
+    push(
+      ExpressionStatementImpl(expression2: expression, semicolon: semicolon),
+    );
   }
 
   @override
@@ -4259,7 +4263,7 @@
         keyword: keyword,
         pattern: pattern,
         equals: equals,
-        expression: expression,
+        expression2: expression,
         comment: null,
         metadata: metadata,
       ),
@@ -4353,7 +4357,7 @@
     ExpressionImpl? condition;
     Token rightSeparator;
     if (conditionStatement is ExpressionStatementImpl) {
-      condition = conditionStatement.expression;
+      condition = conditionStatement.expression2;
       rightSeparator = conditionStatement.semicolon!;
     } else {
       rightSeparator = (conditionStatement as EmptyStatementImpl).semicolon;
@@ -4366,7 +4370,7 @@
         leftSeparator: leftSeparator,
         condition: condition,
         rightSeparator: rightSeparator,
-        updaters: updates,
+        updaters2: updates,
       );
     } else if (initializerPart is PatternVariableDeclarationImpl) {
       forLoopParts = ForPartsWithPatternImpl(
@@ -4374,15 +4378,15 @@
         leftSeparator: leftSeparator,
         condition: condition,
         rightSeparator: rightSeparator,
-        updaters: updates,
+        updaters2: updates,
       );
     } else {
       forLoopParts = ForPartsWithExpressionImpl(
-        initialization: initializerPart as ExpressionImpl?,
+        initialization2: initializerPart as ExpressionImpl?,
         leftSeparator: leftSeparator,
         condition: condition,
         rightSeparator: rightSeparator,
-        updaters: updates,
+        updaters2: updates,
       );
     }
 
@@ -4509,11 +4513,11 @@
       var token = peek() as Token;
       push(receiver);
       var expression = IndexExpressionImpl(
-        target: null,
+        target2: null,
         period: token,
         question: question,
         leftBracket: leftBracket,
-        index: index,
+        index2: index,
         rightBracket: rightBracket,
       );
       assert(expression.isCascaded);
@@ -4521,11 +4525,11 @@
     } else {
       push(
         IndexExpressionImpl(
-          target: target,
+          target2: target,
           period: null,
           question: question,
           leftBracket: leftBracket,
-          index: index,
+          index2: index,
           rightBracket: rightBracket,
         ),
       );
@@ -4538,7 +4542,7 @@
     push(
       InterpolationExpressionImpl(
         leftBracket: leftBracket,
-        expression: expression,
+        expression2: expression,
         rightBracket: rightBracket,
       ),
     );
@@ -4622,7 +4626,7 @@
 
     push(
       IsExpressionImpl(
-        expression: expression,
+        expression2: expression,
         isOperator: isOperator,
         notOperator: not,
         type: type,
@@ -4752,7 +4756,7 @@
         constKeyword: constKeyword,
         typeArguments: typeArguments,
         leftBracket: leftBracket,
-        elements: elements,
+        elements2: elements,
         rightBracket: rightBracket,
       ),
     );
@@ -4783,10 +4787,10 @@
     push(
       MapLiteralEntryImpl(
         keyQuestion: nullAwareKeyToken,
-        key: key,
+        key2: key,
         separator: colon,
         valueQuestion: nullAwareValueToken,
-        value: value,
+        value2: value,
       ),
     );
   }
@@ -4817,7 +4821,7 @@
         constKeyword: constKeyword,
         typeArguments: typeArguments,
         leftBracket: leftBrace,
-        elements: elements,
+        elements2: elements,
         rightBracket: rightBrace,
       ),
     );
@@ -4846,7 +4850,7 @@
 
     var value = pop() as DartPatternImpl;
     var key = pop() as ExpressionImpl;
-    push(MapPatternEntryImpl(key: key, separator: colon, value: value));
+    push(MapPatternEntryImpl(key2: key, separator: colon, value: value));
   }
 
   @override
@@ -4922,7 +4926,7 @@
       NamedArgumentImpl(
         name: name.token,
         colon: colon,
-        argumentExpression: expression,
+        argumentExpression2: expression,
       ),
     );
   }
@@ -4947,7 +4951,7 @@
       RecordLiteralNamedFieldImpl(
         name: name.token,
         colon: colon,
-        fieldExpression: expression,
+        fieldExpression2: expression,
       ),
     );
   }
@@ -5045,7 +5049,7 @@
         metadata: [],
         name: name.token,
         equals: null,
-        initializer: null,
+        initializer2: null,
       ),
     );
   }
@@ -5079,7 +5083,7 @@
     debugEvent('NonNullAssertExpression');
 
     push(
-      PostfixExpressionImpl(operand: pop() as ExpressionImpl, operator: bang),
+      PostfixExpressionImpl(operand2: pop() as ExpressionImpl, operator: bang),
     );
   }
 
@@ -5124,7 +5128,9 @@
       );
     } else {
       var expression = pop() as ExpressionImpl;
-      push(NullAwareElementImpl(question: nullAwareElement, value: expression));
+      push(
+        NullAwareElementImpl(question: nullAwareElement, value2: expression),
+      );
     }
   }
 
@@ -5255,7 +5261,7 @@
       PatternAssignmentImpl(
         pattern: pattern,
         equals: equals,
-        expression: expression,
+        expression2: expression,
       ),
     );
   }
@@ -5289,7 +5295,7 @@
           keyword: keyword,
           pattern: pattern,
           equals: equals,
-          expression: expression,
+          expression2: expression,
           comment: comment,
           metadata: metadata,
         ),
@@ -5493,7 +5499,7 @@
   void handleRelationalPattern(Token token) {
     debugEvent("RelationalPattern");
     push(
-      RelationalPatternImpl(operator: token, operand: pop() as ExpressionImpl),
+      RelationalPatternImpl(operator: token, operand2: pop() as ExpressionImpl),
     );
   }
 
@@ -5528,7 +5534,7 @@
   void handleSpreadExpression(Token spreadToken) {
     var expression = pop() as ExpressionImpl;
     push(
-      SpreadElementImpl(spreadOperator: spreadToken, expression: expression),
+      SpreadElementImpl(spreadOperator: spreadToken, expression2: expression),
     );
   }
 
@@ -5581,7 +5587,7 @@
     push(
       ThrowExpressionImpl(
         throwKeyword: throwToken,
-        expression: pop() as ExpressionImpl,
+        expression2: pop() as ExpressionImpl,
       ),
     );
   }
@@ -5609,7 +5615,7 @@
     }
     reportErrorIfSuper(receiver);
     push(
-      FunctionReferenceImpl(function: receiver, typeArguments: typeArguments),
+      FunctionReferenceImpl(function2: receiver, typeArguments: typeArguments),
     );
   }
 
@@ -5634,7 +5640,7 @@
         operator,
       );
     }
-    push(PostfixExpressionImpl(operand: expression, operator: operator));
+    push(PostfixExpressionImpl(operand2: expression, operator: operator));
   }
 
   @override
@@ -5651,7 +5657,7 @@
         expression.endToken,
       );
     }
-    push(PrefixExpressionImpl(operator: operator, operand: expression));
+    push(PrefixExpressionImpl(operator: operator, operand2: expression));
   }
 
   @override
@@ -5665,7 +5671,7 @@
       reportErrorIfSuper(operand);
     }
 
-    push(PrefixExpressionImpl(operator: operator, operand: operand));
+    push(PrefixExpressionImpl(operator: operator, operand2: operand));
   }
 
   @override
@@ -5678,7 +5684,7 @@
     debugEvent("ValuedFormalParameter");
 
     var value = pop() as ExpressionImpl;
-    push(FormalParameterDefaultClauseImpl(separator: equals, value: value));
+    push(FormalParameterDefaultClauseImpl(separator: equals, value2: value));
   }
 
   @override
@@ -6350,7 +6356,7 @@
     var right = left.endGroup!;
     return ArgumentListImpl(
       leftParenthesis: left,
-      arguments: [],
+      arguments2: [],
       rightParenthesis: right,
     );
   }
diff --git a/pkg/analyzer/lib/src/fasta/doc_comment_builder.dart b/pkg/analyzer/lib/src/fasta/doc_comment_builder.dart
index b206936..f7e96bb 100644
--- a/pkg/analyzer/lib/src/fasta/doc_comment_builder.dart
+++ b/pkg/analyzer/lib/src/fasta/doc_comment_builder.dart
@@ -750,13 +750,13 @@
         identifier: SimpleIdentifierImpl(token: secondToken!),
       );
       var expression = PropertyAccessImpl(
-        target: target,
+        target2: target,
         operator: secondPeriod!,
         propertyName: identifier,
       );
       return CommentReferenceImpl(
         newKeyword: newKeyword,
-        expression: expression,
+        expression2: expression,
         isSynthetic: isSynthetic,
       );
     } else if (secondToken != null) {
@@ -767,13 +767,13 @@
       );
       return CommentReferenceImpl(
         newKeyword: newKeyword,
-        expression: expression,
+        expression2: expression,
         isSynthetic: isSynthetic,
       );
     } else {
       return CommentReferenceImpl(
         newKeyword: newKeyword,
-        expression: identifier,
+        expression2: identifier,
         isSynthetic: isSynthetic,
       );
     }
diff --git a/pkg/analyzer/lib/src/fine/manifest_ast.dart b/pkg/analyzer/lib/src/fine/manifest_ast.dart
index 7d2cedd..810d961 100644
--- a/pkg/analyzer/lib/src/fine/manifest_ast.dart
+++ b/pkg/analyzer/lib/src/fine/manifest_ast.dart
@@ -358,7 +358,7 @@
 
   @override
   void visitNamedArgument(NamedArgument node) {
-    node.argumentExpression.accept2(this);
+    node.argumentExpression2.accept2(this);
   }
 
   @override
diff --git a/pkg/analyzer/lib/src/generated/error_detection_helpers.dart b/pkg/analyzer/lib/src/generated/error_detection_helpers.dart
index 8798873..d5bb46b3 100644
--- a/pkg/analyzer/lib/src/generated/error_detection_helpers.dart
+++ b/pkg/analyzer/lib/src/generated/error_detection_helpers.dart
@@ -76,7 +76,7 @@
     } else if (argument.parent2
         case ArgumentListImpl(
           parent2: FunctionExpressionInvocationImpl(
-            function: Expression(:var staticType),
+            function2: Expression(:var staticType),
           ),
         )
         when identical(staticType, DynamicTypeImpl.instance) ||
@@ -116,10 +116,10 @@
     )) {
       AstNode getErrorNode(AstNode node) {
         if (node is CascadeExpression) {
-          return getErrorNode(node.target);
+          return getErrorNode(node.target2);
         }
         if (node is ParenthesizedExpression) {
-          return getErrorNode(node.expression);
+          return getErrorNode(node.expression2);
         }
         return node;
       }
@@ -171,7 +171,7 @@
     // prepare field type
     var fieldType = fieldElement.type;
     // prepare expression type
-    Expression expression = initializer.expression;
+    Expression expression = initializer.expression2;
     // test the static type of the expression
     var staticType = expression.typeOrThrow;
     if (typeSystem.isAssignableTo(
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 1936b94..3c58098 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -386,7 +386,7 @@
   void visitAnonymousMethodInvocation(
     covariant AnonymousMethodInvocationImpl node,
   ) {
-    var target = node.target;
+    var target = node.target2;
     if (target != null) {
       checkForUseOfVoidResult(target);
       target.accept2(this);
@@ -444,9 +444,9 @@
   @override
   void visitAssignmentExpression(covariant AssignmentExpressionImpl node) {
     TokenType operatorType = node.operator.type;
-    Expression lhs = node.leftHandSide;
+    Expression lhs = node.leftHandSide2;
     if (operatorType == TokenType.QUESTION_QUESTION_EQ) {
-      _checkForDeadNullCoalesce(node.readType!, node.rightHandSide);
+      _checkForDeadNullCoalesce(node.readType!, node.rightHandSide2);
     }
     _checkForAssignmentToFinal(lhs);
     _checkForAssignmentToPrimaryConstructorParameter(lhs);
@@ -457,7 +457,7 @@
 
   @override
   void visitAwaitExpression(AwaitExpression node) {
-    checkForUseOfVoidResult(node.expression);
+    checkForUseOfVoidResult(node.expression2);
     _checkForAwaitInLateLocalVariableInitializer(node);
     _checkForAwaitOfIncompatibleType(node);
     super.visitAwaitExpression(node);
@@ -468,19 +468,19 @@
     Token operator = node.operator;
     TokenType type = operator.type;
     if (type == TokenType.AMPERSAND_AMPERSAND || type == TokenType.BAR_BAR) {
-      checkForUseOfVoidResult(node.rightOperand);
+      checkForUseOfVoidResult(node.rightOperand2);
     } else {
       // Assignability checking is done by the resolver.
     }
 
     if (type == TokenType.QUESTION_QUESTION) {
       _checkForDeadNullCoalesce(
-        node.leftOperand.staticType!,
-        node.rightOperand,
+        node.leftOperand2.staticType!,
+        node.rightOperand2,
       );
     }
 
-    checkForUseOfVoidResult(node.leftOperand);
+    checkForUseOfVoidResult(node.leftOperand2);
     _constArgumentsVerifier.visitBinaryExpression(node);
 
     super.visitBinaryExpression(node);
@@ -1279,7 +1279,7 @@
 
   @override
   void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
-    var functionExpression = node.function;
+    var functionExpression = node.function2;
 
     if (functionExpression is ExtensionOverride) {
       return super.visitFunctionExpressionInvocation(node);
@@ -1425,14 +1425,14 @@
 
   @override
   void visitInterpolationExpression(InterpolationExpression node) {
-    checkForUseOfVoidResult(node.expression);
+    checkForUseOfVoidResult(node.expression2);
     super.visitInterpolationExpression(node);
   }
 
   @override
   void visitIsExpression(IsExpression node) {
     _checkForTypeAnnotationDeferredClass(node.type);
-    checkForUseOfVoidResult(node.expression);
+    checkForUseOfVoidResult(node.expression2);
     super.visitIsExpression(node);
   }
 
@@ -1448,14 +1448,14 @@
   void visitMapLiteralEntry(MapLiteralEntry node) {
     if (node.keyQuestion != null) {
       _checkForUnnecessaryNullAware(
-        node.key,
+        node.key2,
         node.keyQuestion!,
         kind: _NullAwareKind.mapEntryKey,
       );
     }
     if (node.valueQuestion != null) {
       _checkForUnnecessaryNullAware(
-        node.value,
+        node.value2,
         node.valueQuestion!,
         kind: _NullAwareKind.mapEntryValue,
       );
@@ -1557,7 +1557,7 @@
       _checkForStaticAccessToInstanceMember(typeReference, methodName);
       _checkForInstanceAccessToStaticMember(
         typeReference,
-        node.target,
+        node.target2,
         methodName,
       );
       // Note: `node.isNullAware` produces the wrong behavior because it considers
@@ -1667,7 +1667,7 @@
   @override
   void visitNullAwareElement(NullAwareElement node) {
     _checkForUnnecessaryNullAware(
-      node.value,
+      node.value2,
       node.question,
       kind: _NullAwareKind.element,
     );
@@ -1686,7 +1686,7 @@
 
   @override
   void visitPostfixExpression(covariant PostfixExpressionImpl node) {
-    var operand = node.operand;
+    var operand = node.operand2;
     if (node.operator.type == TokenType.BANG) {
       checkForUseOfVoidResult(node);
       _checkForUnnecessaryNullAware(
@@ -1717,7 +1717,7 @@
   @override
   void visitPrefixExpression(covariant PrefixExpressionImpl node) {
     var operatorType = node.operator.type;
-    var operand = node.operand;
+    var operand = node.operand2;
     if (operatorType != TokenType.BANG) {
       if (operatorType.isIncrementOperator) {
         _checkForAssignmentToFinal(operand);
@@ -1819,7 +1819,7 @@
     _checkForStaticAccessToInstanceMember(typeReference, propertyName);
     _checkForInstanceAccessToStaticMember(
       typeReference,
-      node.target,
+      node.target2,
       propertyName,
     );
     // Note: `node.isNullAware` produces the wrong behavior because it considers
@@ -1864,7 +1864,7 @@
 
   @override
   void visitReturnStatement(ReturnStatement node) {
-    if (node.expression == null) {
+    if (node.expression2 == null) {
       _enclosingExecutable._returnsWithout.add(node);
     } else {
       _enclosingExecutable._returnsWith.add(node);
@@ -1914,7 +1914,7 @@
   void visitSpreadElement(SpreadElement node) {
     if (node.isNullAware) {
       _checkForUnnecessaryNullAware(
-        node.expression,
+        node.expression2,
         node.spreadOperator,
         kind: _NullAwareKind.spread,
       );
@@ -2020,7 +2020,7 @@
 
   @override
   void visitSwitchExpression(SwitchExpression node) {
-    checkForUseOfVoidResult(node.expression);
+    checkForUseOfVoidResult(node.expression2);
     super.visitSwitchExpression(node);
   }
 
@@ -2034,7 +2034,7 @@
 
   @override
   void visitSwitchStatement(SwitchStatement node) {
-    checkForUseOfVoidResult(node.expression);
+    checkForUseOfVoidResult(node.expression2);
     _checkForMissingEnumConstantInSwitch(node);
     super.visitSwitchStatement(node);
   }
@@ -2048,7 +2048,7 @@
   @override
   void visitThrowExpression(ThrowExpression node) {
     _checkForConstEvalThrowsException(node);
-    checkForUseOfVoidResult(node.expression);
+    checkForUseOfVoidResult(node.expression2);
     _checkForThrowOfInvalidType(node);
     super.visitThrowExpression(node);
   }
@@ -2090,7 +2090,7 @@
 
     if (variableList.isConst) {
       for (var variable in variableList.variables) {
-        if (variable.initializer == null) {
+        if (variable.initializer2 == null) {
           diagnosticReporter.report(
             diag.constNotInitialized
                 .withArguments(name: variable.name.lexeme)
@@ -2102,7 +2102,7 @@
         node.externalKeyword == null &&
         !variableList.isLate) {
       for (var variable in variableList.variables) {
-        if (variable.initializer == null) {
+        if (variable.initializer2 == null) {
           if (variableList.isFinal) {
             diagnosticReporter.report(
               diag.finalNotInitialized
@@ -2169,7 +2169,7 @@
   @override
   void visitVariableDeclaration(VariableDeclaration node) {
     var nameToken = node.name;
-    var initializerNode = node.initializer;
+    var initializerNode = node.initializer2;
     // do checks
     _checkForAbstractOrExternalVariableInitializer(node);
     // visit initializer
@@ -2205,7 +2205,7 @@
 
     if (node.variables.isConst) {
       for (var variable in node.variables.variables) {
-        if (variable.initializer == null) {
+        if (variable.initializer2 == null) {
           diagnosticReporter.report(
             diag.constNotInitialized
                 .withArguments(name: variable.name.lexeme)
@@ -2417,7 +2417,7 @@
     VariableDeclaration node,
   ) {
     var declaredElement = node.declaredFragment?.element;
-    if (node.initializer != null) {
+    if (node.initializer2 != null) {
       if (declaredElement is FieldElement) {
         if (declaredElement.isAbstract) {
           diagnosticReporter.report(
@@ -3270,7 +3270,7 @@
   }
 
   void _checkForAwaitOfIncompatibleType(AwaitExpression node) {
-    var expression = node.expression;
+    var expression = node.expression2;
     var expressionType = expression.typeOrThrow;
     if (typeSystem.isIncompatibleWithAwait(expressionType)) {
       diagnosticReporter.report(
@@ -4390,7 +4390,7 @@
 
   void _checkForDefaultValueAssignableAtType(FormalParameter node) {
     if (node.defaultClause case var defaultClause?) {
-      var defaultValue = defaultClause.value;
+      var defaultValue = defaultClause.value2;
       checkForAssignableExpressionAtType(
         defaultValue,
         defaultValue.typeOrThrow,
@@ -5835,7 +5835,7 @@
       elementType: listElementType,
       featureSet: _featureSet,
     );
-    for (CollectionElement element in literal.elements) {
+    for (CollectionElement element in literal.elements2) {
       verifier.verify(element);
     }
   }
@@ -5927,7 +5927,7 @@
         mapValueType: valueType,
         featureSet: _featureSet,
       );
-      for (CollectionElement element in literal.elements) {
+      for (CollectionElement element in literal.elements2) {
         verifier.verify(element);
       }
     }
@@ -5944,7 +5944,7 @@
 
     // TODO(brianwilkerson): This needs to be checked after constant values have
     // been computed.
-    var expressionType = statement.expression.staticType;
+    var expressionType = statement.expression2.staticType;
 
     var hasCaseNull = false;
     if (expressionType is InterfaceType) {
@@ -5958,13 +5958,13 @@
         for (var member in statement.members) {
           Expression? caseConstant;
           if (member is SwitchCase) {
-            caseConstant = member.expression;
+            caseConstant = member.expression2;
           } else if (member is SwitchPatternCase) {
             var guardedPattern = member.guardedPattern;
             if (guardedPattern.whenClause == null) {
               var pattern = guardedPattern.pattern.unParenthesized;
               if (pattern is ConstantPattern) {
-                caseConstant = pattern.expression;
+                caseConstant = pattern.expression2;
               }
             }
           }
@@ -6699,7 +6699,7 @@
 
     if (variableList.isConst) {
       for (var variable in variableList.variables) {
-        if (variable.initializer == null) {
+        if (variable.initializer2 == null) {
           diagnosticReporter.report(
             diag.constNotInitialized
                 .withArguments(name: variable.name.lexeme)
@@ -6729,7 +6729,7 @@
     }
 
     for (var variable in variableList.variables) {
-      if (variable.initializer != null) {
+      if (variable.initializer2 != null) {
         continue;
       }
 
@@ -7124,7 +7124,7 @@
         elementType: setElementType,
         featureSet: _featureSet,
       );
-      for (CollectionElement element in literal.elements) {
+      for (CollectionElement element in literal.elements2) {
         verifier.verify(element);
       }
     }
@@ -7162,8 +7162,8 @@
   }
 
   void _checkForThrowOfInvalidType(ThrowExpression node) {
-    var expression = node.expression;
-    var type = node.expression.typeOrThrow;
+    var expression = node.expression2;
+    var type = node.expression2.typeOrThrow;
 
     if (!typeSystem.isAssignableTo(
       type,
@@ -7394,9 +7394,9 @@
 
     var targetType = target.staticType;
     if (target is ExtensionOverride) {
-      var arguments = target.argumentList.arguments;
+      var arguments = target.argumentList.arguments2;
       if (arguments.length == 1) {
-        targetType = arguments[0].argumentExpression.typeOrThrow;
+        targetType = arguments[0].argumentExpression2.typeOrThrow;
       } else {
         return;
       }
diff --git a/pkg/analyzer/lib/src/generated/exhaustiveness.dart b/pkg/analyzer/lib/src/generated/exhaustiveness.dart
index 2f36a25..c48b5ce 100644
--- a/pkg/analyzer/lib/src/generated/exhaustiveness.dart
+++ b/pkg/analyzer/lib/src/generated/exhaustiveness.dart
@@ -705,7 +705,7 @@
         if (entry is RestPatternElement) {
           // Rest patterns are illegal in map patterns, so just skip over it.
         } else {
-          Expression expression = (entry as MapPatternEntry).key;
+          Expression expression = (entry as MapPatternEntry).key2;
           // TODO(johnniwinther): Assert that we have a constant value.
           DartObjectImpl? constant = mapPatternKeyValues[expression];
           if (constant == null) {
diff --git a/pkg/analyzer/lib/src/generated/ffi_verifier.dart b/pkg/analyzer/lib/src/generated/ffi_verifier.dart
index df241f9..34170b7 100644
--- a/pkg/analyzer/lib/src/generated/ffi_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/ffi_verifier.dart
@@ -853,7 +853,7 @@
           arg.correspondingParameter?.name != _isLeafParamName) {
         continue;
       }
-      return _maybeGetBoolConstValue(arg.argumentExpression) ?? false;
+      return _maybeGetBoolConstValue(arg.argumentExpression2) ?? false;
     }
     return false;
   }
@@ -1107,23 +1107,23 @@
 
     var annotation = ffiPackedAnnotations.first;
 
-    var arguments = annotation.arguments?.arguments;
+    var arguments = annotation.arguments?.arguments2;
     if (arguments == null) {
       return;
     }
 
     for (var argument in arguments) {
       if (argument is SetOrMapLiteral) {
-        for (var element in argument.elements) {
+        for (var element in argument.elements2) {
           if (element is MapLiteralEntry) {
-            var valueType = element.value.staticType;
+            var valueType = element.value2.staticType;
             if (valueType is InterfaceType) {
               var name = valueType.element.name!;
               if (!_primitiveIntegerNativeTypesFixedSize.contains(name)) {
                 _diagnosticReporter.report(
                   diag.abiSpecificIntegerMappingUnsupported
                       .withArguments(mappingName: name)
-                      .at(element.value),
+                      .at(element.value2),
                 );
               }
             }
@@ -1186,7 +1186,7 @@
     var errorNode = node.propertyName;
     _validateAddressPosition(node, errorNode);
     var extensionName = node.propertyName.element?.enclosingElement?.name;
-    var receiver = node.target;
+    var receiver = node.target2;
     _validateAddressReceiver(node, extensionName, receiver, errorNode);
   }
 
@@ -1206,7 +1206,7 @@
     switch (receiver) {
       case IndexExpression _:
         // Array or TypedData element.
-        var arrayOrTypedData = receiver.target;
+        var arrayOrTypedData = receiver.target2;
         var type = arrayOrTypedData?.staticType;
         if (type?.isArray ?? false) {
           return;
@@ -1223,7 +1223,7 @@
         }
       case PropertyAccess _:
         // Struct or Union field.
-        var compound = receiver.target;
+        var compound = receiver.target2;
         var type = compound?.staticType;
         if (type?.isCompoundSubtype ?? false) {
           return;
@@ -1345,7 +1345,7 @@
 
       var TPrime = T.typeArguments[0];
       var F = node.typeArgumentTypes![0];
-      var isLeaf = _isLeaf(node.argumentList.arguments);
+      var isLeaf = _isLeaf(node.argumentList.arguments2);
       if (!_validateCompatibleFunctionTypes(
         _FfiTypeCheckDirection.nativeToDart,
         F,
@@ -1642,7 +1642,7 @@
   /// Validate the invocation of the static method
   /// `Pointer<T>.fromFunction(f, e)`.
   void _validateFromFunction(MethodInvocationImpl node, MethodElement element) {
-    int argCount = node.argumentList.arguments.length;
+    int argCount = node.argumentList.arguments2.length;
     if (argCount < 1 || argCount > 2) {
       // There are other diagnostics reported against the invocation and the
       // diagnostics generated below might be inaccurate, so don't report them.
@@ -1664,7 +1664,7 @@
       return;
     }
 
-    var f = node.argumentList.arguments[0];
+    var f = node.argumentList.arguments2[0];
     var FT = f.argumentExpression.typeOrThrow;
     if (!_validateCompatibleFunctionTypes(
       _FfiTypeCheckDirection.dartToNative,
@@ -1689,7 +1689,7 @@
         _diagnosticReporter.report(
           diag.invalidExceptionValue
               .withArguments(methodName: 'fromFunction')
-              .at(node.argumentList.arguments[1]),
+              .at(node.argumentList.arguments2[1]),
         );
       }
     } else if (argCount != 2) {
@@ -1699,7 +1699,7 @@
             .at(node.methodName),
       );
     } else {
-      Expression e = node.argumentList.arguments[1].argumentExpression;
+      Expression e = node.argumentList.arguments2[1].argumentExpression;
       var eType = e.typeOrThrow;
       if (!_validateCompatibleNativeType(
         _FfiTypeCheckDirection.dartToNative,
@@ -1725,16 +1725,16 @@
   /// Ensure `isLeaf` is const as we need the value at compile time to know
   /// which trampoline to generate.
   void _validateIsLeafIsConst(MethodInvocation node) {
-    var args = node.argumentList.arguments;
+    var args = node.argumentList.arguments2;
     if (args.isNotEmpty) {
       for (var arg in args) {
         if (arg is NamedArgument) {
           if (arg.correspondingParameter?.name == _isLeafParamName) {
-            if (!_isConst(arg.argumentExpression)) {
+            if (!_isConst(arg.argumentExpression2)) {
               _diagnosticReporter.report(
                 diag.argumentMustBeAConstant
                     .withArguments(argumentName: _isLeafParamName)
-                    .at(arg.argumentExpression),
+                    .at(arg.argumentExpression2),
               );
             }
           }
@@ -1765,7 +1765,7 @@
       );
       return;
     }
-    var isLeaf = _isLeaf(node.argumentList.arguments);
+    var isLeaf = _isLeaf(node.argumentList.arguments2);
     if (!_validateCompatibleFunctionTypes(
       _FfiTypeCheckDirection.nativeToDart,
       F,
@@ -1787,7 +1787,7 @@
   /// Validate the invocation of `Native.addressOf`.
   void _validateNativeAddressOf(MethodInvocationImpl node) {
     var typeArguments = node.typeArgumentTypes;
-    var arguments = node.argumentList.arguments;
+    var arguments = node.argumentList.arguments2;
     if (typeArguments == null ||
         typeArguments.length != 1 ||
         arguments.length != 1) {
@@ -1917,7 +1917,7 @@
     var isolateLocal = name == 'isolateLocal';
 
     // listener takes 1 arg, isolateLocal takes 1 or 2.
-    var argCount = node.argumentList.arguments.length;
+    var argCount = node.argumentList.arguments2.length;
     if (!(argCount == 1 || (isolateLocal && argCount == 2))) {
       // There are other diagnostics reported against the invocation and the
       // diagnostics generated below might be inaccurate, so don't report them.
@@ -1939,7 +1939,7 @@
       return;
     }
 
-    var f = node.argumentList.arguments[0];
+    var f = node.argumentList.arguments2[0];
     var funcType = f.argumentExpression.typeOrThrow;
     if (!_validateCompatibleFunctionTypes(
       _FfiTypeCheckDirection.dartToNative,
@@ -1968,7 +1968,7 @@
           _diagnosticReporter.report(
             diag.invalidExceptionValue
                 .withArguments(methodName: name)
-                .at(node.argumentList.arguments[1]),
+                .at(node.argumentList.arguments2[1]),
           );
         }
       } else if (argCount != 2) {
@@ -1976,8 +1976,8 @@
           diag.missingExceptionValue.withArguments(methodName: name).at(node),
         );
       } else {
-        var e = (node.argumentList.arguments[1] as NamedArgument)
-            .argumentExpression;
+        var e = (node.argumentList.arguments2[1] as NamedArgument)
+            .argumentExpression2;
         var eType = e.typeOrThrow;
         if (!_validateCompatibleNativeType(
           _FfiTypeCheckDirection.dartToNative,
@@ -2044,7 +2044,7 @@
     var value = annotation.elementAnnotation?.packedMemberAlignment;
     if (![1, 2, 4, 8, 16].contains(value)) {
       AstNode errorNode = annotation;
-      var arguments = annotation.arguments?.arguments;
+      var arguments = annotation.arguments?.arguments2;
       if (arguments != null && arguments.isNotEmpty) {
         errorNode = arguments[0];
       }
@@ -2172,17 +2172,17 @@
       return switch (annotation.arguments) {
         // `@Array.variableMulti([..], variableDimension: ..)`
         ArgumentList(
-          arguments: [ListLiteral dimensions, NamedArgument variableDimension],
+          arguments2: [ListLiteral dimensions, NamedArgument variableDimension],
         ) =>
-          (dimensions.elements, variableDimension.argumentExpression),
+          (dimensions.elements2, variableDimension.argumentExpression2),
         // `@Array.variableMulti([..])`
-        ArgumentList(arguments: [ListLiteral dimensions]) => (
-          dimensions.elements,
+        ArgumentList(arguments2: [ListLiteral dimensions]) => (
+          dimensions.elements2,
           null,
         ),
         // `@Array(..)`, `@Array.variable(..)`,
         // `@Array.variableWithVariableDimension(..)`
-        ArgumentList(arguments: NodeList<Argument> dimensions) => (
+        ArgumentList(arguments2: NodeList<Argument> dimensions) => (
           dimensions,
           null,
         ),
@@ -2197,7 +2197,7 @@
       if (dimensionsNodes case var dimensionsNodes?) {
         if (dimensionsNodes.length > i && variableDimensionNode == null) {
           var node = dimensionsNodes[i];
-          errorNode = node is Argument ? node.argumentExpression : node;
+          errorNode = node is Argument ? node.argumentExpression2 : node;
         }
       }
 
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index 1f16fef..e54e053 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -505,7 +505,7 @@
     ArgumentListImpl argumentList,
     List<WhyNotPromotedGetter> whyNotPromotedArguments,
   ) {
-    var arguments = argumentList.arguments;
+    var arguments = argumentList.arguments2;
     for (int i = 0; i < arguments.length; i++) {
       checkForArgumentTypeNotAssignableForArgument(
         arguments[i],
@@ -899,7 +899,7 @@
     int caseIndex,
   ) {
     var case_ = node.cases[caseIndex];
-    case_.expression = popRewrite()!;
+    case_.expression2 = popRewrite()!;
     nullSafetyDeadCodeVerifier.flowEnd(case_);
   }
 
@@ -966,7 +966,7 @@
     covariant MapPatternElementImpl element,
   ) {
     if (element is MapPatternEntryImpl) {
-      return shared.MapPatternEntry(key: element.key, value: element.value);
+      return shared.MapPatternEntry(key: element.key2, value: element.value);
     }
     return null;
   }
@@ -989,10 +989,10 @@
     return SwitchExpressionMemberInfo(
       head: CaseHeadOrDefaultInfo(
         pattern: guardedPattern.pattern,
-        guard: guardedPattern.whenClause?.expression,
+        guard: guardedPattern.whenClause?.expression2,
         variables: guardedPattern.variables,
       ),
-      expression: case_.expression,
+      expression: case_.expression2,
     );
   }
 
@@ -1007,13 +1007,16 @@
     CaseHeadOrDefaultInfo<AstNodeImpl, ExpressionImpl, PromotableElementImpl>
     ofMember(SwitchMemberImpl member) {
       if (member is SwitchCaseImpl) {
-        return CaseHeadOrDefaultInfo(pattern: member.expression, variables: {});
+        return CaseHeadOrDefaultInfo(
+          pattern: member.expression2,
+          variables: {},
+        );
       } else if (member is SwitchPatternCaseImpl) {
         var guardedPattern = member.guardedPattern;
         return CaseHeadOrDefaultInfo(
           pattern: guardedPattern.pattern,
           variables: guardedPattern.variables,
-          guard: guardedPattern.whenClause?.expression,
+          guard: guardedPattern.whenClause?.expression2,
         );
       } else {
         return CaseHeadOrDefaultInfo(pattern: null, variables: {});
@@ -1138,7 +1141,7 @@
     covariant MapPatternEntryImpl entry,
     SharedTypeView keyType,
   ) {
-    entry.key = popRewrite()!;
+    entry.key2 = popRewrite()!;
   }
 
   @override
@@ -1256,7 +1259,7 @@
 
     var parent = expression.parent2;
     var genericFunctionInstantiation = FunctionReferenceImpl(
-      function: expression,
+      function2: expression,
       typeArguments: null,
     );
     replaceExpression(expression, genericFunctionInstantiation, parent: parent);
@@ -1446,7 +1449,7 @@
   }) {
     inferenceLogWriter?.enterLValue(node);
     if (node is IndexExpressionImpl) {
-      var target = node.target;
+      var target = node.target2;
       if (target != null) {
         if (isDotShorthand(node)) {
           // Recovery.
@@ -1464,8 +1467,8 @@
       }
 
       if (node.isNullAware) {
-        _startNullAwareAccess(node.target);
-        nullSafetyDeadCodeVerifier.visitNode(node.index);
+        _startNullAwareAccess(node.target2);
+        nullSafetyDeadCodeVerifier.visitNode(node.index2);
       }
 
       var result = _propertyElementResolver.resolveIndexExpression(
@@ -1475,15 +1478,15 @@
       );
 
       analyzeExpression(
-        node.index,
+        node.index2,
         SharedTypeSchemaView(result.indexContextType),
       );
       popRewrite();
       var whyNotPromoted = flowAnalysis.flow?.whyNotPromoted(
-        flowAnalysis.getExpressionInfo(node.index),
+        flowAnalysis.getExpressionInfo(node.index2),
       );
       checkIndexExpressionIndex(
-        node.index,
+        node.index2,
         readElement: hasRead
             ? result.readElement2 as InternalExecutableElement?
             : null,
@@ -1505,7 +1508,7 @@
       // TODO(scheglov): It would be nice to rewrite all such cases.
       if (prefix.staticType is RecordType) {
         var propertyAccess = PropertyAccessImpl(
-          target: prefix,
+          target2: prefix,
           operator: node.period,
           propertyName: node.identifier,
         );
@@ -1525,7 +1528,7 @@
         hasWrite: true,
       );
     } else if (node is PropertyAccessImpl) {
-      if (node.target case var target?) {
+      if (node.target2 case var target?) {
         if (isDotShorthand(node)) {
           // Recovery.
           // It's a compile-time error to use a dot shorthand as the target of a
@@ -1541,7 +1544,7 @@
         popRewrite();
       }
       if (node.isNullAware) {
-        _startNullAwareAccess(node.target);
+        _startNullAwareAccess(node.target2);
         nullSafetyDeadCodeVerifier.visitNode(node.propertyName);
       }
 
@@ -1758,7 +1761,7 @@
     }
 
     var parent = node.parent2;
-    if (parent is AssignmentExpressionImpl && parent.leftHandSide == node) {
+    if (parent is AssignmentExpressionImpl && parent.leftHandSide2 == node) {
       parent.readElement = element;
       parent.readType = readType;
     } else if (parent is PostfixExpressionImpl &&
@@ -1814,7 +1817,7 @@
     }
 
     var parent = node.parent2;
-    if (parent is AssignmentExpressionImpl && parent.leftHandSide == node) {
+    if (parent is AssignmentExpressionImpl && parent.leftHandSide2 == node) {
       parent.writeElement = element;
       parent.writeType = writeType;
     } else if (parent is PostfixExpressionImpl &&
@@ -1921,12 +1924,12 @@
     checkUnreachableNode(node);
 
     analyzeExpression(
-      node.expression,
+      node.expression2,
       SharedTypeSchemaView(imposedType ?? UnknownInferredType.instance),
     );
     popRewrite();
 
-    return node.expression.staticType ?? typeProvider.dynamicType;
+    return node.expression2.staticType ?? typeProvider.dynamicType;
   }
 
   @override
@@ -1943,7 +1946,7 @@
 
     checkUnreachableNode(node);
 
-    var target = node.target;
+    var target = node.target2;
     if (target != null) {
       analyzeExpression(
         target,
@@ -1963,7 +1966,7 @@
         : targetType;
     var parameters = node.parameters;
     if (isNullAware) {
-      _startNullAwareAccess(node.target);
+      _startNullAwareAccess(node.target2);
       nullSafetyDeadCodeVerifier.visitNode(parameters ?? node.body);
     }
     if (parameters != null) {
@@ -2012,7 +2015,7 @@
 
     TypeImpl returnedType;
     if (parameters == null) {
-      var target = node.target;
+      var target = node.target2;
       var targetInfo = target != null
           ? flowAnalysis.getExpressionInfo(target)
           : null;
@@ -2028,7 +2031,7 @@
       if (body is AnonymousExpressionBodyImpl) {
         flowAnalysis.storeExpressionInfo(
           node,
-          flowAnalysis.getExpressionInfo(body.expression),
+          flowAnalysis.getExpressionInfo(body.expression2),
         );
       }
     } else {
@@ -2071,7 +2074,7 @@
     checkUnreachableNode(node);
 
     analyzeExpression(
-      node.expression,
+      node.expression2,
       SharedTypeSchemaView(UnknownInferredType.instance),
     );
     popRewrite();
@@ -2086,7 +2089,7 @@
       contextType: contextType,
     );
 
-    var expression = node.expression;
+    var expression = node.expression2;
     var staticType = node.staticType;
     if (staticType != null && expression is SimpleIdentifier) {
       var simpleIdentifier = expression as SimpleIdentifier;
@@ -2110,21 +2113,21 @@
   void visitAssertInitializer(covariant AssertInitializerImpl node) {
     flowAnalysis.flow?.assert_begin();
     analyzeExpression(
-      node.condition,
+      node.condition2,
       SharedTypeSchemaView(typeProvider.boolType),
     );
     popRewrite();
     boolExpressionVerifier.checkForNonBoolExpression(
-      node.condition,
+      node.condition2,
       locatableDiagnostic: diag.nonBoolExpression,
       whyNotPromoted: flowAnalysis.flow?.whyNotPromoted(
-        flowAnalysis.getExpressionInfo(node.condition),
+        flowAnalysis.getExpressionInfo(node.condition2),
       ),
     );
     flowAnalysis.flow?.assert_afterCondition(
-      flowAnalysis.getExpressionInfo(node.condition),
+      flowAnalysis.getExpressionInfo(node.condition2),
     );
-    if (node.message case var message?) {
+    if (node.message2 case var message?) {
       analyzeExpression(message, operations.unknownType);
       popRewrite();
     }
@@ -2137,21 +2140,21 @@
     checkUnreachableNode(node);
     flowAnalysis.flow?.assert_begin();
     analyzeExpression(
-      node.condition,
+      node.condition2,
       SharedTypeSchemaView(typeProvider.boolType),
     );
     popRewrite();
     boolExpressionVerifier.checkForNonBoolExpression(
-      node.condition,
+      node.condition2,
       locatableDiagnostic: diag.nonBoolExpression,
       whyNotPromoted: flowAnalysis.flow?.whyNotPromoted(
-        flowAnalysis.getExpressionInfo(node.condition),
+        flowAnalysis.getExpressionInfo(node.condition2),
       ),
     );
     flowAnalysis.flow?.assert_afterCondition(
-      flowAnalysis.getExpressionInfo(node.condition),
+      flowAnalysis.getExpressionInfo(node.condition2),
     );
-    if (node.message case var message?) {
+    if (node.message2 case var message?) {
       analyzeExpression(message, operations.unknownType);
       popRewrite();
     }
@@ -2186,10 +2189,10 @@
     checkUnreachableNode(node);
     var analysisResult = analyzeAwaitExpression(
       node,
-      node.expression,
+      node.expression2,
       contextType.wrapSharedTypeSchemaView(),
     );
-    node.expression = popRewrite()!;
+    node.expression2 = popRewrite()!;
     node.recordStaticType(
       analysisResult.type.unwrapTypeView<TypeImpl>(),
       resolver: this,
@@ -2290,17 +2293,17 @@
   }) {
     inferenceLogWriter?.enterExpression(node, contextType);
     checkUnreachableNode(node);
-    analyzeExpression(node.target, SharedTypeSchemaView(contextType));
-    var targetType = node.target.staticType ?? typeProvider.dynamicType;
+    analyzeExpression(node.target2, SharedTypeSchemaView(contextType));
+    var targetType = node.target2.staticType ?? typeProvider.dynamicType;
     popRewrite();
 
     flowAnalysis.flow!.cascadeExpression_afterTarget(
-      flowAnalysis.getExpressionInfo(node.target),
+      flowAnalysis.getExpressionInfo(node.target2),
       SharedTypeView(targetType),
       isNullAware: node.isNullAware,
     );
 
-    for (var cascadeSection in node.cascadeSections) {
+    for (var cascadeSection in node.cascadeSections2) {
       analyzeExpression(cascadeSection, operations.unknownType);
       popRewrite();
     }
@@ -2406,12 +2409,12 @@
   }) {
     inferenceLogWriter?.enterExpression(node, contextType);
     checkUnreachableNode(node);
-    ExpressionImpl condition = node.condition;
+    ExpressionImpl condition = node.condition2;
     var flow = flowAnalysis.flow;
     flow?.conditional_conditionBegin();
 
     analyzeExpression(
-      node.condition,
+      node.condition2,
       SharedTypeSchemaView(typeProvider.boolType),
     );
     condition = popRewrite()!;
@@ -2428,18 +2431,18 @@
         flowAnalysis.getExpressionInfo(condition),
         node,
       );
-      checkUnreachableNode(node.thenExpression);
+      checkUnreachableNode(node.thenExpression2);
     }
-    analyzeExpression(node.thenExpression, SharedTypeSchemaView(contextType));
+    analyzeExpression(node.thenExpression2, SharedTypeSchemaView(contextType));
     popRewrite();
-    nullSafetyDeadCodeVerifier.flowEnd(node.thenExpression);
+    nullSafetyDeadCodeVerifier.flowEnd(node.thenExpression2);
 
-    ExpressionImpl elseExpression = node.elseExpression;
+    ExpressionImpl elseExpression = node.elseExpression2;
 
     if (flow != null) {
       flow.conditional_elseBegin(
-        flowAnalysis.getExpressionInfo(node.thenExpression),
-        SharedTypeView(node.thenExpression.typeOrThrow),
+        flowAnalysis.getExpressionInfo(node.thenExpression2),
+        SharedTypeView(node.thenExpression2.typeOrThrow),
       );
       checkUnreachableNode(elseExpression);
       analyzeExpression(elseExpression, SharedTypeSchemaView(contextType));
@@ -2518,7 +2521,7 @@
     var fieldElement = enclosingInstanceElement!.getField(fieldName.name);
     fieldName.element = fieldElement;
     var fieldType = fieldElement?.type ?? UnknownInferredType.instance;
-    var expression = node.expression;
+    var expression = node.expression2;
     analyzeExpression(expression, SharedTypeSchemaView(fieldType));
     expression = popRewrite()!;
     var whyNotPromoted = flowAnalysis.flow?.whyNotPromoted(
@@ -2586,7 +2589,7 @@
     inferenceLogWriter?.enterStatement(node);
     checkUnreachableNode(node);
 
-    var condition = node.condition;
+    var condition = node.condition2;
 
     flowAnalysis.flow?.doStatement_bodyBegin(node);
     node.body.accept2(this);
@@ -2825,7 +2828,7 @@
         node: node,
         formalParameters: null,
         operation: () {
-          for (var argument in argumentList.arguments) {
+          for (var argument in argumentList.arguments2) {
             analyzeExpression(
               argument.argumentExpression,
               SharedTypeSchemaView(
@@ -2885,7 +2888,7 @@
 
       checkUnreachableNode(node);
       analyzeExpression(
-        node.expression,
+        node.expression2,
         SharedTypeSchemaView(
           bodyContext.contextType ?? UnknownInferredType.instance,
         ),
@@ -2894,7 +2897,7 @@
 
       flowAnalysis.flow?.handleReturn();
 
-      bodyContext.addReturnExpression(node.expression);
+      bodyContext.addReturnExpression(node.expression2);
       return _finishFunctionBodyInference();
     } finally {
       _bodyContext = oldBodyContext;
@@ -2905,7 +2908,7 @@
   void visitExpressionStatement(covariant ExpressionStatementImpl node) {
     inferenceLogWriter?.enterStatement(node);
     checkUnreachableNode(node);
-    analyzeExpression(node.expression, operations.unknownType);
+    analyzeExpression(node.expression2, operations.unknownType);
     popRewrite();
     inferenceLogWriter?.exitStatement(node);
   }
@@ -3120,11 +3123,11 @@
     }
 
     analyzeExpression(
-      node.function,
+      node.function2,
       SharedTypeSchemaView(UnknownInferredType.instance),
       continueNullShorting: true,
     );
-    node.function = popRewrite()!;
+    node.function2 = popRewrite()!;
 
     var whyNotPromotedArguments =
         <Map<SharedTypeView, NonPromotionReason> Function()>[];
@@ -3205,12 +3208,12 @@
       var guardedPattern = caseClause.guardedPattern;
       analyzeIfCaseElement(
         node: node,
-        expression: node.expression,
+        expression: node.expression2,
         pattern: guardedPattern.pattern,
         variables: guardedPattern.variables,
-        guard: guardedPattern.whenClause?.expression,
-        ifTrue: node.thenElement,
-        ifFalse: node.elseElement,
+        guard: guardedPattern.whenClause?.expression2,
+        ifTrue: node.thenElement2,
+        ifFalse: node.elseElement2,
         context: context,
       );
       // Stack: (Expression, Guard)
@@ -3219,9 +3222,9 @@
     } else {
       analyzeIfElement(
         node: node,
-        condition: node.expression,
-        ifTrue: node.thenElement,
-        ifFalse: node.elseElement,
+        condition: node.expression2,
+        ifTrue: node.thenElement2,
+        ifFalse: node.elseElement2,
         context: context,
       );
     }
@@ -3238,9 +3241,9 @@
       var guardedPattern = caseClause.guardedPattern;
       analyzeIfCaseStatement(
         node,
-        node.expression,
+        node.expression2,
         guardedPattern.pattern,
-        guardedPattern.whenClause?.expression,
+        guardedPattern.whenClause?.expression2,
         node.thenStatement,
         node.elseStatement,
         guardedPattern.variables,
@@ -3251,7 +3254,7 @@
     } else {
       analyzeIfStatement(
         node,
-        node.expression,
+        node.expression2,
         node.thenStatement,
         node.elseStatement,
       );
@@ -3272,7 +3275,7 @@
   }) {
     checkUnreachableNode(node);
     analyzeExpression(
-      node.expression,
+      node.expression2,
       SharedTypeSchemaView(UnknownInferredType.instance),
     );
     popRewrite();
@@ -3300,7 +3303,7 @@
 
     checkUnreachableNode(node);
 
-    var target = node.target;
+    var target = node.target2;
     if (target != null) {
       analyzeExpression(
         target,
@@ -3312,8 +3315,8 @@
     var targetType = node.realTarget.staticType;
 
     if (node.isNullAware) {
-      _startNullAwareAccess(node.target);
-      nullSafetyDeadCodeVerifier.visitNode(node.index);
+      _startNullAwareAccess(node.target2);
+      nullSafetyDeadCodeVerifier.visitNode(node.index2);
     }
 
     var result = _propertyElementResolver.resolveIndexExpression(
@@ -3326,15 +3329,15 @@
     node.element = element as MethodElement?;
 
     analyzeExpression(
-      node.index,
+      node.index2,
       SharedTypeSchemaView(result.indexContextType),
     );
     popRewrite();
     var whyNotPromoted = flowAnalysis.flow?.whyNotPromoted(
-      flowAnalysis.getExpressionInfo(node.index),
+      flowAnalysis.getExpressionInfo(node.index2),
     );
     checkIndexExpressionIndex(
-      node.index,
+      node.index2,
       readElement: result.readElement2 as InternalExecutableElement?,
       writeElement: null,
       whyNotPromoted: whyNotPromoted,
@@ -3398,7 +3401,7 @@
     covariant InterpolationExpressionImpl node,
   ) {
     checkUnreachableNode(node);
-    analyzeExpression(node.expression, operations.unknownType);
+    analyzeExpression(node.expression2, operations.unknownType);
     popRewrite();
   }
 
@@ -3417,7 +3420,7 @@
     checkUnreachableNode(node);
 
     analyzeExpression(
-      node.expression,
+      node.expression2,
       SharedTypeSchemaView(UnknownInferredType.instance),
     );
     popRewrite();
@@ -3476,13 +3479,13 @@
       keyTypeContext = typeSystem.makeNullable(keyTypeContext);
     }
     var keyType = analyzeExpression(
-      node.key,
+      node.key2,
       SharedTypeSchemaView(keyTypeContext ?? UnknownInferredType.instance),
     ).type;
     popRewrite();
 
     flowAnalysis.flow?.nullAwareMapEntry_valueBegin(
-      flowAnalysis.getExpressionInfo(node.key),
+      flowAnalysis.getExpressionInfo(node.key2),
       keyType,
       isKeyNullAware: node.keyQuestion != null,
     );
@@ -3494,7 +3497,7 @@
       valueTypeContext = typeSystem.makeNullable(valueTypeContext);
     }
     analyzeExpression(
-      node.value,
+      node.value2,
       SharedTypeSchemaView(valueTypeContext ?? UnknownInferredType.instance),
     );
     popRewrite();
@@ -3558,7 +3561,7 @@
     checkUnreachableNode(node);
     var whyNotPromotedArguments =
         <Map<SharedTypeView, NonPromotionReason> Function()>[];
-    var target = node.target;
+    var target = node.target2;
     if (target != null) {
       analyzeExpression(
         target,
@@ -3631,7 +3634,7 @@
   }) {
     checkUnreachableNode(node);
     analyzeExpression(
-      node.argumentExpression,
+      node.argumentExpression2,
       SharedTypeSchemaView(contextType),
     );
     popRewrite();
@@ -3683,7 +3686,7 @@
     }
 
     analyzeExpression(
-      node.value,
+      node.value2,
       SharedTypeSchemaView(elementType ?? UnknownInferredType.instance),
     );
     popRewrite();
@@ -3714,13 +3717,13 @@
   }) {
     inferenceLogWriter?.enterExpression(node, contextType);
     checkUnreachableNode(node);
-    analyzeExpression(node.expression, SharedTypeSchemaView(contextType));
+    analyzeExpression(node.expression2, SharedTypeSchemaView(contextType));
     popRewrite();
     typeAnalyzer.visitParenthesizedExpression(node);
     flowAnalysis.storeExpressionInfo(
       node,
       flowAnalysis.flow?.parenthesizedExpression(
-        flowAnalysis.getExpressionInfo(node.expression),
+        flowAnalysis.getExpressionInfo(node.expression2),
       ),
     );
     inferenceLogWriter?.exitExpression(node);
@@ -3750,7 +3753,7 @@
     var analysisResult = analyzePatternAssignment(
       node,
       node.pattern,
-      node.expression,
+      node.expression2,
     );
     node.patternTypeSchema = analysisResult.patternSchema
         .unwrapTypeSchemaView();
@@ -3772,7 +3775,7 @@
     var patternSchema = analyzePatternVariableDeclaration(
       node,
       node.pattern,
-      node.expression,
+      node.expression2,
       isFinal: node.keyword.keyword == Keyword.FINAL,
     ).patternSchema;
     node.patternTypeSchema = patternSchema.unwrapTypeSchemaView();
@@ -3935,7 +3938,7 @@
 
     checkUnreachableNode(node);
 
-    var target = node.target;
+    var target = node.target2;
     if (target != null) {
       analyzeExpression(
         target,
@@ -4053,7 +4056,7 @@
   void visitReturnStatement(covariant ReturnStatementImpl node) {
     inferenceLogWriter?.enterStatement(node);
     checkUnreachableNode(node);
-    var expression = node.expression;
+    var expression = node.expression2;
     if (expression != null) {
       analyzeExpression(
         expression,
@@ -4125,7 +4128,7 @@
     }
     checkUnreachableNode(node);
     analyzeExpression(
-      node.expression,
+      node.expression2,
       SharedTypeSchemaView(iterableType ?? UnknownInferredType.instance),
     );
     popRewrite();
@@ -4133,7 +4136,7 @@
     if (!node.isNullAware) {
       nullableDereferenceVerifier.expression(
         diag.uncheckedUseOfNullableValueInSpread,
-        node.expression,
+        node.expression2,
       );
     }
 
@@ -4208,7 +4211,7 @@
     var previousExhaustiveness = legacySwitchExhaustiveness;
     var staticType = analyzeSwitchExpression(
       node,
-      node.expression,
+      node.expression2,
       node.cases.length,
       SharedTypeSchemaView(contextType),
     ).type.unwrapTypeView<TypeImpl>();
@@ -4225,7 +4228,7 @@
     checkUnreachableNode(node);
 
     var previousExhaustiveness = legacySwitchExhaustiveness;
-    analyzeSwitchStatement(node, node.expression, node.memberGroups.length);
+    analyzeSwitchStatement(node, node.expression2, node.memberGroups.length);
     // Stack: (Expression)
     popRewrite();
     // Stack: ()
@@ -4266,7 +4269,7 @@
     inferenceLogWriter?.enterExpression(node, contextType);
     checkUnreachableNode(node);
     analyzeExpression(
-      node.expression,
+      node.expression2,
       SharedTypeSchemaView(typeProvider.objectType),
     );
     popRewrite();
@@ -4374,7 +4377,7 @@
     libraryResolutionContext._variableNodes[fragment] = node;
     _variableDeclarationResolver.resolve(node);
 
-    var initializer = node.initializer;
+    var initializer = node.initializer2;
     if (initializer != null) {
       var parent = node.parent2 as VariableDeclarationList;
       var declaredType = parent.type;
@@ -4415,7 +4418,7 @@
     inferenceLogWriter?.enterStatement(node);
     checkUnreachableNode(node);
 
-    ExpressionImpl condition = node.condition;
+    ExpressionImpl condition = node.condition2;
 
     flowAnalysis.flow?.whileStatement_conditionBegin(node);
     analyzeExpression(condition, SharedTypeSchemaView(typeProvider.boolType));
@@ -4425,7 +4428,7 @@
     );
 
     boolExpressionVerifier.checkForNonBoolCondition(
-      node.condition,
+      node.condition2,
       whyNotPromoted: whyNotPromoted,
     );
 
@@ -4620,7 +4623,7 @@
     }
 
     var callReference = ImplicitCallReferenceImpl(
-      expression: expression,
+      expression2: expression,
       element: callMethod,
       typeArguments: null,
       typeArgumentTypes: typeArgumentTypes,
@@ -4636,7 +4639,7 @@
     PrefixedIdentifierImpl? originalNode,
   }) {
     if (node.isNullAware) {
-      _startNullAwareAccess(node.target);
+      _startNullAwareAccess(node.target2);
       nullSafetyDeadCodeVerifier.visitNode(node.propertyName);
     }
 
@@ -4718,15 +4721,15 @@
       expression = parent;
       parent = expression.parent2;
     }
-    if (parent is CascadeExpression && parent.target == expression) {
+    if (parent is CascadeExpression && parent.target2 == expression) {
       // Do not perform an "implicit tear-off conversion" here. It should only
       // be performed on [parent]. See
       // https://github.com/dart-lang/language/issues/1873.
       return true;
     }
     if (parent is ConditionalExpression &&
-        (parent.thenExpression == expression ||
-            parent.elseExpression == expression)) {
+        (parent.thenExpression2 == expression ||
+            parent.elseExpression2 == expression)) {
       // Do not perform an "implicit tear-off conversion" on the branches of a
       // conditional expression.
       return true;
@@ -4759,7 +4762,7 @@
           break;
         case ExtensionOverride(
           argumentList: ArgumentListImpl(
-            arguments: [ArgumentImpl(argumentExpression: var expression)],
+            arguments2: [ArgumentImpl(argumentExpression: var expression)],
           ),
         ):
         case var expression:
@@ -4788,7 +4791,7 @@
     }
 
     if (node.defaultClause case var defaultClause?) {
-      var defaultValue = defaultClause.value;
+      var defaultValue = defaultClause.value2;
       analyzeExpression(
         defaultValue,
         SharedTypeSchemaView(fragment.element.type),
@@ -4869,7 +4872,7 @@
       }
     }
     int unnamedIndex = 0;
-    NodeList<Argument> arguments = argumentList.arguments;
+    NodeList<Argument> arguments = argumentList.arguments2;
     int argumentCount = arguments.length;
     var resolvedParameters = List<InternalFormalParameterElement?>.filled(
       argumentCount,
@@ -4889,9 +4892,9 @@
         if (unnamedIndex < unnamedParameterCount) {
           resolvedParameters[i] = unnamedParameters[unnamedIndex++];
         } else {
-          firstUnresolvedArgument ??= argument.argumentExpression;
+          firstUnresolvedArgument ??= argument.argumentExpression2;
         }
-        lastPositionalArgument = argument.argumentExpression;
+        lastPositionalArgument = argument.argumentExpression2;
       }
     }
 
@@ -5028,7 +5031,7 @@
     } else if (nameNode is MethodInvocation) {
       name = nameNode.methodName.name;
     } else if (nameNode is FunctionExpressionInvocation) {
-      var function = nameNode.function;
+      var function = nameNode.function2;
       if (function is SimpleIdentifier) {
         name = function.name;
       }
@@ -5120,7 +5123,7 @@
       if (guardedPattern.whenClause == null) {
         var pattern = guardedPattern.pattern.unParenthesized;
         if (pattern is ConstantPatternImpl) {
-          caseConstant = pattern.expression;
+          caseConstant = pattern.expression2;
         }
       }
       _handleCaseConstant(caseConstant);
@@ -5132,13 +5135,13 @@
       if (_enumConstants != null) {
         ExpressionImpl? caseConstant;
         if (node is SwitchCaseImpl) {
-          caseConstant = node.expression;
+          caseConstant = node.expression2;
         } else if (node is SwitchPatternCaseImpl) {
           var guardedPattern = node.guardedPattern;
           if (guardedPattern.whenClause == null) {
             var pattern = guardedPattern.pattern.unParenthesized;
             if (pattern is ConstantPatternImpl) {
-              caseConstant = pattern.expression;
+              caseConstant = pattern.expression2;
             }
           }
         }
@@ -5166,7 +5169,7 @@
 
   static Element? _referencedElement(Expression expression) {
     if (expression is ParenthesizedExpression) {
-      return _referencedElement(expression.expression);
+      return _referencedElement(expression.expression2);
     } else if (expression is PrefixedIdentifier) {
       return expression.element;
     } else if (expression is PropertyAccess) {
diff --git a/pkg/analyzer/lib/src/generated/sdk.dart b/pkg/analyzer/lib/src/generated/sdk.dart
index 38e8432..de2d638 100644
--- a/pkg/analyzer/lib/src/generated/sdk.dart
+++ b/pkg/analyzer/lib/src/generated/sdk.dart
@@ -192,19 +192,19 @@
 
   @override
   void visitMapLiteralEntry(MapLiteralEntry node) {
-    var key = node.key as SimpleStringLiteral;
+    var key = node.key2 as SimpleStringLiteral;
     var libraryName = "$_LIBRARY_PREFIX${key.value}";
 
-    Expression value = node.value;
+    Expression value = node.value2;
     if (value is InstanceCreationExpression) {
       SdkLibraryImpl library = SdkLibraryImpl(libraryName);
-      List<Argument> arguments = value.argumentList.arguments;
+      List<Argument> arguments = value.argumentList.arguments2;
       for (Argument argument in arguments) {
         if (argument is SimpleStringLiteral) {
           library.path = argument.value;
         } else if (argument is NamedArgument) {
           String name = argument.name.lexeme;
-          Expression expression = argument.argumentExpression;
+          Expression expression = argument.argumentExpression2;
           if (name == _IMPLEMENTATION) {
             library._implementation = (expression as BooleanLiteral).value;
           } else if (name == _DOCUMENTED) {
diff --git a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
index 5696974..c1990dc 100644
--- a/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
+++ b/pkg/analyzer/lib/src/generated/static_type_analyzer.dart
@@ -68,7 +68,7 @@
   /// of the form <i>e..suffix</i> is equivalent to the expression <i>(t) {t.suffix; return
   /// t;}(e)</i>.</blockquote>
   void visitCascadeExpression(covariant CascadeExpressionImpl node) {
-    node.recordStaticType(node.target.typeOrThrow, resolver: _resolver);
+    node.recordStaticType(node.target2.typeOrThrow, resolver: _resolver);
   }
 
   void visitConditionalExpression(
@@ -79,9 +79,9 @@
     // `K` is analyzed as follows:
     //
     // - Let `T1` be the type of `e1` inferred with context type `K`
-    var t1 = node.thenExpression.typeOrThrow;
+    var t1 = node.thenExpression2.typeOrThrow;
     // - Let `T2` be the type of `e2` inferred with context type `K`
-    var t2 = node.elseExpression.typeOrThrow;
+    var t2 = node.elseExpression2.typeOrThrow;
     // - Let `T` be  `UP(T1, T2)`
     var t = _typeSystem.leastUpperBound(t1, t2);
     // - Let `S` be the greatest closure of `K`
@@ -216,7 +216,7 @@
   void visitParenthesizedExpression(
     covariant ParenthesizedExpressionImpl node,
   ) {
-    Expression expression = node.expression;
+    Expression expression = node.expression2;
     node.recordStaticType(expression.typeOrThrow, resolver: _resolver);
   }
 
diff --git a/pkg/analyzer/lib/src/hint/sdk_constraint_verifier.dart b/pkg/analyzer/lib/src/hint/sdk_constraint_verifier.dart
index 141b450..c4ec02c 100644
--- a/pkg/analyzer/lib/src/hint/sdk_constraint_verifier.dart
+++ b/pkg/analyzer/lib/src/hint/sdk_constraint_verifier.dart
@@ -58,7 +58,7 @@
   void visitArgumentList(ArgumentList node) {
     // Check (optional) positional arguments.
     // Named arguments are checked in [NamedArgument].
-    for (var argument in node.arguments) {
+    for (var argument in node.arguments2) {
       if (argument is! NamedArgument) {
         var parameter = argument.correspondingParameter;
         _checkSinceSdkVersion(parameter, node, errorEntity: argument);
@@ -177,7 +177,7 @@
             return;
           }
           if (target is AssignmentExpression) {
-            target = target.leftHandSide;
+            target = target.leftHandSide2;
           }
           if (target is ConstructorName) {
             errorEntity = target.name?.token ?? target.type.name;
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 12cf3e4..7243a3d 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -35,7 +35,7 @@
     FormalParameterImpl node,
     FormalParameterFragmentImpl fragment,
   ) {
-    fragment.constantInitializer = node.defaultClause?.value;
+    fragment.constantInitializer = node.defaultClause?.value2;
     if (node.functionTypedSuffix case var functionTypedSuffix?) {
       for (var formalParameter
           in functionTypedSuffix.formalParameters.allFormalParameters) {
@@ -87,7 +87,7 @@
 
     return ArgumentListImpl(
       leftParenthesis: Tokens.openParenthesis(),
-      arguments: arguments,
+      arguments2: arguments,
       rightParenthesis: Tokens.closeParenthesis(),
     );
   }
@@ -96,7 +96,7 @@
     var expression = _readNode() as ExpressionImpl;
     var type = _readNode() as TypeAnnotationImpl;
     var node = AsExpressionImpl(
-      expression: expression,
+      expression2: expression,
       asOperator: Tokens.as_(),
       type: type,
     );
@@ -110,9 +110,9 @@
     return AssertInitializerImpl(
       assertKeyword: Tokens.assert_(),
       leftParenthesis: Tokens.openParenthesis(),
-      condition: condition,
+      condition2: condition,
       comma: message != null ? Tokens.comma() : null,
-      message: message,
+      message2: message,
       rightParenthesis: Tokens.closeParenthesis(),
     );
   }
@@ -122,9 +122,9 @@
     var rightHandSide = _readNode() as ExpressionImpl;
     var operatorType = UnlinkedTokenType.values[_readByte()];
     var node = AssignmentExpressionImpl(
-      leftHandSide: leftHandSide,
+      leftHandSide2: leftHandSide,
       operator: Tokens.fromType(operatorType),
-      rightHandSide: rightHandSide,
+      rightHandSide2: rightHandSide,
     );
     node.element = _reader.readElement() as InternalMethodElement?;
     node.readElement = _reader.readElement();
@@ -139,7 +139,7 @@
     var expression = _readNode() as ExpressionImpl;
     return AwaitExpressionImpl(
       awaitKeyword: Tokens.await_(),
-      expression: expression,
+      expression2: expression,
     );
   }
 
@@ -148,9 +148,9 @@
     var rightOperand = _readNode() as ExpressionImpl;
     var operatorType = UnlinkedTokenType.values[_readByte()];
     var node = BinaryExpressionImpl(
-      leftOperand: leftOperand,
+      leftOperand2: leftOperand,
       operator: Tokens.fromType(operatorType),
-      rightOperand: rightOperand,
+      rightOperand2: rightOperand,
     );
     node.element = _reader.readElement() as MethodElement?;
     node.staticInvokeType = _reader.readOptionalFunctionType();
@@ -175,7 +175,10 @@
   CascadeExpression _readCascadeExpression() {
     var target = _readNode() as ExpressionImpl;
     var sections = _readNodeList<ExpressionImpl>();
-    var node = CascadeExpressionImpl(target: target, cascadeSections: sections);
+    var node = CascadeExpressionImpl(
+      target2: target,
+      cascadeSections2: sections,
+    );
     node.setPseudoExpressionStaticType(target.staticType);
     return node;
   }
@@ -185,11 +188,11 @@
     var thenExpression = _readNode() as ExpressionImpl;
     var elseExpression = _readNode() as ExpressionImpl;
     var node = ConditionalExpressionImpl(
-      condition: condition,
+      condition2: condition,
       question: Tokens.question(),
-      thenExpression: thenExpression,
+      thenExpression2: thenExpression,
       colon: Tokens.colon(),
-      elseExpression: elseExpression,
+      elseExpression2: elseExpression,
     );
     _readExpressionResolution(node);
     return node;
@@ -205,7 +208,7 @@
       period: hasThis ? Tokens.period() : null,
       fieldName: fieldName,
       equals: Tokens.eq(),
-      expression: expression,
+      expression2: expression,
     );
   }
 
@@ -425,7 +428,7 @@
     var body = _readNode() as CollectionElementImpl;
     return ForElementImpl(
       awaitKeyword: AstBinaryFlags.hasAwait(flags) ? Tokens.await_() : null,
-      body: body,
+      body2: body,
       forKeyword: Tokens.for_(),
       forLoopParts: forLoopParts,
       leftParenthesis: Tokens.openParenthesis(),
@@ -441,7 +444,7 @@
     }
     return FormalParameterDefaultClauseImpl(
       separator: Tokens.colon(),
-      value: _readNode() as ExpressionImpl,
+      value2: _readNode() as ExpressionImpl,
     );
   }
 
@@ -499,7 +502,7 @@
       condition: condition,
       leftSeparator: Tokens.semicolon(),
       rightSeparator: Tokens.semicolon(),
-      updaters: updaters,
+      updaters2: updaters,
     );
   }
 
@@ -509,10 +512,10 @@
     var updaters = _readNodeList<ExpressionImpl>();
     return ForPartsWithExpressionImpl(
       condition: condition,
-      initialization: initialization,
+      initialization2: initialization,
       leftSeparator: Tokens.semicolon(),
       rightSeparator: Tokens.semicolon(),
-      updaters: updaters,
+      updaters2: updaters,
     );
   }
 
@@ -521,7 +524,7 @@
     var typeArguments = _readOptionalNode() as TypeArgumentListImpl?;
     var arguments = _readNode() as ArgumentListImpl;
     var node = FunctionExpressionInvocationImpl(
-      function: function,
+      function2: function,
       typeArguments: typeArguments,
       argumentList: arguments,
     );
@@ -534,7 +537,7 @@
     var typeArguments = _readOptionalNode() as TypeArgumentListImpl?;
 
     var node = FunctionReferenceImpl(
-      function: function,
+      function2: function,
       typeArguments: typeArguments,
     );
     node.typeArgumentTypes = _reader.readOptionalTypeList();
@@ -578,14 +581,14 @@
     var thenElement = _readNode() as CollectionElementImpl;
     var elseElement = _readOptionalNode() as CollectionElementImpl?;
     return IfElementImpl(
-      expression: expression,
+      expression2: expression,
       caseClause: null,
-      elseElement: elseElement,
+      elseElement2: elseElement,
       elseKeyword: elseElement != null ? Tokens.else_() : null,
       ifKeyword: Tokens.if_(),
       leftParenthesis: Tokens.openParenthesis(),
       rightParenthesis: Tokens.closeParenthesis(),
-      thenElement: thenElement,
+      thenElement2: thenElement,
     );
   }
 
@@ -596,7 +599,7 @@
     var staticElement = _reader.readElement() as MethodElementImpl;
 
     var node = ImplicitCallReferenceImpl(
-      expression: expression,
+      expression2: expression,
       element: staticElement,
       typeArguments: typeArguments,
       typeArgumentTypes: typeArgumentTypes,
@@ -621,11 +624,11 @@
     var target = _readOptionalNode() as ExpressionImpl?;
     var index = _readNode() as ExpressionImpl;
     var node = IndexExpressionImpl(
-      target: target,
+      target2: target,
       period: AstBinaryFlags.hasPeriod(flags) ? Tokens.periodPeriod() : null,
       question: AstBinaryFlags.hasQuestion(flags) ? Tokens.question() : null,
       leftBracket: Tokens.openSquareBracket(),
-      index: index,
+      index2: index,
       rightBracket: Tokens.closeSquareBracket(),
     );
     node.element = _reader.readElement() as MethodElement?;
@@ -697,7 +700,7 @@
       leftBracket: isIdentifier
           ? Tokens.stringInterpolationIdentifier()
           : Tokens.stringInterpolationExpression(),
-      expression: expression,
+      expression2: expression,
       rightBracket: isIdentifier ? null : Tokens.closeCurlyBracket(),
     );
   }
@@ -722,7 +725,7 @@
     var expression = _readNode() as ExpressionImpl;
     var type = _readNode() as TypeAnnotationImpl;
     var node = IsExpressionImpl(
-      expression: expression,
+      expression2: expression,
       isOperator: Tokens.is_(),
       notOperator: AstBinaryFlags.hasNot(flags) ? Tokens.bang() : null,
       type: type,
@@ -740,7 +743,7 @@
       constKeyword: AstBinaryFlags.isConst(flags) ? Tokens.const_() : null,
       typeArguments: typeArguments,
       leftBracket: Tokens.openSquareBracket(),
-      elements: elements,
+      elements2: elements,
       rightBracket: Tokens.closeSquareBracket(),
     );
     _readExpressionResolution(node);
@@ -756,12 +759,12 @@
       keyQuestion: AstBinaryFlags.hasQuestion(keyFlags)
           ? Tokens.question()
           : null,
-      key: key,
+      key2: key,
       separator: Tokens.colon(),
       valueQuestion: AstBinaryFlags.hasQuestion(valueFlags)
           ? Tokens.question()
           : null,
-      value: value,
+      value2: value,
     );
   }
 
@@ -784,7 +787,7 @@
     }
 
     var node = MethodInvocationImpl(
-      target: target,
+      target2: target,
       operator: operator,
       methodName: methodName,
       typeArguments: typeArguments,
@@ -800,7 +803,7 @@
     return NamedArgumentImpl(
       name: StringToken(TokenType.STRING, name, -1),
       colon: Tokens.colon(),
-      argumentExpression: argumentExpression,
+      argumentExpression2: argumentExpression,
     );
   }
 
@@ -998,7 +1001,7 @@
 
   NullAwareElement _readNullAwareElement() {
     var value = _readNode() as ExpressionImpl;
-    return NullAwareElementImpl(question: Tokens.question(), value: value);
+    return NullAwareElementImpl(question: Tokens.question(), value2: value);
   }
 
   NullLiteral _readNullLiteral() {
@@ -1034,7 +1037,7 @@
     var expression = _readNode() as ExpressionImpl;
     var node = ParenthesizedExpressionImpl(
       leftParenthesis: Tokens.openParenthesis(),
-      expression: expression,
+      expression2: expression,
       rightParenthesis: Tokens.closeParenthesis(),
     );
     _readExpressionResolution(node);
@@ -1045,7 +1048,7 @@
     var operand = _readNode() as ExpressionImpl;
     var operatorType = UnlinkedTokenType.values[_readByte()];
     var node = PostfixExpressionImpl(
-      operand: operand,
+      operand2: operand,
       operator: Tokens.fromType(operatorType),
     );
     node.element = _reader.readElement() as MethodElement?;
@@ -1076,7 +1079,7 @@
     var operand = _readNode() as ExpressionImpl;
     var node = PrefixExpressionImpl(
       operator: Tokens.fromType(operatorType),
-      operand: operand,
+      operand2: operand,
     );
     node.element = _reader.readElement() as MethodElement?;
     if (node.operator.type.isIncrementOperator) {
@@ -1106,7 +1109,7 @@
     }
 
     var node = PropertyAccessImpl(
-      target: target,
+      target2: target,
       operator: operator,
       propertyName: propertyName,
     );
@@ -1120,7 +1123,7 @@
     var node = RecordLiteralImpl(
       constKeyword: AstBinaryFlags.isConst(flags) ? Tokens.const_() : null,
       leftParenthesis: Tokens.openParenthesis(),
-      fields: fields,
+      fields2: fields,
       rightParenthesis: Tokens.closeParenthesis(),
     );
     _readExpressionResolution(node);
@@ -1133,7 +1136,7 @@
     return RecordLiteralNamedFieldImpl(
       name: StringToken(TokenType.STRING, name, -1),
       colon: Tokens.colon(),
-      fieldExpression: fieldExpression,
+      fieldExpression2: fieldExpression,
     );
   }
 
@@ -1271,7 +1274,7 @@
     var elements = _readNodeList<CollectionElementImpl>();
     var node = SetOrMapLiteralImpl(
       constKeyword: AstBinaryFlags.isConst(flags) ? Tokens.const_() : null,
-      elements: elements,
+      elements2: elements,
       leftBracket: Tokens.openCurlyBracket(),
       typeArguments: typeArguments,
       rightBracket: Tokens.closeCurlyBracket(),
@@ -1319,7 +1322,7 @@
       spreadOperator: AstBinaryFlags.hasQuestion(flags)
           ? Tokens.periodPeriodPeriodQuestion()
           : Tokens.periodPeriodPeriod(),
-      expression: expression,
+      expression2: expression,
     );
   }
 
@@ -1428,7 +1431,7 @@
     var expression = _readNode() as ExpressionImpl;
     var node = ThrowExpressionImpl(
       throwKeyword: Tokens.throw_(),
-      expression: expression,
+      expression2: expression,
     );
     _readExpressionResolution(node);
     return node;
@@ -1490,7 +1493,7 @@
       metadata: [],
       name: name,
       equals: Tokens.eq(),
-      initializer: initializer,
+      initializer2: initializer,
     );
 
     node.hasInitializer = AstBinaryFlags.hasInitializer(flags);
@@ -1538,12 +1541,12 @@
     }
 
     var resolved = List<InternalFormalParameterElement?>.filled(
-      argumentList.arguments.length,
+      argumentList.arguments2.length,
       null,
     );
     var positionalIndex = 0;
-    for (var i = 0; i < argumentList.arguments.length; i++) {
-      var argument = argumentList.arguments[i];
+    for (var i = 0; i < argumentList.arguments2.length; i++) {
+      var argument = argumentList.arguments2[i];
       if (argument is NamedArgumentImpl) {
         resolved[i] = namedParameters[argument.name.lexeme];
       } else if (positionalIndex < positionalParameters.length) {
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index ac6313f..10f6eef 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -34,8 +34,8 @@
 
     var arguments = node.arguments;
     if (arguments != null) {
-      if (!arguments.arguments.every((argument) {
-        return _isSerializableExpression(argument.argumentExpression);
+      if (!arguments.arguments2.every((argument) {
+        return _isSerializableExpression(argument.argumentExpression2);
       })) {
         arguments = null;
       }
@@ -48,14 +48,14 @@
   @override
   void visitArgumentList(ArgumentList node) {
     _writeByte(Tag.ArgumentList);
-    _writeNodeList(node.arguments);
+    _writeNodeList(node.arguments2);
   }
 
   @override
   void visitAsExpression(AsExpression node) {
     _writeByte(Tag.AsExpression);
 
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
 
     _writeNode(node.type);
 
@@ -65,16 +65,16 @@
   @override
   void visitAssertInitializer(AssertInitializer node) {
     _writeByte(Tag.AssertInitializer);
-    _writeNode(node.condition);
-    _writeOptionalNode(node.message);
+    _writeNode(node.condition2);
+    _writeOptionalNode(node.message2);
   }
 
   @override
   void visitAssignmentExpression(AssignmentExpression node) {
     _writeByte(Tag.AssignmentExpression);
 
-    _writeNode(node.leftHandSide);
-    _writeNode(node.rightHandSide);
+    _writeNode(node.leftHandSide2);
+    _writeNode(node.rightHandSide2);
 
     var operatorToken = node.operator.type;
     var binaryToken = TokensWriter.astToBinaryTokenType(operatorToken);
@@ -92,7 +92,7 @@
   void visitAwaitExpression(AwaitExpression node) {
     _writeByte(Tag.AwaitExpression);
 
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
 
     _storeExpression(node);
   }
@@ -101,8 +101,8 @@
   void visitBinaryExpression(BinaryExpression node) {
     _writeByte(Tag.BinaryExpression);
 
-    _writeNode(node.leftOperand);
-    _writeNode(node.rightOperand);
+    _writeNode(node.leftOperand2);
+    _writeNode(node.rightOperand2);
 
     var operatorToken = node.operator.type;
     var binaryToken = TokensWriter.astToBinaryTokenType(operatorToken);
@@ -123,16 +123,16 @@
   @override
   void visitCascadeExpression(CascadeExpression node) {
     _writeByte(Tag.CascadeExpression);
-    _writeNode(node.target);
-    _writeNodeList(node.cascadeSections);
+    _writeNode(node.target2);
+    _writeNodeList(node.cascadeSections2);
   }
 
   @override
   void visitConditionalExpression(ConditionalExpression node) {
     _writeByte(Tag.ConditionalExpression);
-    _writeNode(node.condition);
-    _writeNode(node.thenExpression);
-    _writeNode(node.elseExpression);
+    _writeNode(node.condition2);
+    _writeNode(node.thenExpression2);
+    _writeNode(node.elseExpression2);
     _storeExpression(node);
   }
 
@@ -143,7 +143,7 @@
     _writeByte(AstBinaryFlags.encode(hasThis: node.thisKeyword != null));
 
     _writeNode(node.fieldName);
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
   }
 
   @override
@@ -292,7 +292,7 @@
   @override
   void visitForPartsWithExpression(ForPartsWithExpression node) {
     _writeByte(Tag.ForPartsWithExpression);
-    _writeOptionalNode(node.initialization);
+    _writeOptionalNode(node.initialization2);
     _storeForParts(node);
   }
 
@@ -300,14 +300,14 @@
   void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
     _writeByte(Tag.FunctionExpressionInvocation);
 
-    _writeNode(node.function);
+    _writeNode(node.function2);
     _storeInvocationExpression(node);
   }
 
   @override
   void visitFunctionReference(FunctionReference node) {
     _writeByte(Tag.FunctionReference);
-    _writeNode(node.function);
+    _writeNode(node.function2);
     _writeOptionalNode(node.typeArguments);
     _sink.writeOptionalTypeList(node.typeArgumentTypes);
     _storeExpression(node);
@@ -331,15 +331,15 @@
   @override
   void visitIfElement(IfElement node) {
     _writeByte(Tag.IfElement);
-    _writeNode(node.expression);
-    _writeNode(node.thenElement);
-    _writeOptionalNode(node.elseElement);
+    _writeNode(node.expression2);
+    _writeNode(node.thenElement2);
+    _writeOptionalNode(node.elseElement2);
   }
 
   @override
   void visitImplicitCallReference(ImplicitCallReference node) {
     _writeByte(Tag.ImplicitCallReference);
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
     _writeOptionalNode(node.typeArguments);
     _sink.writeOptionalTypeList(node.typeArgumentTypes);
 
@@ -364,8 +364,8 @@
         hasQuestion: node.question != null,
       ),
     );
-    _writeOptionalNode(node.target);
-    _writeNode(node.index);
+    _writeOptionalNode(node.target2);
+    _writeNode(node.index2);
 
     _sink.writeElement(node.element);
 
@@ -432,7 +432,7 @@
             node.leftBracket.type == TokenType.STRING_INTERPOLATION_IDENTIFIER,
       ),
     );
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
   }
 
   @override
@@ -446,7 +446,7 @@
   void visitIsExpression(IsExpression node) {
     _writeByte(Tag.IsExpression);
     _writeByte(AstBinaryFlags.encode(hasNot: node.notOperator != null));
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
     _writeNode(node.type);
     _storeExpression(node);
   }
@@ -458,7 +458,7 @@
     _writeByte(AstBinaryFlags.encode(isConst: node.constKeyword != null));
 
     _writeOptionalNode(node.typeArguments);
-    _writeNodeList(node.elements);
+    _writeNodeList(node.elements2);
 
     _storeExpression(node);
   }
@@ -471,13 +471,13 @@
         hasQuestion: node.keyQuestion?.type == TokenType.QUESTION,
       ),
     );
-    _writeNode(node.key);
+    _writeNode(node.key2);
     _writeByte(
       AstBinaryFlags.encode(
         hasQuestion: node.valueQuestion?.type == TokenType.QUESTION,
       ),
     );
-    _writeNode(node.value);
+    _writeNode(node.value2);
   }
 
   @override
@@ -499,7 +499,7 @@
       ),
     );
 
-    _writeOptionalNode(node.target);
+    _writeOptionalNode(node.target2);
     _writeNode(node.methodName);
     _storeInvocationExpression(node);
   }
@@ -510,7 +510,7 @@
 
     _writeStringReference(node.name.lexeme);
 
-    _writeNode(node.argumentExpression);
+    _writeNode(node.argumentExpression2);
   }
 
   @override
@@ -535,7 +535,7 @@
   @override
   void visitNullAwareElement(NullAwareElement node) {
     _writeByte(Tag.NullAwareElement);
-    _writeNode(node.value);
+    _writeNode(node.value2);
   }
 
   @override
@@ -547,7 +547,7 @@
   @override
   void visitParenthesizedExpression(ParenthesizedExpression node) {
     _writeByte(Tag.ParenthesizedExpression);
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
     _storeExpression(node);
   }
 
@@ -555,7 +555,7 @@
   void visitPostfixExpression(PostfixExpression node) {
     _writeByte(Tag.PostfixExpression);
 
-    _writeNode(node.operand);
+    _writeNode(node.operand2);
 
     var operatorToken = node.operator.type;
     var binaryToken = TokensWriter.astToBinaryTokenType(operatorToken);
@@ -589,7 +589,7 @@
     var binaryToken = TokensWriter.astToBinaryTokenType(operatorToken);
     _writeByte(binaryToken.index);
 
-    _writeNode(node.operand);
+    _writeNode(node.operand2);
 
     _sink.writeElement(node.element);
     if (operatorToken.isIncrementOperator) {
@@ -621,7 +621,7 @@
       ),
     );
 
-    _writeOptionalNode(node.target);
+    _writeOptionalNode(node.target2);
     _writeNode(node.propertyName);
     // TODO(scheglov): Get from the property?
     _storeExpression(node);
@@ -631,7 +631,7 @@
   void visitRecordLiteral(RecordLiteral node) {
     _writeByte(Tag.RecordLiteral);
     _writeByte(AstBinaryFlags.encode(isConst: node.constKeyword != null));
-    _writeNodeList(node.fields);
+    _writeNodeList(node.fields2);
     _storeExpression(node);
   }
 
@@ -639,7 +639,7 @@
   void visitRecordLiteralNamedField(RecordLiteralNamedField node) {
     _writeByte(Tag.RecordLiteralNamedField);
     _writeStringReference(node.name.lexeme);
-    _writeNode(node.fieldExpression);
+    _writeNode(node.fieldExpression2);
   }
 
   @override
@@ -719,7 +719,7 @@
     _sink.writeByte(isMapBit | isSetBit);
 
     _writeOptionalNode(node.typeArguments);
-    _writeNodeList(node.elements);
+    _writeNodeList(node.elements2);
 
     _storeExpression(node);
   }
@@ -752,7 +752,7 @@
             node.spreadOperator.type == TokenType.PERIOD_PERIOD_PERIOD_QUESTION,
       ),
     );
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
   }
 
   @override
@@ -811,7 +811,7 @@
   @override
   void visitThrowExpression(ThrowExpression node) {
     _writeByte(Tag.ThrowExpression);
-    _writeNode(node.expression);
+    _writeNode(node.expression2);
     _storeExpression(node);
   }
 
@@ -899,7 +899,7 @@
 
   void _storeForParts(ForParts node) {
     _writeOptionalNode(node.condition);
-    _writeNodeList(node.updaters);
+    _writeNodeList(node.updaters2);
     _storeForLoopParts(node);
   }
 
@@ -931,7 +931,7 @@
       _writeDeclarationName(node.name!);
     }
     if (node.defaultClause case var defaultClause?) {
-      _writeNode(defaultClause.value);
+      _writeNode(defaultClause.value2);
     }
   }
 
diff --git a/pkg/analyzer/lib/src/summary2/default_value_resolver.dart b/pkg/analyzer/lib/src/summary2/default_value_resolver.dart
index aa7efe9..0b0a695 100644
--- a/pkg/analyzer/lib/src/summary2/default_value_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/default_value_resolver.dart
@@ -98,9 +98,9 @@
       enclosingExecutableElement: enclosingExecutableElement,
     );
     astResolver.resolveExpression(
-      () => firstNode.defaultClause!.value,
+      () => firstNode.defaultClause!.value2,
       contextType: contextType,
     );
-    firstFragment.constantInitializer = firstNode.defaultClause!.value;
+    firstFragment.constantInitializer = firstNode.defaultClause!.value2;
   }
 }
diff --git a/pkg/analyzer/lib/src/summary2/detach_nodes.dart b/pkg/analyzer/lib/src/summary2/detach_nodes.dart
index a5dadbe..53acf5b 100644
--- a/pkg/analyzer/lib/src/summary2/detach_nodes.dart
+++ b/pkg/analyzer/lib/src/summary2/detach_nodes.dart
@@ -34,26 +34,26 @@
       for (var initializer in initializers) {
         if (initializer is! ConstructorInitializerImpl) continue;
         switch (initializer) {
-          case AssertInitializerImpl(:var condition, :var message):
+          case AssertInitializerImpl(:var condition2, :var message2):
             var conditionReplacement = replaceNotSerializableExpression(
-              condition,
+              condition2,
             );
-            initializer.condition = conditionReplacement;
+            initializer.condition2 = conditionReplacement;
 
-            if (message != null) {
+            if (message2 != null) {
               var messageReplacement = replaceNotSerializableExpression(
-                message,
+                message2,
               );
-              initializer.message = messageReplacement;
+              initializer.message2 = messageReplacement;
             }
-          case ConstructorFieldInitializerImpl(:var expression):
-            var replacement = replaceNotSerializableExpression(expression);
-            initializer.expression = replacement;
+          case ConstructorFieldInitializerImpl(:var expression2):
+            var replacement = replaceNotSerializableExpression(expression2);
+            initializer.expression2 = replacement;
             AstNodeImpl.linkNodeTokens(initializer);
           case RedirectingConstructorInvocationImpl(:var argumentList):
-            _sanitizeArguments(argumentList.arguments);
+            _sanitizeArguments(argumentList.arguments2);
           case SuperConstructorInvocationImpl(:var argumentList):
-            _sanitizeArguments(argumentList.arguments);
+            _sanitizeArguments(argumentList.arguments2);
         }
       }
 
@@ -67,7 +67,7 @@
     for (var annotation in element.metadata.annotations) {
       var ast = (annotation as ElementAnnotationImpl).annotationAst;
       _detachNode(ast);
-      _sanitizeArguments(ast.arguments?.arguments);
+      _sanitizeArguments(ast.arguments?.arguments2);
     }
     super.visitElement(element);
   }
@@ -132,8 +132,8 @@
           case ExpressionImpl():
             arguments[i] = replaceNotSerializableExpression(argument);
           case NamedArgumentImpl():
-            argument.argumentExpression = replaceNotSerializableExpression(
-              argument.argumentExpression,
+            argument.argumentExpression2 = replaceNotSerializableExpression(
+              argument.argumentExpression2,
             );
         }
       }
diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart
index 346ab8b..74e2a57 100644
--- a/pkg/analyzer/lib/src/summary2/element_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/element_builder.dart
@@ -428,7 +428,7 @@
       var firstFragment = instanceFragment.element.firstFragment;
       var firstImplicit = implicitsMap[firstFragment]!;
       firstImplicit.valuesInitializer.addElements(
-        augmentationImplicit.valuesInitializer.elements,
+        augmentationImplicit.valuesInitializer.elements2,
       );
       return firstImplicit.valuesFragment;
     }
@@ -1496,7 +1496,7 @@
               constantArguments?.argumentList ??
               ArgumentListImpl(
                 leftParenthesis: Tokens.openParenthesis(),
-                arguments: [],
+                arguments2: [],
                 rightParenthesis: Tokens.closeParenthesis(),
               ),
           typeArguments: null,
@@ -1507,7 +1507,7 @@
           metadata: [],
           name: StringToken(TokenType.STRING, name, -1),
           equals: Tokens.eq(),
-          initializer: initializer,
+          initializer2: initializer,
         );
         constant.declaredFragment = field;
         variableDeclaration.declaredFragment = field;
@@ -1541,7 +1541,7 @@
         constKeyword: null,
         typeArguments: null,
         leftBracket: Tokens.openSquareBracket(),
-        elements: valuesElements,
+        elements2: valuesElements,
         rightBracket: Tokens.closeSquareBracket(),
       );
       AstNodeImpl.linkNodeTokens(initializer);
@@ -1552,7 +1552,7 @@
         metadata: [],
         name: StringToken(TokenType.STRING, 'values', -1),
         equals: Tokens.eq(),
-        initializer: initializer,
+        initializer2: initializer,
       );
       var valuesTypeNode = NamedTypeImpl(
         importPrefix: null,
@@ -1679,7 +1679,7 @@
       var nameToken = variable.name;
 
       var fragment = FieldFragmentImpl(name: _getFragmentName(nameToken));
-      fragment.hasInitializer = variable.initializer != null;
+      fragment.hasInitializer = variable.initializer2 != null;
       fragment.isAbstract = node.abstractKeyword != null;
       fragment.isAugmentation = node.augmentKeyword != null;
       fragment.isConst = node.fields.isConst;
@@ -1691,7 +1691,7 @@
       fragment.isStatic = node.isStatic;
       fragment.metadata = metadata;
 
-      if (variable.initializer case var initializer?) {
+      if (variable.initializer2 case var initializer?) {
         if (node.fields.isConst) {
           fragment.constantInitializer = initializer;
         } else if (node.fields.isFinal && !node.isStatic) {
@@ -1741,7 +1741,7 @@
     _linker.setFragmentNode(fragment, node);
     _enclosingContext.addParameter(fragment);
 
-    fragment.constantInitializer = node.defaultClause?.value;
+    fragment.constantInitializer = node.defaultClause?.value2;
     fragment.hasImplicitType =
         node.type == null && node.functionTypedSuffix == null;
     fragment.isOriginDeclaration = true;
@@ -2174,7 +2174,7 @@
     _linker.setFragmentNode(fragment, node);
     _enclosingContext.addParameter(fragment);
 
-    fragment.constantInitializer = node.defaultClause?.value;
+    fragment.constantInitializer = node.defaultClause?.value2;
     fragment.hasImplicitType =
         node.type == null && node.functionTypedSuffix == null;
     fragment.isExplicitlyCovariant =
@@ -2203,7 +2203,7 @@
     _linker.setFragmentNode(fragment, node);
     _enclosingContext.addParameter(fragment);
 
-    fragment.constantInitializer = node.defaultClause?.value;
+    fragment.constantInitializer = node.defaultClause?.value2;
     fragment.hasImplicitType =
         node.type == null && node.functionTypedSuffix == null;
     fragment.isOriginDeclaration = true;
@@ -2228,7 +2228,7 @@
 
       var fragment = TopLevelVariableFragmentImpl(name: name2);
 
-      fragment.hasInitializer = variable.initializer != null;
+      fragment.hasInitializer = variable.initializer2 != null;
       fragment.isAbstract = node.abstractKeyword != null;
       fragment.isAugmentation = node.augmentKeyword != null;
       fragment.isConst = node.variables.isConst;
@@ -2238,7 +2238,7 @@
       fragment.isOriginDeclaration = true;
       fragment.metadata = metadata;
       if (fragment.isConst) {
-        fragment.constantInitializer = variable.initializer;
+        fragment.constantInitializer = variable.initializer2;
       }
 
       if (node.variables.type == null) {
diff --git a/pkg/analyzer/lib/src/summary2/informative_data.dart b/pkg/analyzer/lib/src/summary2/informative_data.dart
index c5d711b..05ecb7b 100644
--- a/pkg/analyzer/lib/src/summary2/informative_data.dart
+++ b/pkg/analyzer/lib/src/summary2/informative_data.dart
@@ -734,7 +734,7 @@
           parameter.metadata.accept2(collector);
           addFormalParameters(parameter.functionTypedSuffix?.formalParameters);
           if (parameter.defaultClause case var defaultClause?) {
-            defaultClause.value.accept2(collector);
+            defaultClause.value2.accept2(collector);
           }
         }
       }
@@ -862,7 +862,7 @@
       documentationComment: _getDocumentationComment(node),
       constantOffsets: _buildConstantOffsets(
         metadata: declaration.metadata,
-        constantInitializer: node.initializer,
+        constantInitializer: node.initializer2,
       ),
     );
   }
@@ -1126,7 +1126,7 @@
       documentationComment: _getDocumentationComment(node),
       constantOffsets: _buildConstantOffsets(
         metadata: declaration.metadata,
-        constantInitializer: node.initializer,
+        constantInitializer: node.initializer2,
       ),
     );
   }
@@ -2039,7 +2039,7 @@
 
   @override
   void visitMethodInvocation(MethodInvocation node) {
-    node.target?.accept2(this);
+    node.target2?.accept2(this);
     _tokenOrNull(node.operator);
     node.methodName.accept2(this);
     node.typeArguments?.accept2(this);
@@ -2094,7 +2094,7 @@
 
   @override
   void visitPropertyAccess(PropertyAccess node) {
-    node.target?.accept2(this);
+    node.target2?.accept2(this);
     _tokenOrNull(node.operator);
     node.propertyName.accept2(this);
   }
diff --git a/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart b/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
index 6123f9d..1443740 100644
--- a/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
+++ b/pkg/analyzer/lib/src/summary2/instance_member_inferrer.dart
@@ -511,7 +511,7 @@
         var initializer = initializers.single as SuperConstructorInvocation;
         forCorrespondingPairs<FormalParameterElementImpl, Argument>(
           constructor.formalParameters.cast(),
-          initializer.argumentList.arguments,
+          initializer.argumentList.arguments2,
           (parameter, argument) {
             (argument as SimpleIdentifierImpl).setPseudoExpressionStaticType(
               parameter.type,
diff --git a/pkg/analyzer/lib/src/summary2/top_level_inference.dart b/pkg/analyzer/lib/src/summary2/top_level_inference.dart
index 0fa1569..05a902b 100644
--- a/pkg/analyzer/lib/src/summary2/top_level_inference.dart
+++ b/pkg/analyzer/lib/src/summary2/top_level_inference.dart
@@ -87,7 +87,7 @@
       }
 
       astResolver.resolveExpression(
-        () => node.initializer!,
+        () => node.initializer2!,
         contextType: element.type,
         inScopePrimaryConstructorParameters:
             inScopePrimaryConstructorParameters,
@@ -95,7 +95,7 @@
     }
 
     // We could have rewritten the initializer.
-    fragment.constantInitializer = node.initializer;
+    fragment.constantInitializer = node.initializer2;
   }
 }
 
@@ -218,10 +218,10 @@
       var node = _linker.getLinkingNode(fragment);
       switch (node) {
         case VariableDeclarationImpl():
-          if (node.initializer != null) {
+          if (node.initializer2 != null) {
             initializerLibraryFragment = fragment.libraryFragment;
             scope = node.initializerScope!;
-            getInitializer = () => node.initializer!;
+            getInitializer = () => node.initializer2!;
             if (_element case FieldElementImpl field) {
               if (field.isInstanceField && !field.isLate) {
                 inScopePrimaryConstructorParameters = field.enclosingElement
@@ -236,7 +236,7 @@
           if (node.defaultClause case var defaultClause?) {
             initializerLibraryFragment = fragment.libraryFragment;
             scope = node.scope!;
-            getInitializer = () => defaultClause.value;
+            getInitializer = () => defaultClause.value2;
           } else if (node is RegularFormalParameterImpl &&
               node.functionTypedSuffix == null) {
             _status = _InferenceStatus.inferred;
diff --git a/pkg/analyzer/lib/src/utilities/dot_shorthands.dart b/pkg/analyzer/lib/src/utilities/dot_shorthands.dart
index 2f4dd0a..4400340 100644
--- a/pkg/analyzer/lib/src/utilities/dot_shorthands.dart
+++ b/pkg/analyzer/lib/src/utilities/dot_shorthands.dart
@@ -33,7 +33,7 @@
   } else if (node case MethodInvocation(
     methodName: SimpleIdentifier(:FunctionType staticType),
     typeArguments: null,
-    argumentList: ArgumentList(:var arguments),
+    argumentList: ArgumentList(:var arguments2),
   )) {
     // When the static type of the method invocation is a generic function type
     // with no explicit type arguments given, we will be inferring those types.
@@ -54,7 +54,7 @@
     // Then looking at every argument in the method invocation, we recursively
     // check the arguments of parameters that have type parameters that are in
     // the set of dependent type parameters that we calculated above.
-    for (var argument in arguments) {
+    for (var argument in arguments2) {
       var parameterTypeParameters = _findTypeParametersForFormalParameter(
         argument.correspondingParameter,
       );
@@ -67,14 +67,14 @@
       }
     }
   } else if (node
-      case ListLiteral(typeArguments: null, :var elements) ||
-          SetOrMapLiteral(typeArguments: null, :var elements)) {
+      case ListLiteral(typeArguments: null, :var elements2) ||
+          SetOrMapLiteral(typeArguments: null, :var elements2)) {
     // Lists, maps, and sets that have inferred type arguments need their
     // elements verified for dot shorthands that depend on that type inference.
-    for (var element in elements) {
+    for (var element in elements2) {
       if (element is MapLiteralEntry) {
-        if (hasDependentDotShorthand(element.key) ||
-            hasDependentDotShorthand(element.value)) {
+        if (hasDependentDotShorthand(element.key2) ||
+            hasDependentDotShorthand(element.value2)) {
           return true;
         }
       } else if (hasDependentDotShorthand(element)) {
@@ -85,12 +85,12 @@
     // Check if the return statement(s) of the function expression have a
     // dependent dot shorthand.
     switch (body) {
-      case ExpressionFunctionBody(:var expression):
-        return hasDependentDotShorthand(expression);
+      case ExpressionFunctionBody(:var expression2):
+        return hasDependentDotShorthand(expression2);
       case BlockFunctionBody(block: Block(:var statements)):
         for (var statement in statements) {
           if (statement is ReturnStatement) {
-            var expression = statement.expression;
+            var expression = statement.expression2;
             if (expression != null && hasDependentDotShorthand(expression)) {
               return true;
             }
@@ -107,7 +107,7 @@
     // inference information is required from any parent declared types.
     if (type.typeArguments != null) return false;
 
-    for (var argument in argumentList.arguments) {
+    for (var argument in argumentList.arguments2) {
       var parameterTypeParameters = _findTypeParametersForFormalParameter(
         argument.correspondingParameter,
       );
diff --git a/pkg/analyzer/lib/src/utilities/extensions/flutter.dart b/pkg/analyzer/lib/src/utilities/extensions/flutter.dart
index c5bbd64..0b4ae79 100644
--- a/pkg/analyzer/lib/src/utilities/extensions/flutter.dart
+++ b/pkg/analyzer/lib/src/utilities/extensions/flutter.dart
@@ -125,23 +125,23 @@
       var parent = node.parent2;
 
       if (parent is AssignmentExpression) {
-        if (parent.rightHandSide == node) {
+        if (parent.rightHandSide2 == node) {
           return node as Expression;
         }
         return null;
       }
 
       if (parent is ArgumentList ||
-          parent is ConditionalExpression && parent.thenExpression == node ||
-          parent is ConditionalExpression && parent.elseExpression == node ||
-          parent is ExpressionFunctionBody && parent.expression == node ||
-          parent is ForElement && parent.body == node ||
-          parent is IfElement && parent.thenElement == node ||
-          parent is IfElement && parent.elseElement == node ||
+          parent is ConditionalExpression && parent.thenExpression2 == node ||
+          parent is ConditionalExpression && parent.elseExpression2 == node ||
+          parent is ExpressionFunctionBody && parent.expression2 == node ||
+          parent is ForElement && parent.body2 == node ||
+          parent is IfElement && parent.thenElement2 == node ||
+          parent is IfElement && parent.elseElement2 == node ||
           parent is ListLiteral ||
-          parent is NamedArgument && parent.argumentExpression == node ||
+          parent is NamedArgument && parent.argumentExpression2 == node ||
           parent is Statement ||
-          parent is SwitchExpressionCase && parent.expression == node ||
+          parent is SwitchExpressionCase && parent.expression2 == node ||
           parent is VariableDeclaration) {
         return node as Expression;
       }
@@ -377,19 +377,19 @@
 extension InstanceCreationExpressionExtension on InstanceCreationExpression {
   /// The named expression representing the `builder` argument, or `null` if
   /// there is none.
-  NamedArgument? get builderArgument => argumentList.arguments
+  NamedArgument? get builderArgument => argumentList.arguments2
       .whereType<NamedArgument>()
       .firstWhereOrNull((argument) => argument.isBuilderArgument);
 
   /// The named expression representing the `child` argument, or `null` if there
   /// is none.
-  NamedArgument? get childArgument => argumentList.arguments
+  NamedArgument? get childArgument => argumentList.arguments2
       .whereType<NamedArgument>()
       .firstWhereOrNull((argument) => argument.isChildArgument);
 
   /// The named expression representing the `children` argument, or `null` if
   /// there is none.
-  NamedArgument? get childrenArgument => argumentList.arguments
+  NamedArgument? get childrenArgument => argumentList.arguments2
       .whereType<NamedArgument>()
       .firstWhereOrNull((argument) => argument.isChildrenArgument);
 
@@ -408,13 +408,13 @@
 
   /// The named expression representing the `sliver` argument, or `null` if there
   /// is none.
-  NamedArgument? get sliverArgument => argumentList.arguments
+  NamedArgument? get sliverArgument => argumentList.arguments2
       .whereType<NamedArgument>()
       .firstWhereOrNull((argument) => argument.isSliverArgument);
 
   /// The named expression representing the `slivers` argument, or `null` if
   /// there is none.
-  NamedArgument? get sliversArgument => argumentList.arguments
+  NamedArgument? get sliversArgument => argumentList.arguments2
       .whereType<NamedArgument>()
       .firstWhereOrNull((argument) => argument.isSliversArgument);
 
@@ -424,7 +424,7 @@
     if (!element.isWidget) {
       return null;
     }
-    var arguments = argumentList.arguments;
+    var arguments = argumentList.arguments2;
     if (element._isExactly('Icon', _uriWidgetsIcon)) {
       if (arguments.isNotEmpty) {
         var text = arguments[0].toString();
diff --git a/pkg/analyzer/lib/src/wolf/ir/ast_to_ir.dart b/pkg/analyzer/lib/src/wolf/ir/ast_to_ir.dart
index 20b7783..3057afe 100644
--- a/pkg/analyzer/lib/src/wolf/ir/ast_to_ir.dart
+++ b/pkg/analyzer/lib/src/wolf/ir/ast_to_ir.dart
@@ -127,7 +127,7 @@
         case PrefixedIdentifier() when identical(node, parent.identifier):
         case PropertyAccess() when identical(node, parent.propertyName):
           node = parent;
-        case AssignmentExpression() when identical(node, parent.leftHandSide):
+        case AssignmentExpression() when identical(node, parent.leftHandSide2):
           return parent;
         case PostfixExpression(operator: Token(:var type))
             when type == TokenType.PLUS_PLUS || type == TokenType.MINUS_MINUS:
@@ -288,13 +288,13 @@
   @override
   Null visitAssignmentExpression(AssignmentExpression node) {
     var previousNestingLevel = ir.nestingLevel;
-    var lValueTemplates = dispatchLValue(node.leftHandSide);
+    var lValueTemplates = dispatchLValue(node.leftHandSide2);
     // Stack: lValue
     switch (node.operator.type) {
       case TokenType.EQ:
-        dispatchNode(node.rightHandSide);
+        dispatchNode(node.rightHandSide2);
         // Stack: lValue rhs
-        eventListener.onEnterNode(node.leftHandSide);
+        eventListener.onEnterNode(node.leftHandSide2);
         lValueTemplates.write(this);
         // Stack: rhs
         eventListener.onExitNode();
@@ -310,9 +310,9 @@
         // Stack: BLOCK(1)? lvalue oldValue
         ir.drop();
         // Stack: BLOCK(1)? lvalue
-        dispatchNode(node.rightHandSide);
+        dispatchNode(node.rightHandSide2);
         // Stack: lValue rhs
-        eventListener.onEnterNode(node.leftHandSide);
+        eventListener.onEnterNode(node.leftHandSide2);
         lValueTemplates.write(this);
         // Stack: rhs
         eventListener.onExitNode();
@@ -330,7 +330,7 @@
       case TokenType.TILDE_SLASH_EQ:
         lValueTemplates.readForCompoundAssignment(this);
         // Stack: lValue oldValue
-        dispatchNode(node.rightHandSide);
+        dispatchNode(node.rightHandSide2);
         // Stack: lValue oldValue rhs
         var lexeme = node.operator.lexeme;
         assert(lexeme.endsWith('='));
@@ -341,7 +341,7 @@
           twoArguments,
         );
         // Stack: lValue newValue
-        eventListener.onEnterNode(node.leftHandSide);
+        eventListener.onEnterNode(node.leftHandSide2);
         lValueTemplates.write(this);
         // Stack: newValue
         eventListener.onExitNode();
@@ -353,10 +353,10 @@
 
   @override
   Null visitAwaitExpression(AwaitExpression node) {
-    dispatchNode(node.expression);
+    dispatchNode(node.expression2);
     // Stack: expression
     if (!typeSystem.isSubtypeOf(
-      node.expression.staticType!,
+      node.expression2.staticType!,
       typeProvider.futureDynamicType,
     )) {
       throw UnimplementedError('TODO(paulberry): handle await of non-future');
@@ -370,16 +370,16 @@
     var tokenType = node.operator.type;
     switch (tokenType) {
       case TokenType.EQ_EQ:
-        dispatchNode(node.leftOperand);
+        dispatchNode(node.leftOperand2);
         // Stack: lhs
-        dispatchNode(node.rightOperand);
+        dispatchNode(node.rightOperand2);
         // Stack: lhs rhs
         ir.eq();
       // Stack: (lhs == rhs)
       case TokenType.BANG_EQ:
-        dispatchNode(node.leftOperand);
+        dispatchNode(node.leftOperand2);
         // Stack: lhs
-        dispatchNode(node.rightOperand);
+        dispatchNode(node.rightOperand2);
         // Stack: lhs rhs
         ir.eq();
         // Stack: (lhs == rhs)
@@ -388,7 +388,7 @@
       case TokenType.AMPERSAND_AMPERSAND:
         ir.block(0, 1);
         // Stack: BLOCK(1)
-        dispatchNode(node.leftOperand);
+        dispatchNode(node.leftOperand2);
         // Stack: BLOCK(1) lhs
         ir.dup();
         // Stack: BLOCK(1) lhs lhs
@@ -398,14 +398,14 @@
         // Stack: BLOCK(1) lhs
         ir.drop();
         // Stack: BLOCK(1)
-        dispatchNode(node.rightOperand);
+        dispatchNode(node.rightOperand2);
         // Stack: BLOCK(1) rhs
         ir.end();
       // Stack: result
       case TokenType.BAR_BAR:
         ir.block(0, 1);
         // Stack: BLOCK(1)
-        dispatchNode(node.leftOperand);
+        dispatchNode(node.leftOperand2);
         // Stack: BLOCK(1) lhs
         ir.dup();
         // Stack: BLOCK(1) lhs lhs
@@ -413,14 +413,14 @@
         // Stack: BLOCK(1) lhs
         ir.drop();
         // Stack: BLOCK(1)
-        dispatchNode(node.rightOperand);
+        dispatchNode(node.rightOperand2);
         // Stack: BLOCK(1) rhs
         ir.end();
       // Stack: result
       case TokenType.QUESTION_QUESTION:
         ir.block(0, 1);
         // Stack: BLOCK(1)
-        dispatchNode(node.leftOperand);
+        dispatchNode(node.leftOperand2);
         // Stack: BLOCK(1) lhs
         ir.dup();
         // Stack: BLOCK(1) lhs lhs
@@ -434,7 +434,7 @@
         // Stack: BLOCK(1) lhs
         ir.drop();
         // Stack: BLOCK(1)
-        dispatchNode(node.rightOperand);
+        dispatchNode(node.rightOperand2);
         // Stack: BLOCK(1) rhs
         ir.end();
       // Stack: result
@@ -454,9 +454,9 @@
       case TokenType.SLASH:
       case TokenType.STAR:
       case TokenType.TILDE_SLASH:
-        dispatchNode(node.leftOperand);
+        dispatchNode(node.leftOperand2);
         // Stack: lhs
-        dispatchNode(node.rightOperand);
+        dispatchNode(node.rightOperand2);
         // Stack: lhs rhs
         instanceCall(node.element, tokenType.lexeme, [], twoArguments);
       // Stack: result
@@ -501,19 +501,19 @@
     // Stack: BLOCK(1)
     ir.block(0, 0);
     // Stack: BLOCK(1) BLOCK(0)
-    dispatchNode(node.condition);
+    dispatchNode(node.condition2);
     // Stack: BLOCK(1) BLOCK(0) condition
     ir.not();
     // Stack: BLOCK(1) BLOCK(0) !condition
     ir.brIf(0);
     // Stack: BLOCK(1) BLOCK(0)
-    dispatchNode(node.thenExpression);
+    dispatchNode(node.thenExpression2);
     // Stack: BLOCK(1) BLOCK(0) thenExpression
     ir.br(1);
     // Stack: BLOCK(1) BLOCK(0) indeterminate
     ir.end();
     // Stack: BLOCK(1)
-    dispatchNode(node.elseExpression);
+    dispatchNode(node.elseExpression2);
     // Stack: BLOCK(1) elseExpression
     ir.end();
     // Stack: result
@@ -542,7 +542,7 @@
     continueStack.removeLast();
     ir.end();
     // Stack: BLOCK(0) LOOP(0)
-    dispatchNode(node.condition);
+    dispatchNode(node.condition2);
     // Stack: BLOCK(0) LOOP(0) condition
     ir.not();
     // Stack: BLOCK(0) LOOP(0) !condition
@@ -563,13 +563,13 @@
 
   @override
   Null visitExpressionFunctionBody(ExpressionFunctionBody node) {
-    dispatchNode(node.expression);
+    dispatchNode(node.expression2);
     // Stack: expression
   }
 
   @override
   Null visitExpressionStatement(ExpressionStatement node) {
-    dispatchNode(node.expression);
+    dispatchNode(node.expression2);
     // Stack: expression
     ir.drop();
     // Stack: (empty)
@@ -578,7 +578,7 @@
   @override
   Null visitForStatement(ForStatement node) {
     switch (node.forLoopParts) {
-      case ForParts(:var condition, :var updaters) && var forParts:
+      case ForParts(:var condition, :var updaters2) && var forParts:
         switch (forParts) {
           case ForPartsWithDeclarations(:var variables):
             dispatchNode(variables);
@@ -607,7 +607,7 @@
         continueStack.removeLast();
         ir.end();
         // Stack: BLOCK(0) LOOP(0)
-        for (var updater in updaters) {
+        for (var updater in updaters2) {
           dispatchNode(updater);
           // Stack: BLOCK(0) LOOP(0) updater
           ir.drop();
@@ -669,7 +669,7 @@
     if (node.caseClause != null) throw UnimplementedError('TODO(paulberry)');
     var elseStatement = node.elseStatement;
     if (elseStatement == null) {
-      dispatchNode(node.expression);
+      dispatchNode(node.expression2);
       // Stack: expression
       ir.not();
       // Stack: !expression
@@ -681,7 +681,7 @@
       ir.end();
       // Stack: (empty)
     } else {
-      dispatchNode(node.expression);
+      dispatchNode(node.expression2);
       // Stack: expression
       ir.not();
       // Stack: !expression
@@ -711,10 +711,10 @@
 
   @override
   Null visitInterpolationExpression(InterpolationExpression node) {
-    dispatchNode(node.expression);
+    dispatchNode(node.expression2);
     // Stack: expression
     instanceCall(
-      lookupToString(node.expression.staticType),
+      lookupToString(node.expression2.staticType),
       'toString',
       [],
       oneArgument,
@@ -730,7 +730,7 @@
 
   @override
   Null visitIsExpression(IsExpression node) {
-    dispatchNode(node.expression);
+    dispatchNode(node.expression2);
     // Stack: expression
     ir.is_(ir.encodeType(node.type.type!));
     // Stack: (expression is type)
@@ -744,7 +744,7 @@
   Null visitMethodInvocation(MethodInvocation node) {
     var previousNestingLevel = ir.nestingLevel;
     var argumentNames = <String?>[];
-    var target = node.target;
+    var target = node.target2;
     var methodElement = node.methodName.element;
     switch (methodElement) {
       case TopLevelFunctionElement():
@@ -830,7 +830,7 @@
 
   @override
   Null visitParenthesizedExpression(ParenthesizedExpression node) {
-    dispatchNode(node.expression);
+    dispatchNode(node.expression2);
     // Stack: expression
   }
 
@@ -839,9 +839,9 @@
     switch (node.operator.type) {
       case TokenType.PLUS_PLUS:
       case TokenType.MINUS_MINUS:
-        var lValueTemplates = dispatchLValue(node.operand);
+        var lValueTemplates = dispatchLValue(node.operand2);
         // Stack: lValue
-        eventListener.onEnterNode(node.operand);
+        eventListener.onEnterNode(node.operand2);
         lValueTemplates.readForPostfixIncDec(this);
         // Stack: oldValue lValue oldValue
         eventListener.onExitNode();
@@ -879,13 +879,13 @@
   Null visitPrefixExpression(PrefixExpression node) {
     switch (node.operator.type) {
       case TokenType.BANG:
-        dispatchNode(node.operand);
+        dispatchNode(node.operand2);
         // Stack: operand
         ir.not();
       // Stack: !operand
       case TokenType.PLUS_PLUS:
       case TokenType.MINUS_MINUS:
-        var lValueTemplates = dispatchLValue(node.operand);
+        var lValueTemplates = dispatchLValue(node.operand2);
         // Stack: lValue
         lValueTemplates.readForCompoundAssignment(this);
         // Stack: lValue oldValue
@@ -893,7 +893,7 @@
         // Stack: lValue oldValue 1
         instanceCall(node.element, node.operator.lexeme[0], [], twoArguments);
         // Stack: lValue newValue
-        eventListener.onEnterNode(node.operand);
+        eventListener.onEnterNode(node.operand2);
         lValueTemplates.write(this);
         // Stack: newValue
         eventListener.onExitNode();
@@ -906,7 +906,7 @@
   _LValueTemplates visitPropertyAccess(PropertyAccess node) {
     var previousNestingLevel = ir.nestingLevel;
     // TODO(paulberry): handle cascades
-    dispatchNode(node.target!, terminateNullShorting: false);
+    dispatchNode(node.target2!, terminateNullShorting: false);
     // Stack: target
     if (node.isNullAware) {
       nullShortingCheck(previousNestingLevel: previousNestingLevel);
@@ -917,7 +917,7 @@
 
   @override
   Null visitReturnStatement(ReturnStatement node) {
-    switch (node.expression) {
+    switch (node.expression2) {
       case null:
         ir.literal(null_);
       case var expression:
@@ -974,7 +974,7 @@
   @override
   Null visitVariableDeclarationList(VariableDeclarationList variables) {
     for (var variable in variables.variables) {
-      var initializer = variable.initializer;
+      var initializer = variable.initializer2;
       var declaredElement = variable.declaredFragment!.element;
       assert(!locals.containsKey(declaredElement));
       var localIndex = ir.localVariableCount;
@@ -1012,7 +1012,7 @@
     ir.loop(0);
     // Stack: BLOCK(0) LOOP(0)
     continueStack.add(ir.nestingLevel);
-    dispatchNode(node.condition);
+    dispatchNode(node.condition2);
     // Stack: BLOCK(0) LOOP(0) condition
     ir.not();
     // Stack: BLOCK(0) LOOP(0) !condition
@@ -1030,7 +1030,7 @@
 
   @override
   Null visitYieldStatement(YieldStatement node) {
-    dispatchNode(node.expression);
+    dispatchNode(node.expression2);
     // Stack: expression
     ir.yield_();
     // Stack: (empty)
@@ -1046,9 +1046,9 @@
       nullShortingCheck(previousNestingLevel: previousNestingLevel);
     }
     // Stack: BLOCK(1)? target
-    for (var argument in argumentList.arguments) {
+    for (var argument in argumentList.arguments2) {
       if (argument is NamedArgument) {
-        dispatchNode(argument.argumentExpression);
+        dispatchNode(argument.argumentExpression2);
         argumentNames.add(argument.name.lexeme);
       } else {
         dispatchNode(argument);
diff --git a/pkg/analyzer/test/dart/ast/ast_test.dart b/pkg/analyzer/test/dart/ast/ast_test.dart
index e7946a8..c58d0b6 100644
--- a/pkg/analyzer/test/dart/ast/ast_test.dart
+++ b/pkg/analyzer/test/dart/ast/ast_test.dart
@@ -1039,7 +1039,7 @@
 ''');
 
     var argumentList = parseResult.findNode.argumentList('()');
-    var nodeList = argumentList.arguments;
+    var nodeList = argumentList.arguments2;
     expect(nodeList.beginToken, isNull);
   }
 
@@ -1049,7 +1049,7 @@
 ''');
 
     var argumentList = parseResult.findNode.argumentList('(0');
-    var nodeList = argumentList.arguments;
+    var nodeList = argumentList.arguments2;
     var first = nodeList[0];
     expect(nodeList.beginToken, same(first.beginToken));
   }
@@ -1060,7 +1060,7 @@
 ''');
 
     var argumentList = parseResult.findNode.argumentList('()');
-    var nodeList = argumentList.arguments;
+    var nodeList = argumentList.arguments2;
     expect(nodeList.endToken, isNull);
   }
 
@@ -1070,7 +1070,7 @@
 ''');
 
     var argumentList = parseResult.findNode.argumentList('(0');
-    var nodeList = argumentList.arguments;
+    var nodeList = argumentList.arguments2;
     var last = nodeList[nodeList.length - 1];
     expect(nodeList.endToken, same(last.endToken));
   }
@@ -1082,7 +1082,7 @@
 ''');
 
     var argumentList = parseResult.findNode.argumentList('(0');
-    var nodeList = argumentList.arguments;
+    var nodeList = argumentList.arguments2;
 
     var first = nodeList[0];
     var second = nodeList[1];
@@ -1104,7 +1104,7 @@
 ''');
 
     var argumentList = parseResult.findNode.argumentList('(0');
-    var nodeList = argumentList.arguments;
+    var nodeList = argumentList.arguments2;
 
     try {
       nodeList[-1] = nodeList.first;
@@ -1121,7 +1121,7 @@
 ''');
 
     var argumentList = parseResult.findNode.argumentList('(0');
-    var nodeList = argumentList.arguments;
+    var nodeList = argumentList.arguments2;
     try {
       nodeList[1] = nodeList.first;
       fail("Expected IndexOutOfBoundsException");
@@ -1824,13 +1824,13 @@
       contents: '
     InterpolationExpression
       leftBracket: $
-      expression: ThisExpression
+      expression2: ThisExpression
         thisKeyword: this
     InterpolationString
       contents: <empty> <synthetic>
     InterpolationExpression
       leftBracket: $
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: foo
     InterpolationString
       contents: '
diff --git a/pkg/analyzer/test/generated/class_member_parser_test.dart b/pkg/analyzer/test/generated/class_member_parser_test.dart
index 202ad16..7e61f9b 100644
--- a/pkg/analyzer/test/generated/class_member_parser_test.dart
+++ b/pkg/analyzer/test/generated/class_member_parser_test.dart
@@ -65,8 +65,8 @@
                 leftBracket: {
                 statements
                   ExpressionStatement
-                    expression: MethodInvocation
-                      target: InstanceCreationExpression
+                    expression2: MethodInvocation
+                      target2: InstanceCreationExpression
                         keyword: new
                         constructorName: ConstructorName
                           type: NamedType
@@ -107,9 +107,9 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: AwaitExpression
+          expression2: AwaitExpression
             awaitKeyword: await
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: x
           semicolon: ;
       rightBracket: }
@@ -172,15 +172,15 @@
       statements
         ReturnStatement
           returnKeyword: return
-          expression: BinaryExpression
-            leftOperand: AwaitExpression
+          expression2: BinaryExpression
+            leftOperand2: AwaitExpression
               awaitKeyword: await
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: x
             operator: +
-            rightOperand: AwaitExpression
+            rightOperand2: AwaitExpression
               awaitKeyword: await
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: y
           semicolon: ;
       rightBracket: }
@@ -209,9 +209,9 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: AwaitExpression
+          expression2: AwaitExpression
             awaitKeyword: await
-            expression: MethodInvocation
+            expression2: MethodInvocation
               methodName: SimpleIdentifier
                 token: returnsFuture
               argumentList: ArgumentList
@@ -249,9 +249,9 @@
         IfStatement
           ifKeyword: if
           leftParenthesis: (
-          expression: AwaitExpression
+          expression2: AwaitExpression
             awaitKeyword: await
-            expression: MethodInvocation
+            expression2: MethodInvocation
               methodName: SimpleIdentifier
                 token: returnsFuture
               argumentList: ArgumentList
@@ -265,11 +265,11 @@
           elseStatement: IfStatement
             ifKeyword: if
             leftParenthesis: (
-            expression: PrefixExpression
+            expression2: PrefixExpression
               operator: !
-              operand: AwaitExpression
+              operand2: AwaitExpression
                 awaitKeyword: await
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: returnsFuture
                   argumentList: ArgumentList
@@ -305,15 +305,15 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: print
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 AwaitExpression
                   awaitKeyword: await
-                  expression: MethodInvocation
+                  expression2: MethodInvocation
                     methodName: SimpleIdentifier
                       token: returnsFuture
                     argumentList: ArgumentList
@@ -351,15 +351,15 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: xor
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 AwaitExpression
                   awaitKeyword: await
-                  expression: MethodInvocation
+                  expression2: MethodInvocation
                     methodName: SimpleIdentifier
                       token: returnsFuture
                     argumentList: ArgumentList
@@ -367,7 +367,7 @@
                       rightParenthesis: )
                 AwaitExpression
                   awaitKeyword: await
-                  expression: MethodInvocation
+                  expression2: MethodInvocation
                     methodName: SimpleIdentifier
                       token: returnsFuture
                     argumentList: ArgumentList
@@ -375,7 +375,7 @@
                       rightParenthesis: )
                 AwaitExpression
                   awaitKeyword: await
-                  expression: MethodInvocation
+                  expression2: MethodInvocation
                     methodName: SimpleIdentifier
                       token: returnsFuture
                     argumentList: ArgumentList
@@ -411,19 +411,19 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: BinaryExpression
-            leftOperand: AwaitExpression
+          expression2: BinaryExpression
+            leftOperand2: AwaitExpression
               awaitKeyword: await
-              expression: MethodInvocation
+              expression2: MethodInvocation
                 methodName: SimpleIdentifier
                   token: returnsFuture
                 argumentList: ArgumentList
                   leftParenthesis: (
                   rightParenthesis: )
             operator: ^
-            rightOperand: AwaitExpression
+            rightOperand2: AwaitExpression
               awaitKeyword: await
-              expression: MethodInvocation
+              expression2: MethodInvocation
                 methodName: SimpleIdentifier
                   token: returnsFuture
                 argumentList: ArgumentList
@@ -458,25 +458,25 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: print
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 BinaryExpression
-                  leftOperand: AwaitExpression
+                  leftOperand2: AwaitExpression
                     awaitKeyword: await
-                    expression: MethodInvocation
+                    expression2: MethodInvocation
                       methodName: SimpleIdentifier
                         token: returnsFuture
                       argumentList: ArgumentList
                         leftParenthesis: (
                         rightParenthesis: )
                   operator: ^
-                  rightOperand: AwaitExpression
+                  rightOperand2: AwaitExpression
                     awaitKeyword: await
-                    expression: MethodInvocation
+                    expression2: MethodInvocation
                       methodName: SimpleIdentifier
                         token: returnsFuture
                       argumentList: ArgumentList
@@ -523,20 +523,20 @@
       fieldName: SimpleIdentifier
         token: x
       equals: =
-      expression: ConditionalExpression
-        condition: IsExpression
-          expression: SimpleIdentifier
+      expression2: ConditionalExpression
+        condition2: IsExpression
+          expression2: SimpleIdentifier
             token: a
           isOperator: is
           type: NamedType
             name: int
         question: ?
-        thenExpression: SetOrMapLiteral
+        thenExpression2: SetOrMapLiteral
           leftBracket: {
           rightBracket: }
           isMap: false
         colon: :
-        elseExpression: ListLiteral
+        elseExpression2: ListLiteral
           leftBracket: [
           rightBracket: ]
   body: BlockFunctionBody
@@ -595,8 +595,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: a
               isOperator: is
               type: NamedType
@@ -604,8 +604,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: b
               isOperator: is
               type: NamedType
@@ -664,8 +664,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: a
               isOperator: is
               type: NamedType
@@ -674,8 +674,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: b
               isOperator: is
               type: NamedType
@@ -737,8 +737,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: a
               isOperator: is
               type: NamedType
@@ -746,8 +746,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: b
               isOperator: is
               type: NamedType
@@ -810,8 +810,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: a
               isOperator: is
               type: NamedType
@@ -820,8 +820,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: IsExpression
-              expression: SimpleIdentifier
+            initializer2: IsExpression
+              expression2: SimpleIdentifier
                 token: b
               isOperator: is
               type: NamedType
@@ -879,8 +879,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: a
               asOperator: as
               type: NamedType
@@ -888,8 +888,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: b
               asOperator: as
               type: NamedType
@@ -948,8 +948,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: a
               asOperator: as
               type: NamedType
@@ -958,8 +958,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: b
               asOperator: as
               type: NamedType
@@ -1021,8 +1021,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: a
               asOperator: as
               type: NamedType
@@ -1030,8 +1030,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: b
               asOperator: as
               type: NamedType
@@ -1094,8 +1094,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: a
               asOperator: as
               type: NamedType
@@ -1104,8 +1104,8 @@
           VariableDeclaration
             name: y
             equals: =
-            initializer: AsExpression
-              expression: SimpleIdentifier
+            initializer2: AsExpression
+              expression2: SimpleIdentifier
                 token: b
               asOperator: as
               type: NamedType
@@ -1177,11 +1177,11 @@
       fieldName: SimpleIdentifier
         token: _a
       equals: =
-      expression: BinaryExpression
-        leftOperand: SimpleIdentifier
+      expression2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: _
         operator: +
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: _$
   body: BlockFunctionBody
     block: Block
@@ -1238,7 +1238,7 @@
       VariableDeclaration
         name: _allComponents
         equals: =
-        initializer: InstanceCreationExpression
+        initializer2: InstanceCreationExpression
           keyword: new
           constructorName: ConstructorName
             type: NamedType
@@ -1423,9 +1423,9 @@
       VariableDeclaration
         name: operator
         equals: =
-        initializer: ParenthesizedExpression
+        initializer2: ParenthesizedExpression
           leftParenthesis: (
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 5
           rightParenthesis: )
   semicolon: ;
@@ -1550,7 +1550,7 @@
       VariableDeclaration
         name: f
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 0
   semicolon: ;
 ''');
@@ -1722,7 +1722,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
     semicolon: ;
 ''');
@@ -1821,7 +1821,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
     semicolon: ;
 ''');
@@ -1922,7 +1922,7 @@
   name: C
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
     semicolon: ;
 ''');
@@ -2034,7 +2034,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
     semicolon: ;
 ''');
@@ -2104,7 +2104,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
     semicolon: ;
 ''');
@@ -2526,7 +2526,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BooleanLiteral
+              expression2: BooleanLiteral
                 literal: false
               semicolon: ;
         rightBracket: }
@@ -2574,11 +2574,11 @@
                 leftBracket: {
                 statements
                   ExpressionStatement
-                    expression: AssignmentExpression
-                      leftHandSide: SimpleIdentifier
+                    expression2: AssignmentExpression
+                      leftHandSide2: SimpleIdentifier
                         token: x
                       operator: >>>=
-                      rightHandSide: SimpleIdentifier
+                      rightHandSide2: SimpleIdentifier
                         token: value
                     semicolon: ;
                 rightBracket: }
@@ -2682,7 +2682,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: false
     semicolon: ;
 ''');
@@ -2736,9 +2736,9 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
     semicolon: ;
 ''');
@@ -2800,23 +2800,23 @@
       fieldName: SimpleIdentifier
         token: _x
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: BinaryExpression
-        leftOperand: SimpleIdentifier
+      condition2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: x
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: y
       rightParenthesis: )
     ConstructorFieldInitializer
       fieldName: SimpleIdentifier
         token: _y
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
   body: EmptyFunctionBody
     semicolon: ;
@@ -2864,9 +2864,9 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
     semicolon: ;
 ''');
@@ -2904,7 +2904,7 @@
       fieldName: SimpleIdentifier
         token: _x
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
     ConstructorFieldInitializer
       thisKeyword: this
@@ -2912,7 +2912,7 @@
       fieldName: SimpleIdentifier
         token: _y
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
   body: EmptyFunctionBody
     semicolon: ;
@@ -3018,7 +3018,7 @@
                 leftBracket: {
                 statements
                   ExpressionStatement
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: n
                     semicolon: ; <synthetic>
                 rightBracket: } <synthetic>
@@ -3161,9 +3161,9 @@
       fieldName: SimpleIdentifier
         token: a
       equals: =
-      expression: ParenthesizedExpression
+      expression2: ParenthesizedExpression
         leftParenthesis: (
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: b
         rightParenthesis: )
   body: BlockFunctionBody
@@ -3188,7 +3188,7 @@
   fieldName: SimpleIdentifier
     token: a
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: b
 ''');
   }
@@ -3206,7 +3206,7 @@
   fieldName: SimpleIdentifier
     token: a
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: b
 ''');
   }
@@ -3323,7 +3323,7 @@
       VariableDeclaration
         name: f
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 0
   semicolon: ;
 ''');
@@ -3506,7 +3506,7 @@
       VariableDeclaration
         name: f
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 0
   semicolon: ;
 ''');
@@ -3675,7 +3675,7 @@
   name: a
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 42
     semicolon: ;
 ''');
@@ -3702,14 +3702,14 @@
       VariableDeclaration
         name: a
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 1
       VariableDeclaration
         name: b
       VariableDeclaration
         name: c
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 3
   semicolon: ;
 ''');
@@ -3735,14 +3735,14 @@
       VariableDeclaration
         name: a
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 1
       VariableDeclaration
         name: b
       VariableDeclaration
         name: c
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 3
   semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/generated/collection_literal_parser_test.dart b/pkg/analyzer/test/generated/collection_literal_parser_test.dart
index 26a865d..ba3286d 100644
--- a/pkg/analyzer/test/generated/collection_literal_parser_test.dart
+++ b/pkg/analyzer/test/generated/collection_literal_parser_test.dart
@@ -22,11 +22,11 @@
   return [1, await for (var x in list) 2];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     ForElement
@@ -41,7 +41,7 @@
         iterable: SimpleIdentifier
           token: list
       rightParenthesis: )
-      body: IntegerLiteral
+      body2: IntegerLiteral
         literal: 2
   rightBracket: ]
 ''');
@@ -57,11 +57,11 @@
   ];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     ForElement
@@ -76,13 +76,13 @@
         iterable: SimpleIdentifier
           token: list
       rightParenthesis: )
-      body: IfElement
+      body2: IfElement
         ifKeyword: if
         leftParenthesis: (
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: c
         rightParenthesis: )
-        thenElement: IntegerLiteral
+        thenElement2: IntegerLiteral
           literal: 2
   rightBracket: ]
 ''');
@@ -97,11 +97,11 @@
   ];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     ForElement
@@ -115,27 +115,27 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: x
           operator: <
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 10
         rightSeparator: ;
-        updaters
+        updaters2
           PrefixExpression
             operator: ++
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: x
       rightParenthesis: )
-      body: SpreadElement
+      body2: SpreadElement
         spreadOperator: ...
-        expression: ListLiteral
+        expression2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 2
           rightBracket: ]
@@ -149,20 +149,20 @@
   return [1, if (true) 2];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: IntegerLiteral
+      thenElement2: IntegerLiteral
         literal: 2
   rightBracket: ]
 ''');
@@ -174,23 +174,23 @@
   return [1, if (true) 2 else 5];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: IntegerLiteral
+      thenElement2: IntegerLiteral
         literal: 2
       elseKeyword: else
-      elseElement: IntegerLiteral
+      elseElement2: IntegerLiteral
         literal: 5
   rightBracket: ]
 ''');
@@ -202,23 +202,23 @@
   return [1, if (true) 2 else for (a in b) 5];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: IntegerLiteral
+      thenElement2: IntegerLiteral
         literal: 2
       elseKeyword: else
-      elseElement: ForElement
+      elseElement2: ForElement
         forKeyword: for
         leftParenthesis: (
         forLoopParts: ForEachPartsWithIdentifier
@@ -228,7 +228,7 @@
           iterable: SimpleIdentifier
             token: b
         rightParenthesis: )
-        body: IntegerLiteral
+        body2: IntegerLiteral
           literal: 5
   rightBracket: ]
 ''');
@@ -243,33 +243,33 @@
   ];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: SpreadElement
+      thenElement2: SpreadElement
         spreadOperator: ...
-        expression: ListLiteral
+        expression2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 2
           rightBracket: ]
       elseKeyword: else
-      elseElement: SpreadElement
+      elseElement2: SpreadElement
         spreadOperator: ...?
-        expression: ListLiteral
+        expression2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 5
           rightBracket: ]
@@ -287,20 +287,20 @@
   ];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: ForElement
+      thenElement2: ForElement
         forKeyword: for
         leftParenthesis: (
         forLoopParts: ForEachPartsWithIdentifier
@@ -310,7 +310,7 @@
           iterable: SimpleIdentifier
             token: b
         rightParenthesis: )
-        body: IntegerLiteral
+        body2: IntegerLiteral
           literal: 2
   rightBracket: ]
 ''');
@@ -325,24 +325,24 @@
   ];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: SpreadElement
+      thenElement2: SpreadElement
         spreadOperator: ...
-        expression: ListLiteral
+        expression2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 2
           rightBracket: ]
@@ -359,18 +359,18 @@
   ];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     SpreadElement
       spreadOperator: ...
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 2
         rightBracket: ]
@@ -387,18 +387,18 @@
   ];
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     SpreadElement
       spreadOperator: ...?
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 2
         rightBracket: ]
@@ -412,16 +412,16 @@
   return {1: 7, await for (y in list) 2: 3};
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 7
     ForElement
       awaitKeyword: await
@@ -434,11 +434,11 @@
         iterable: SimpleIdentifier
           token: list
       rightParenthesis: )
-      body: MapLiteralEntry
-        key: IntegerLiteral
+      body2: MapLiteralEntry
+        key2: IntegerLiteral
           literal: 2
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 3
   rightBracket: }
   isMap: false
@@ -455,16 +455,16 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 7
     ForElement
       awaitKeyword: await
@@ -477,17 +477,17 @@
         iterable: SimpleIdentifier
           token: list
       rightParenthesis: )
-      body: IfElement
+      body2: IfElement
         ifKeyword: if
         leftParenthesis: (
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: c
         rightParenthesis: )
-        thenElement: MapLiteralEntry
-          key: IntegerLiteral
+        thenElement2: MapLiteralEntry
+          key2: IntegerLiteral
             literal: 2
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 3
   rightBracket: }
   isMap: false
@@ -503,51 +503,51 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 7
     ForElement
       forKeyword: for
       leftParenthesis: (
       forLoopParts: ForPartsWithExpression
-        initialization: AssignmentExpression
-          leftHandSide: SimpleIdentifier
+        initialization2: AssignmentExpression
+          leftHandSide2: SimpleIdentifier
             token: x
           operator: =
-          rightHandSide: IntegerLiteral
+          rightHandSide2: IntegerLiteral
             literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: x
           operator: <
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 10
         rightSeparator: ;
-        updaters
+        updaters2
           PrefixExpression
             operator: ++
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: x
       rightParenthesis: )
-      body: SpreadElement
+      body2: SpreadElement
         spreadOperator: ...
-        expression: SetOrMapLiteral
+        expression2: SetOrMapLiteral
           leftBracket: {
-          elements
+          elements2
             MapLiteralEntry
-              key: IntegerLiteral
+              key2: IntegerLiteral
                 literal: 2
               separator: :
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 3
           rightBracket: }
           isMap: false
@@ -562,28 +562,28 @@
   return {1: 1, if (true) 2: 4};
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: MapLiteralEntry
-        key: IntegerLiteral
+      thenElement2: MapLiteralEntry
+        key2: IntegerLiteral
           literal: 2
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 4
   rightBracket: }
   isMap: false
@@ -596,35 +596,35 @@
   return {1: 1, if (true) 2: 4 else 5: 6};
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: MapLiteralEntry
-        key: IntegerLiteral
+      thenElement2: MapLiteralEntry
+        key2: IntegerLiteral
           literal: 2
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 4
       elseKeyword: else
-      elseElement: MapLiteralEntry
-        key: IntegerLiteral
+      elseElement2: MapLiteralEntry
+        key2: IntegerLiteral
           literal: 5
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 6
   rightBracket: }
   isMap: false
@@ -637,31 +637,31 @@
   return {1: 1, if (true) 2: 4 else for (c in d) 5: 6};
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: MapLiteralEntry
-        key: IntegerLiteral
+      thenElement2: MapLiteralEntry
+        key2: IntegerLiteral
           literal: 2
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 4
       elseKeyword: else
-      elseElement: ForElement
+      elseElement2: ForElement
         forKeyword: for
         leftParenthesis: (
         forLoopParts: ForEachPartsWithIdentifier
@@ -671,11 +671,11 @@
           iterable: SimpleIdentifier
             token: d
         rightParenthesis: )
-        body: MapLiteralEntry
-          key: IntegerLiteral
+        body2: MapLiteralEntry
+          key2: IntegerLiteral
             literal: 5
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 6
   rightBracket: }
   isMap: false
@@ -691,47 +691,47 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 7
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: SpreadElement
+      thenElement2: SpreadElement
         spreadOperator: ...
-        expression: SetOrMapLiteral
+        expression2: SetOrMapLiteral
           leftBracket: {
-          elements
+          elements2
             MapLiteralEntry
-              key: IntegerLiteral
+              key2: IntegerLiteral
                 literal: 2
               separator: :
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 4
           rightBracket: }
           isMap: false
       elseKeyword: else
-      elseElement: SpreadElement
+      elseElement2: SpreadElement
         spreadOperator: ...?
-        expression: SetOrMapLiteral
+        expression2: SetOrMapLiteral
           leftBracket: {
-          elements
+          elements2
             MapLiteralEntry
-              key: IntegerLiteral
+              key2: IntegerLiteral
                 literal: 5
               separator: :
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 6
           rightBracket: }
           isMap: false
@@ -750,24 +750,24 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: ForElement
+      thenElement2: ForElement
         forKeyword: for
         leftParenthesis: (
         forLoopParts: ForEachPartsWithIdentifier
@@ -777,11 +777,11 @@
           iterable: SimpleIdentifier
             token: b
         rightParenthesis: )
-        body: MapLiteralEntry
-          key: IntegerLiteral
+        body2: MapLiteralEntry
+          key2: IntegerLiteral
             literal: 2
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 4
   rightBracket: }
   isMap: false
@@ -797,33 +797,33 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: SpreadElement
+      thenElement2: SpreadElement
         spreadOperator: ...
-        expression: SetOrMapLiteral
+        expression2: SetOrMapLiteral
           leftBracket: {
-          elements
+          elements2
             MapLiteralEntry
-              key: IntegerLiteral
+              key2: IntegerLiteral
                 literal: 2
               separator: :
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 4
           rightBracket: }
           isMap: false
@@ -841,27 +841,27 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 2
     SpreadElement
       spreadOperator: ...
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
@@ -879,7 +879,7 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -891,23 +891,23 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 2
     SpreadElement
       spreadOperator: ...
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
@@ -924,7 +924,7 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -936,17 +936,17 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     SpreadElement
       spreadOperator: ...
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
@@ -964,27 +964,27 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 2
     SpreadElement
       spreadOperator: ...?
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
@@ -1002,7 +1002,7 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -1014,23 +1014,23 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 1
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 2
     SpreadElement
       spreadOperator: ...?
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
@@ -1047,7 +1047,7 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -1059,17 +1059,17 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     SpreadElement
       spreadOperator: ...?
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
@@ -1084,20 +1084,20 @@
   return {1, if (true) 2};
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: IntegerLiteral
+      thenElement2: IntegerLiteral
         literal: 2
   rightBracket: }
   isMap: false
@@ -1110,23 +1110,23 @@
   return {1, if (true) 2 else 5};
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: IntegerLiteral
+      thenElement2: IntegerLiteral
         literal: 2
       elseKeyword: else
-      elseElement: IntegerLiteral
+      elseElement2: IntegerLiteral
         literal: 5
   rightBracket: }
   isMap: false
@@ -1142,34 +1142,34 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: SpreadElement
+      thenElement2: SpreadElement
         spreadOperator: ...
-        expression: SetOrMapLiteral
+        expression2: SetOrMapLiteral
           leftBracket: {
-          elements
+          elements2
             IntegerLiteral
               literal: 2
           rightBracket: }
           isMap: false
       elseKeyword: else
-      elseElement: SpreadElement
+      elseElement2: SpreadElement
         spreadOperator: ...?
-        expression: ListLiteral
+        expression2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 5
           rightBracket: ]
@@ -1187,24 +1187,24 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
-      thenElement: SpreadElement
+      thenElement2: SpreadElement
         spreadOperator: ...
-        expression: ListLiteral
+        expression2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 2
           rightBracket: ]
@@ -1222,18 +1222,18 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 3
     SpreadElement
       spreadOperator: ...
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 4
         rightBracket: ]
@@ -1251,18 +1251,18 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 3
     SpreadElement
       spreadOperator: ...?
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 4
         rightBracket: ]
@@ -1279,7 +1279,7 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -1289,12 +1289,12 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     SpreadElement
       spreadOperator: ...
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 3
         rightBracket: ]
@@ -1311,7 +1311,7 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -1321,12 +1321,12 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     SpreadElement
       spreadOperator: ...?
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 3
         rightBracket: ]
@@ -1343,21 +1343,21 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     SpreadElement
       spreadOperator: ...
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
@@ -1374,21 +1374,21 @@
   };
 }
 ''');
-    var node = parseResult.findNode.singleReturnStatement.expression!;
+    var node = parseResult.findNode.singleReturnStatement.expression2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     SpreadElement
       spreadOperator: ...?
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 3
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 4
         rightBracket: }
         isMap: false
diff --git a/pkg/analyzer/test/generated/complex_parser_test.dart b/pkg/analyzer/test/generated/complex_parser_test.dart
index 059acb5..6c93893 100644
--- a/pkg/analyzer/test/generated/complex_parser_test.dart
+++ b/pkg/analyzer/test/generated/complex_parser_test.dart
@@ -32,17 +32,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: -
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -54,13 +54,13 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: i
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
 ''');
   }
@@ -72,17 +72,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: *
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -96,17 +96,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: *
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: -
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -118,17 +118,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: +
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: *
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -142,17 +142,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: -
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -164,23 +164,23 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: MethodInvocation
-    target: FunctionExpressionInvocation
-      function: MethodInvocation
+  target2: MethodInvocation
+    target2: FunctionExpressionInvocation
+      function2: MethodInvocation
         methodName: SimpleIdentifier
           token: a
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: c
         rightParenthesis: )
@@ -189,7 +189,7 @@
       token: d
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: e
       rightParenthesis: )
@@ -206,12 +206,12 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: MethodInvocation
-    target: FunctionExpressionInvocation
-      function: MethodInvocation
+  target2: MethodInvocation
+    target2: FunctionExpressionInvocation
+      function2: MethodInvocation
         methodName: SimpleIdentifier
           token: a
         typeArguments: TypeArgumentList
@@ -222,7 +222,7 @@
           rightBracket: >
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
@@ -234,7 +234,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: c
         rightParenthesis: )
@@ -249,7 +249,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: e
       rightParenthesis: )
@@ -266,17 +266,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
   operator: =
-  rightHandSide: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  rightHandSide2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: y
     operator: =
-    rightHandSide: IntegerLiteral
+    rightHandSide2: IntegerLiteral
       literal: 0
 ''');
   }
@@ -288,18 +288,18 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: x
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 1
     rightBracket: ]
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -311,17 +311,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: x
     period: .
     identifier: SimpleIdentifier
       token: y
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -335,17 +335,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
     operator: .
     propertyName: SimpleIdentifier
       token: y
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -373,7 +373,7 @@
             name: xor
       semicolon: ; <synthetic>
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
       semicolon: ;
   rightBracket: }
@@ -396,19 +396,19 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: BinaryExpression
-        leftOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+      expression2: BinaryExpression
+        leftOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: x
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
         operator: && <synthetic>
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: y
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 1
       semicolon: ;
   rightBracket: }
@@ -422,17 +422,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: &
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -444,17 +444,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: ==
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -466,17 +466,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: &&
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: ==
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -490,17 +490,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: &
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -512,17 +512,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -534,17 +534,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: ^
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -556,17 +556,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: |
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: ^
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -580,17 +580,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -602,17 +602,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: ^
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -624,17 +624,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: &
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -646,17 +646,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ^
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: &
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -670,17 +670,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: ^
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -692,10 +692,10 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     keyword: new
     constructorName: ConstructorName
       type: NamedType
@@ -703,26 +703,26 @@
     argumentList: ArgumentList
       leftParenthesis: (
       rightParenthesis: )
-  cascadeSections
+  cascadeSections2
     AssignmentExpression
-      leftHandSide: IndexExpression
+      leftHandSide2: IndexExpression
         period: ..
         leftBracket: [
-        index: IntegerLiteral
+        index2: IntegerLiteral
           literal: 3
         rightBracket: ]
       operator: =
-      rightHandSide: IntegerLiteral
+      rightHandSide2: IntegerLiteral
         literal: 4
     AssignmentExpression
-      leftHandSide: IndexExpression
+      leftHandSide2: IndexExpression
         period: ..
         leftBracket: [
-        index: IntegerLiteral
+        index2: IntegerLiteral
           literal: 0
         rightBracket: ]
       operator: =
-      rightHandSide: IntegerLiteral
+      rightHandSide2: IntegerLiteral
         literal: 11
 ''');
   }
@@ -734,20 +734,20 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: BinaryExpression
-    leftOperand: SimpleIdentifier
+  condition2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: a
     operator: ??
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: b
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: y
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -759,20 +759,20 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: BinaryExpression
-    leftOperand: SimpleIdentifier
+  condition2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: a
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: b
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: y
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -784,27 +784,27 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: AsExpression
-    expression: SimpleIdentifier
+  condition2: AsExpression
+    expression2: SimpleIdentifier
       token: x
     asOperator: as
     type: NamedType
       name: bool
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -816,28 +816,28 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: AsExpression
-    expression: SimpleIdentifier
+  condition2: AsExpression
+    expression2: SimpleIdentifier
       token: x
     asOperator: as
     type: NamedType
       name: bool
       question: ?
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -849,13 +849,13 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: ParenthesizedExpression
+  condition2: ParenthesizedExpression
     leftParenthesis: (
-    expression: AsExpression
-      expression: SimpleIdentifier
+    expression2: AsExpression
+      expression2: SimpleIdentifier
         token: x
       asOperator: as
       type: NamedType
@@ -863,17 +863,17 @@
         question: ?
     rightParenthesis: )
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -885,27 +885,27 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: IsExpression
-    expression: SimpleIdentifier
+  condition2: IsExpression
+    expression2: SimpleIdentifier
       token: x
     isOperator: is
     type: NamedType
       name: String
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -917,28 +917,28 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: IsExpression
-    expression: SimpleIdentifier
+  condition2: IsExpression
+    expression2: SimpleIdentifier
       token: x
     isOperator: is
     type: NamedType
       name: String
       question: ?
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -950,13 +950,13 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: ParenthesizedExpression
+  condition2: ParenthesizedExpression
     leftParenthesis: (
-    expression: IsExpression
-      expression: SimpleIdentifier
+    expression2: IsExpression
+      expression2: SimpleIdentifier
         token: x
       isOperator: is
       type: NamedType
@@ -964,17 +964,17 @@
         question: ?
     rightParenthesis: )
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -986,11 +986,11 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: IsExpression
-    expression: SimpleIdentifier
+  condition2: IsExpression
+    expression2: SimpleIdentifier
       token: x
     isOperator: is
     type: NamedType
@@ -1002,17 +1002,17 @@
             name: S
         rightBracket: >
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1024,11 +1024,11 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: IsExpression
-    expression: SimpleIdentifier
+  condition2: IsExpression
+    expression2: SimpleIdentifier
       token: x
     isOperator: is
     type: GenericFunctionType
@@ -1045,17 +1045,17 @@
         leftParenthesis: (
         rightParenthesis: )
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1067,11 +1067,11 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: IsExpression
-    expression: SimpleIdentifier
+  condition2: IsExpression
+    expression2: SimpleIdentifier
       token: x
     isOperator: is
     type: NamedType
@@ -1085,17 +1085,17 @@
             name: T
         rightBracket: >
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1107,11 +1107,11 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: IsExpression
-    expression: SimpleIdentifier
+  condition2: IsExpression
+    expression2: SimpleIdentifier
       token: x
     isOperator: is
     type: NamedType
@@ -1120,17 +1120,17 @@
         period: .
       name: A
   question: ?
-  thenExpression: ParenthesizedExpression
+  thenExpression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: y
     rightParenthesis: )
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1142,20 +1142,20 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
   question: ?
-  thenExpression: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  thenExpression2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: c
     operator: =
-    rightHandSide: BooleanLiteral
+    rightHandSide2: BooleanLiteral
       literal: true
   colon: :
-  elseExpression: MethodInvocation
+  elseExpression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
     argumentList: ArgumentList
@@ -1171,24 +1171,24 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: PrefixedIdentifier
+  condition2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: b
     period: .
     identifier: SimpleIdentifier
       token: x
   question: ?
-  thenExpression: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  thenExpression2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: c
     operator: =
-    rightHandSide: BooleanLiteral
+    rightHandSide2: BooleanLiteral
       literal: true
   colon: :
-  elseExpression: MethodInvocation
+  elseExpression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
     argumentList: ArgumentList
@@ -1204,20 +1204,20 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: PrefixedIdentifier
+  condition2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
     period: .
     identifier: SimpleIdentifier
       token: b
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: y
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1229,24 +1229,24 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: PrefixedIdentifier
+  condition2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
     period: .
     identifier: SimpleIdentifier
       token: b
   question: ?
-  thenExpression: PrefixedIdentifier
+  thenExpression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: x
     period: .
     identifier: SimpleIdentifier
       token: y
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1266,20 +1266,20 @@
   fieldName: SimpleIdentifier
     token: a
   equals: =
-  expression: ParenthesizedExpression
+  expression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ConditionalExpression
-      condition: BinaryExpression
-        leftOperand: SimpleIdentifier
+    expression2: ConditionalExpression
+      condition2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: b
         operator: ==
-        rightOperand: NullLiteral
+        rightOperand2: NullLiteral
           literal: null
       question: ?
-      thenExpression: SimpleIdentifier
+      thenExpression2: SimpleIdentifier
         token: c
       colon: :
-      elseExpression: SimpleIdentifier
+      elseExpression2: SimpleIdentifier
         token: d
     rightParenthesis: )
 ''');
@@ -1300,15 +1300,15 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: BinaryExpression
-        leftOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+      expression2: BinaryExpression
+        leftOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: x
           operator: ==
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: y
         operator: !=
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: z
       semicolon: ;
   rightBracket: }
@@ -1322,17 +1322,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: IsExpression
-    expression: SimpleIdentifier
+  leftOperand2: IsExpression
+    expression2: SimpleIdentifier
       token: x
     isOperator: is
     type: NamedType
       name: y
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1344,14 +1344,14 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ==
-  rightOperand: IsExpression
-    expression: SimpleIdentifier
+  rightOperand2: IsExpression
+    expression2: SimpleIdentifier
       token: y
     isOperator: is
     type: NamedType
@@ -1376,15 +1376,15 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: BinaryExpression
-        leftOperand: BinaryExpression
-          leftOperand: SuperExpression
+      expression2: BinaryExpression
+        leftOperand2: BinaryExpression
+          leftOperand2: SuperExpression
             superKeyword: super
           operator: ==
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: y
         operator: !=
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: z
       semicolon: ;
   rightBracket: }
@@ -1398,17 +1398,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: ??
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1420,17 +1420,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: ||
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1442,17 +1442,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ??
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: ||
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -1464,17 +1464,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: &&
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1486,17 +1486,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: <
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1508,17 +1508,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: <
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -1531,21 +1531,21 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: C
     operator: <
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: T
   operator: &&
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: T
     operator: >
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: U
 ''');
   }
@@ -1557,17 +1557,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: ||
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1579,17 +1579,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: &&
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1601,17 +1601,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ||
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: &&
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -1624,25 +1624,25 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 MethodInvocation
   methodName: SimpleIdentifier
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 3
     rightParenthesis: )
 ''');
@@ -1656,25 +1656,25 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 MethodInvocation
   methodName: SimpleIdentifier
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >>
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 3
     rightParenthesis: )
 ''');
@@ -1688,29 +1688,29 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 MethodInvocation
   methodName: SimpleIdentifier
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: <
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: d
           operator: >>
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 3
     rightParenthesis: )
 ''');
@@ -1738,7 +1738,7 @@
       colon: :
   statement: ReturnStatement
     returnKeyword: return
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
     semicolon: ;
 ''');
@@ -1751,17 +1751,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: *
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: /
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1773,15 +1773,15 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: PrefixExpression
+  leftOperand2: PrefixExpression
     operator: -
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: x
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -1793,15 +1793,15 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: *
-  rightOperand: PrefixExpression
+  rightOperand2: PrefixExpression
     operator: -
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: y
 ''');
   }
@@ -1815,17 +1815,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: *
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: /
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1837,14 +1837,14 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: BinaryExpression
-    leftOperand: SimpleIdentifier
+  expression2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: <<
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   isOperator: is
   type: NamedType
@@ -1859,17 +1859,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: >>
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 4
   operator: <<
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 3
 ''');
   }
@@ -1881,17 +1881,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: y
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1903,17 +1903,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: <<
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: y
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: z
 ''');
   }
@@ -1927,17 +1927,17 @@
 }
 ''');
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: >>
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 4
   operator: <<
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 3
 ''');
   }
diff --git a/pkg/analyzer/test/generated/error_parser_test.dart b/pkg/analyzer/test/generated/error_parser_test.dart
index ea7798b..d76d428 100644
--- a/pkg/analyzer/test/generated/error_parser_test.dart
+++ b/pkg/analyzer/test/generated/error_parser_test.dart
@@ -695,7 +695,7 @@
         name: x
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: }
   rightParenthesis: )
@@ -735,7 +735,7 @@
         name: x
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: }
   rightParenthesis: )
@@ -775,7 +775,7 @@
         name: x
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: ]
   rightParenthesis: )
@@ -1060,19 +1060,19 @@
           VariableDeclaration
             name: s
             equals: =
-            initializer: StringInterpolation
+            initializer2: StringInterpolation
               elements
                 InterpolationString
                   contents: '
                 InterpolationExpression
                   leftBracket: $
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                 InterpolationString
                   contents: <empty> <synthetic>
                 InterpolationExpression
                   leftBracket: $
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                 InterpolationString
                   contents: '
@@ -1644,11 +1644,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: get
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 semicolon: ; <synthetic>
               Block
@@ -1656,7 +1656,7 @@
                 statements
                   ReturnStatement
                     returnKeyword: return
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: _x
                     semicolon: ;
                 rightBracket: }
@@ -1716,7 +1716,7 @@
   name: m
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
     semicolon: ;
 ''');
@@ -2400,7 +2400,7 @@
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: SuperExpression
+      expression2: SuperExpression
         superKeyword: super
       semicolon: ;
 ''');
@@ -2426,7 +2426,7 @@
         leftBracket: {
         statements
           ExpressionStatement
-            expression: SuperExpression
+            expression2: SuperExpression
               superKeyword: super
             semicolon: ;
         rightBracket: }
@@ -2585,7 +2585,7 @@
         statements
           ReturnStatement
             returnKeyword: return
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: x
             semicolon: ;
         rightBracket: }
@@ -2611,7 +2611,7 @@
       rightParenthesis: ) <synthetic>
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       semicolon: ;
 ''');
@@ -2780,7 +2780,7 @@
         name: <empty> <synthetic>
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: }
   rightParenthesis: )
@@ -2821,7 +2821,7 @@
         name: <empty> <synthetic>
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: }
   rightParenthesis: )
@@ -3074,7 +3074,7 @@
     assertParsedNodeText(node, r'''
 ParenthesizedExpression
   leftParenthesis: (
-  expression: FunctionExpression
+  expression2: FunctionExpression
     parameters: FormalParameterList
       leftParenthesis: (
       rightParenthesis: )
@@ -3104,7 +3104,7 @@
       name: b
       defaultClause: FormalParameterDefaultClause
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 0
   rightParenthesis: )
 FormalParameterList(v1)
@@ -3272,7 +3272,7 @@
       name: b
       defaultClause: FormalParameterDefaultClause
         separator: =
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 0
   rightParenthesis: )
 FormalParameterList(v1)
@@ -3538,7 +3538,7 @@
   functionExpression: FunctionExpression
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 7
       semicolon: ;
 ''');
@@ -3812,10 +3812,10 @@
     var binaryExpression = result.findNode.singleBinaryExpression;
     assertParsedNodeText(binaryExpression, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: x
 ''');
   }
diff --git a/pkg/analyzer/test/generated/expression_parser_test.dart b/pkg/analyzer/test/generated/expression_parser_test.dart
index 23bee55..016b635 100644
--- a/pkg/analyzer/test/generated/expression_parser_test.dart
+++ b/pkg/analyzer/test/generated/expression_parser_test.dart
@@ -49,7 +49,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: FunctionExpression
+            initializer2: FunctionExpression
               typeParameters: TypeParameterList
                 leftBracket: <
                 typeParameters
@@ -90,11 +90,11 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: AssignmentExpression
-              leftHandSide: SimpleIdentifier
+            initializer2: AssignmentExpression
+              leftHandSide2: SimpleIdentifier
                 token: n
               operator: =
-              rightHandSide: ListLiteral
+              rightHandSide2: ListLiteral
                 typeArguments: TypeArgumentList
                   leftBracket: <
                   arguments
@@ -105,14 +105,14 @@
                       name: <empty> <synthetic>
                   rightBracket: > <synthetic>
                 leftBracket: [
-                elements
+                elements2
                   StringInterpolation
                     elements
                       InterpolationString
                         contents: "
                       InterpolationExpression
                         leftBracket: $
-                        expression: SimpleIdentifier
+                        expression2: SimpleIdentifier
                           token: assert
                       InterpolationString
                         contents: ;" <synthetic>
@@ -141,9 +141,9 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               leftBracket: [
-              elements
+              elements2
                 SetOrMapLiteral
                   typeArguments: TypeArgumentList
                     leftBracket: <
@@ -181,7 +181,7 @@
 // [diag.unterminatedStringLiteral] Unterminated string literal.
 // [diag.expectedToken][column 14][length 1] Expected to find ']'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   typeArguments: TypeArgumentList
@@ -194,7 +194,7 @@
         name: <empty> <synthetic>
     rightBracket: > <synthetic>
   leftBracket: [
-  elements
+  elements2
     SimpleStringLiteral
       literal: ";" <synthetic>
   rightBracket: ] <synthetic>
@@ -209,7 +209,7 @@
 //        ^^
 // [diag.expectedTypeName] Expected a type name.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   typeArguments: TypeArgumentList
@@ -230,16 +230,16 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = {3: 6};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 3
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 6
   rightBracket: }
   isMap: false
@@ -250,17 +250,17 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const {3: 6};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   constKeyword: const
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 3
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 6
   rightBracket: }
   isMap: false
@@ -274,7 +274,7 @@
 //         ^^^
 // [diag.expectedToken] Expected to find '>'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -300,7 +300,7 @@
 //         ^^^
 // [diag.expectedToken] Expected to find '>'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -326,23 +326,23 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = m(a: 1, b: 2);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
   methodName: SimpleIdentifier
     token: m
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: a
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 1
       NamedArgument
         name: b
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 2
     rightParenthesis: )
 ''');
@@ -358,7 +358,7 @@
 //                  ^
 // [diag.unexpectedToken] Unexpected text ';'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $
@@ -375,7 +375,7 @@
 //                  ^
 // [diag.unexpectedToken] Unexpected text ';'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $
@@ -386,13 +386,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x + y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -401,13 +401,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super + y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -416,18 +416,18 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (x)(y).z;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: FunctionExpressionInvocation
-    function: ParenthesizedExpression
+  target2: FunctionExpressionInvocation
+    function2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       rightParenthesis: )
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: y
       rightParenthesis: )
@@ -441,13 +441,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (x)<F>(y).z;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: FunctionExpressionInvocation
-    function: ParenthesizedExpression
+  target2: FunctionExpressionInvocation
+    function2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       rightParenthesis: )
     typeArguments: TypeArgumentList
@@ -458,7 +458,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: y
       rightParenthesis: )
@@ -472,12 +472,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (x).y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
     rightParenthesis: )
   operator: .
@@ -490,16 +490,16 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (x)[y];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IndexExpression
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
     rightParenthesis: )
   leftBracket: [
-  index: SimpleIdentifier
+  index2: SimpleIdentifier
     token: y
   rightBracket: ]
 ''');
@@ -509,12 +509,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (x)?.y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
     rightParenthesis: )
   operator: ?.
@@ -527,7 +527,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: x
@@ -538,15 +538,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x(y).z;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: MethodInvocation
+  target2: MethodInvocation
     methodName: SimpleIdentifier
       token: x
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: y
       rightParenthesis: )
@@ -560,10 +560,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x<E>(y).z;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: MethodInvocation
+  target2: MethodInvocation
     methodName: SimpleIdentifier
       token: x
     typeArguments: TypeArgumentList
@@ -574,7 +574,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: y
       rightParenthesis: )
@@ -588,7 +588,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x.y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixedIdentifier
   prefix: SimpleIdentifier
@@ -603,13 +603,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x[y];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
   leftBracket: [
-  index: SimpleIdentifier
+  index2: SimpleIdentifier
     token: y
   rightBracket: ]
 ''');
@@ -619,10 +619,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x?.y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
   operator: ?.
   propertyName: SimpleIdentifier
@@ -634,10 +634,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super.y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
   operator: .
   propertyName: SimpleIdentifier
@@ -649,13 +649,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super[y];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IndexExpression
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
   leftBracket: [
-  index: SimpleIdentifier
+  index2: SimpleIdentifier
     token: y
   rightBracket: ]
 ''');
@@ -665,7 +665,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x.x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixedIdentifier
   prefix: SimpleIdentifier
@@ -680,13 +680,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x[x];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
   leftBracket: [
-  index: SimpleIdentifier
+  index2: SimpleIdentifier
     token: x
   rightBracket: ]
 ''');
@@ -696,7 +696,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: x
@@ -707,10 +707,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x?.x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
   operator: ?.
   propertyName: SimpleIdentifier
@@ -728,7 +728,7 @@
     assertParsedNodeText(node, r'''
 AwaitExpression
   awaitKeyword: await
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
 ''');
   }
@@ -737,13 +737,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x & y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -752,13 +752,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super & y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -767,13 +767,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x | y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -782,13 +782,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super | y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -797,13 +797,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x ^ y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -812,13 +812,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super ^ y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -827,16 +827,16 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..[i];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     IndexExpression
       period: ..
       leftBracket: [
-      index: SimpleIdentifier
+      index2: SimpleIdentifier
         token: i
       rightBracket: ]
 ''');
@@ -846,22 +846,22 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..[i](b);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     FunctionExpressionInvocation
-      function: IndexExpression
+      function2: IndexExpression
         period: ..
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: i
         rightBracket: ]
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: b
         rightParenthesis: )
@@ -872,17 +872,17 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..[i]<E>(b);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     FunctionExpressionInvocation
-      function: IndexExpression
+      function2: IndexExpression
         period: ..
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: i
         rightBracket: ]
       typeArguments: TypeArgumentList
@@ -893,7 +893,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: b
         rightParenthesis: )
@@ -904,20 +904,20 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a(b).c(d);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     MethodInvocation
-      target: MethodInvocation
+      target2: MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
           token: a
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
@@ -926,7 +926,7 @@
         token: c
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: d
         rightParenthesis: )
@@ -937,14 +937,14 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a<E>(b).c<F>(d);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     MethodInvocation
-      target: MethodInvocation
+      target2: MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
           token: a
@@ -956,7 +956,7 @@
           rightBracket: >
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
@@ -971,7 +971,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: d
         rightParenthesis: )
@@ -982,12 +982,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     PropertyAccess
       operator: ..
       propertyName: SimpleIdentifier
@@ -999,19 +999,19 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a = 3;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     AssignmentExpression
-      leftHandSide: PropertyAccess
+      leftHandSide2: PropertyAccess
         operator: ..
         propertyName: SimpleIdentifier
           token: a
       operator: =
-      rightHandSide: IntegerLiteral
+      rightHandSide2: IntegerLiteral
         literal: 3
 ''');
   }
@@ -1022,19 +1022,19 @@
   ..a = 3
   ..m();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     AssignmentExpression
-      leftHandSide: PropertyAccess
+      leftHandSide2: PropertyAccess
         operator: ..
         propertyName: SimpleIdentifier
           token: a
       operator: =
-      rightHandSide: IntegerLiteral
+      rightHandSide2: IntegerLiteral
         literal: 3
     MethodInvocation
       operator: ..
@@ -1052,19 +1052,19 @@
   ..a = 3
   ..m<E>();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     AssignmentExpression
-      leftHandSide: PropertyAccess
+      leftHandSide2: PropertyAccess
         operator: ..
         propertyName: SimpleIdentifier
           token: a
       operator: =
-      rightHandSide: IntegerLiteral
+      rightHandSide2: IntegerLiteral
         literal: 3
     MethodInvocation
       operator: ..
@@ -1086,12 +1086,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..as;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     PropertyAccess
       operator: ..
       propertyName: SimpleIdentifier
@@ -1103,19 +1103,19 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a(b);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     MethodInvocation
       operator: ..
       methodName: SimpleIdentifier
         token: a
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: b
         rightParenthesis: )
@@ -1126,12 +1126,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a<E>(b);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     MethodInvocation
       operator: ..
       methodName: SimpleIdentifier
@@ -1144,7 +1144,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: b
         rightParenthesis: )
@@ -1155,26 +1155,26 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a(b)(c);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     FunctionExpressionInvocation
-      function: MethodInvocation
+      function2: MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
           token: a
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: c
         rightParenthesis: )
@@ -1185,14 +1185,14 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a<E>(b)<F>(c);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     FunctionExpressionInvocation
-      function: MethodInvocation
+      function2: MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
           token: a
@@ -1204,7 +1204,7 @@
           rightBracket: >
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
@@ -1216,7 +1216,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: c
         rightParenthesis: )
@@ -1227,28 +1227,28 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a(b)(c).d(e)(f);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     FunctionExpressionInvocation
-      function: MethodInvocation
-        target: FunctionExpressionInvocation
-          function: MethodInvocation
+      function2: MethodInvocation
+        target2: FunctionExpressionInvocation
+          function2: MethodInvocation
             operator: ..
             methodName: SimpleIdentifier
               token: a
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 SimpleIdentifier
                   token: b
               rightParenthesis: )
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: c
             rightParenthesis: )
@@ -1257,13 +1257,13 @@
           token: d
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: e
           rightParenthesis: )
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: f
         rightParenthesis: )
@@ -1274,16 +1274,16 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a<E>(b)<F>(c).d<G>(e)<H>(f);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     FunctionExpressionInvocation
-      function: MethodInvocation
-        target: FunctionExpressionInvocation
-          function: MethodInvocation
+      function2: MethodInvocation
+        target2: FunctionExpressionInvocation
+          function2: MethodInvocation
             operator: ..
             methodName: SimpleIdentifier
               token: a
@@ -1295,7 +1295,7 @@
               rightBracket: >
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 SimpleIdentifier
                   token: b
               rightParenthesis: )
@@ -1307,7 +1307,7 @@
             rightBracket: >
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: c
             rightParenthesis: )
@@ -1322,7 +1322,7 @@
           rightBracket: >
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: e
           rightParenthesis: )
@@ -1334,7 +1334,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: f
         rightParenthesis: )
@@ -1345,20 +1345,20 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a(b).c;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     PropertyAccess
-      target: MethodInvocation
+      target2: MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
           token: a
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
@@ -1372,14 +1372,14 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null..a<E>(b).c;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
-  cascadeSections
+  cascadeSections2
     PropertyAccess
-      target: MethodInvocation
+      target2: MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
           token: a
@@ -1391,7 +1391,7 @@
           rightBracket: >
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: b
           rightParenthesis: )
@@ -1405,16 +1405,16 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x ? y : z;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: x
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: y
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -1423,7 +1423,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const A();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: const
@@ -1440,7 +1440,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const <A>[];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   constKeyword: const
@@ -1459,7 +1459,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const [];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   constKeyword: const
@@ -1472,7 +1472,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const <A, B>{};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   constKeyword: const
@@ -1496,7 +1496,7 @@
 //                ^
 // [diag.expectedToken] Expected to find '>'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   constKeyword: const
@@ -1518,7 +1518,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const {};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   constKeyword: const
@@ -1564,13 +1564,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x == y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -1579,13 +1579,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super == y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -1594,13 +1594,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x = y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
 ''');
   }
@@ -1613,17 +1613,17 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftHandSide2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
     operator: ||
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
 ''');
   }
@@ -1632,19 +1632,19 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = --a.b == c;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: PrefixExpression
+  leftOperand2: PrefixExpression
     operator: --
-    operand: PrefixedIdentifier
+    operand2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
       period: .
       identifier: SimpleIdentifier
         token: b
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: c
 ''');
   }
@@ -1655,7 +1655,7 @@
 //               ^
 // [diag.expectedToken] Expected to find '['.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   constKeyword: const
@@ -1674,7 +1674,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = () async {};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -1692,7 +1692,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = () async* {};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -1711,7 +1711,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = () {};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -1728,7 +1728,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = () sync* {};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -1749,10 +1749,10 @@
   return a + a;
 }(3);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: FunctionExpression
+  function2: FunctionExpression
     parameters: FormalParameterList
       leftParenthesis: (
       requiredPositionalFormalParameters
@@ -1770,17 +1770,17 @@
         statements
           ReturnStatement
             returnKeyword: return
-            expression: BinaryExpression
-              leftOperand: SimpleIdentifier
+            expression2: BinaryExpression
+              leftOperand2: SimpleIdentifier
                 token: a
               operator: +
-              rightOperand: SimpleIdentifier
+              rightOperand2: SimpleIdentifier
                 token: a
             semicolon: ;
         rightBracket: }
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 3
     rightParenthesis: )
@@ -1791,7 +1791,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = await();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
   methodName: SimpleIdentifier
@@ -1823,12 +1823,12 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: FunctionExpressionInvocation
-                  function: IndexExpression
-                    target: SimpleIdentifier
+                expression2: FunctionExpressionInvocation
+                  function2: IndexExpression
+                    target2: SimpleIdentifier
                       token: factories
                     leftBracket: [
-                    index: SimpleIdentifier
+                    index2: SimpleIdentifier
                       token: C
                     rightBracket: ]
                   typeArguments: TypeArgumentList
@@ -1868,13 +1868,13 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: FunctionExpressionInvocation
-                  function: MethodInvocation
+                expression2: FunctionExpressionInvocation
+                  function2: MethodInvocation
                     methodName: SimpleIdentifier
                       token: factories
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         SimpleIdentifier
                           token: C
                       rightParenthesis: )
@@ -1898,10 +1898,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super.m();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
   operator: .
   methodName: SimpleIdentifier
@@ -1916,10 +1916,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super.m<E>();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
   operator: .
   methodName: SimpleIdentifier
@@ -1940,11 +1940,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super.b.c<D>();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: PropertyAccess
-    target: SuperExpression
+  target2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
     operator: .
     propertyName: SimpleIdentifier
@@ -1968,11 +1968,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [1, 2, 3];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IntegerLiteral
@@ -1987,11 +1987,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [1];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
   rightBracket: ]
@@ -2002,13 +2002,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x = y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2017,19 +2017,19 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = --a.b == c;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: PrefixExpression
+  leftOperand2: PrefixExpression
     operator: --
-    operand: PrefixedIdentifier
+    operand2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
       period: .
       identifier: SimpleIdentifier
         token: b
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: c
 ''');
   }
@@ -2038,10 +2038,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super.m();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
   operator: .
   methodName: SimpleIdentifier
@@ -2057,10 +2057,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super.m<E>();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
   operator: .
   methodName: SimpleIdentifier
@@ -2081,7 +2081,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (int i) => i++;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -2101,8 +2101,8 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: PostfixExpression
-      operand: SimpleIdentifier
+    expression2: PostfixExpression
+      operand2: SimpleIdentifier
         token: i
       operator: ++
 ''');
@@ -2114,7 +2114,7 @@
 //      ^^^^^
 // [diag.unexpectedToken] Unexpected text 'const'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   typeParameters: TypeParameterList
@@ -2140,8 +2140,8 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: PostfixExpression
-      operand: SimpleIdentifier
+    expression2: PostfixExpression
+      operand2: SimpleIdentifier
         token: i
       operator: ++
 ''');
@@ -2153,7 +2153,7 @@
 //       ^^^^
 // [diag.expectedToken] Expected to find '>'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   typeArguments: TypeArgumentList
@@ -2163,7 +2163,7 @@
         name: test
     rightBracket: >
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 0
     IntegerLiteral
@@ -2178,7 +2178,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = <E>(E i) => i++;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   typeParameters: TypeParameterList
@@ -2204,8 +2204,8 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: PostfixExpression
-      operand: SimpleIdentifier
+    expression2: PostfixExpression
+      operand2: SimpleIdentifier
         token: i
       operator: ++
 ''');
@@ -2217,7 +2217,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2236,7 +2236,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2256,7 +2256,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2275,7 +2275,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2294,7 +2294,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2313,7 +2313,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2332,7 +2332,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2351,7 +2351,7 @@
 //              ^
 // [diag.constructorWithTypeArguments] A constructor invocation can't have type arguments after the constructor name.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2382,7 +2382,7 @@
 //          ^^^^^^
 // [diag.expectedToken] Expected to find '('.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2399,7 +2399,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
@@ -2411,7 +2411,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = /* 0 */ [];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
@@ -2423,7 +2423,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
@@ -2435,11 +2435,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [1, 2, 3];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IntegerLiteral
@@ -2454,11 +2454,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [1];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
   rightBracket: ]
@@ -2469,7 +2469,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = <int>[1];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   typeArguments: TypeArgumentList
@@ -2479,7 +2479,7 @@
         name: int
     rightBracket: >
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
   rightBracket: ]
@@ -2490,17 +2490,17 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [1][1];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IndexExpression
-  target: ListLiteral
+  target2: ListLiteral
     leftBracket: [
-    elements
+    elements2
       IntegerLiteral
         literal: 1
     rightBracket: ]
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 1
   rightBracket: ]
 ''');
@@ -2512,11 +2512,11 @@
 //                    ^
 // [diag.equalityCannotBeEqualityOperand] A comparison expression can't be an operand of another comparison expression.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: ListLiteral
+  leftOperand2: BinaryExpression
+    leftOperand2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -2524,17 +2524,17 @@
             name: int
         rightBracket: >
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: ]
     operator: <
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: int
   operator: >
-  rightOperand: ListLiteral
+  rightOperand2: ListLiteral
     leftBracket: [
-    elements
+    elements2
       IntegerLiteral
         literal: 1
     rightBracket: ]
@@ -2551,16 +2551,16 @@
 //                         ^
 // [diag.unexpectedToken] Unexpected text ';'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: '1'
       separator: :
-      value: IntegerLiteral
+      value2: IntegerLiteral
         literal: 1
   rightBracket: }
   isMap: false
@@ -2590,8 +2590,8 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: BinaryExpression
-              leftOperand: SetOrMapLiteral
+            initializer2: BinaryExpression
+              leftOperand2: SetOrMapLiteral
                 typeArguments: TypeArgumentList
                   leftBracket: <
                   arguments
@@ -2601,17 +2601,17 @@
                       name: int
                   rightBracket: >
                 leftBracket: {
-                elements
+                elements2
                   MapLiteralEntry
-                    key: SimpleStringLiteral
+                    key2: SimpleStringLiteral
                       literal: '1'
                     separator: :
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 1
                 rightBracket: }
                 isMap: false
               operator: <
-              rightOperand: SimpleIdentifier
+              rightOperand2: SimpleIdentifier
                 token: String
           VariableDeclaration
             name: int
@@ -2623,13 +2623,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x && y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2638,13 +2638,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x || y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2653,7 +2653,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = <String, int>{};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -2674,22 +2674,22 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = {'a': b, 'x': y};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
-      value: SimpleIdentifier
+      value2: SimpleIdentifier
         token: b
     MapLiteralEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'x'
       separator: :
-      value: SimpleIdentifier
+      value2: SimpleIdentifier
         token: y
   rightBracket: }
   isMap: false
@@ -2700,22 +2700,22 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = {'a': b, 'x': y};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
-      value: SimpleIdentifier
+      value2: SimpleIdentifier
         token: b
     MapLiteralEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'x'
       separator: :
-      value: SimpleIdentifier
+      value2: SimpleIdentifier
         token: y
   rightBracket: }
   isMap: false
@@ -2726,16 +2726,16 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = {'x': y};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'x'
       separator: :
-      value: SimpleIdentifier
+      value2: SimpleIdentifier
         token: y
   rightBracket: }
   isMap: false
@@ -2747,20 +2747,20 @@
 var v = {2 + 2: y};
 ''');
     var node =
-        (parseResult.findNode.singleVariableDeclaration.initializer
+        (parseResult.findNode.singleVariableDeclaration.initializer2
                 as SetOrMapLiteral)
-            .elements
+            .elements2
             .single;
     assertParsedNodeText(node, r'''
 MapLiteralEntry
-  key: BinaryExpression
-    leftOperand: IntegerLiteral
+  key2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 2
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
   separator: :
-  value: SimpleIdentifier
+  value2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2770,16 +2770,16 @@
 var v = {0: y};
 ''');
     var node =
-        (parseResult.findNode.singleVariableDeclaration.initializer
+        (parseResult.findNode.singleVariableDeclaration.initializer2
                 as SetOrMapLiteral)
-            .elements
+            .elements2
             .single;
     assertParsedNodeText(node, r'''
 MapLiteralEntry
-  key: IntegerLiteral
+  key2: IntegerLiteral
     literal: 0
   separator: :
-  value: SimpleIdentifier
+  value2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2805,9 +2805,9 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SetOrMapLiteral
+            initializer2: SetOrMapLiteral
               leftBracket: {
-              elements
+              elements2
                 SimpleIdentifier
                   token: x
                 SimpleStringLiteral
@@ -2822,13 +2822,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x * y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2837,13 +2837,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super * y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2852,7 +2852,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = new A();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -2869,10 +2869,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = i--;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: i
   operator: --
 ''');
@@ -2882,10 +2882,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = i++;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: i
   operator: ++
 ''');
@@ -2895,13 +2895,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a[0];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
   rightBracket: ]
 ''');
@@ -2911,10 +2911,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a.m();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
   operator: .
   methodName: SimpleIdentifier
@@ -2929,10 +2929,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a?.m();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
   operator: ?.
   methodName: SimpleIdentifier
@@ -2948,10 +2948,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a?.m<E>();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
   operator: ?.
   methodName: SimpleIdentifier
@@ -2972,10 +2972,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a.m<E>();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
   operator: .
   methodName: SimpleIdentifier
@@ -2996,7 +2996,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a.b;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixedIdentifier
   prefix: SimpleIdentifier
@@ -3011,7 +3011,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = $lexeme;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $lexeme
@@ -3022,7 +3022,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = $lexeme;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $lexeme
@@ -3033,7 +3033,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const A();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: const
@@ -3050,7 +3050,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = $doubleLiteral;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $doubleLiteral
@@ -3061,7 +3061,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = false;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BooleanLiteral
   literal: false
@@ -3072,7 +3072,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (int i) => i + 1;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -3092,11 +3092,11 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: i
       operator: +
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 1
 ''');
   }
@@ -3105,7 +3105,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = () => 42;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -3113,7 +3113,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 42
 ''');
   }
@@ -3122,7 +3122,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = <X, Y>(Map<X, Y> m, X x) => m[x];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   typeParameters: TypeParameterList
@@ -3174,11 +3174,11 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IndexExpression
-      target: SimpleIdentifier
+    expression2: IndexExpression
+      target2: SimpleIdentifier
         token: m
       leftBracket: [
-      index: SimpleIdentifier
+      index2: SimpleIdentifier
         token: x
       rightBracket: ]
 ''');
@@ -3188,7 +3188,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = $hexLiteral;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $hexLiteral
@@ -3199,7 +3199,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: a
@@ -3210,7 +3210,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = $intLiteral;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $intLiteral
@@ -3221,7 +3221,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
@@ -3233,7 +3233,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = [];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
@@ -3245,7 +3245,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = <A>[];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ListLiteral
   typeArguments: TypeArgumentList
@@ -3263,7 +3263,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = {};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
@@ -3276,7 +3276,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = <A, B>{};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -3297,7 +3297,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = new A();
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 InstanceCreationExpression
   keyword: new
@@ -3314,7 +3314,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = null;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 NullLiteral
   literal: null
@@ -3325,11 +3325,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = (x);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ParenthesizedExpression
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
 ''');
@@ -3339,7 +3339,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = string;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: string
@@ -3350,7 +3350,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = string;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: string
@@ -3361,7 +3361,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = r'string';
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleStringLiteral
   literal: r'string'
@@ -3372,10 +3372,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super.x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
   operator: .
   propertyName: SimpleIdentifier
@@ -3387,7 +3387,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = this;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ThisExpression
   thisKeyword: this
@@ -3398,7 +3398,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = true;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BooleanLiteral
   literal: true
@@ -3486,10 +3486,10 @@
 //             ^^
 // [diag.unexpectedToken] Unexpected text 'as'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   asOperator: as
   type: NamedType
@@ -3501,10 +3501,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x as Function(int);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   asOperator: as
   type: GenericFunctionType
@@ -3529,10 +3529,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x as String Function(int);
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   asOperator: as
   type: GenericFunctionType
@@ -3559,10 +3559,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x as C<D>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   asOperator: as
   type: NamedType
@@ -3580,10 +3580,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x as Y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   asOperator: as
   type: NamedType
@@ -3595,10 +3595,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x as Function;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   asOperator: as
   type: NamedType
@@ -3610,10 +3610,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x is y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   isOperator: is
   type: NamedType
@@ -3627,10 +3627,10 @@
 //             ^^
 // [diag.unexpectedToken] Unexpected text 'is'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   isOperator: is
   type: NamedType
@@ -3642,10 +3642,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x is! y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   isOperator: is
   notOperator: !
@@ -3658,13 +3658,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x < y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: <
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3673,13 +3673,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super < y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: <
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3690,7 +3690,7 @@
 //      ^^^^^^^
 // [diag.expectedIdentifierButGotKeyword] 'rethrow' can't be used as an identifier because it's a keyword.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: rethrow
@@ -3701,13 +3701,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x << y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3716,13 +3716,13 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = super << y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3735,7 +3735,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = $lexeme;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $lexeme
@@ -3746,7 +3746,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = $lexeme;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $lexeme
@@ -3774,7 +3774,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: a
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -3790,7 +3790,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x$y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: x$y
@@ -3822,7 +3822,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: a
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -3836,7 +3836,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: b
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -3881,7 +3881,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               typeArguments: TypeArgumentList
                 leftBracket: <
                 arguments
@@ -3929,7 +3929,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -3947,7 +3947,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = x$y;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: x$y
@@ -3976,7 +3976,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -3993,7 +3993,7 @@
 var v = r'''\\
 a''';
 """);
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r"""
 SimpleStringLiteral
   literal: r'''\\
@@ -4021,7 +4021,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -4038,7 +4038,7 @@
 var v = r'''\
 a''';
 """);
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r"""
 SimpleStringLiteral
   literal: r'''\
@@ -4068,7 +4068,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -4085,7 +4085,7 @@
 var v = r'''\ \
 a''';
 """);
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r"""
 SimpleStringLiteral
   literal: r'''\ \
@@ -4112,7 +4112,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -4131,7 +4131,7 @@
 var v = r'''\t
 a''';
 """);
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r"""
 SimpleStringLiteral
   literal: r'''\t
@@ -4149,7 +4149,7 @@
 //          ^
 // [diag.unterminatedStringLiteral] Unterminated string literal.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $x
@@ -4177,7 +4177,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: $
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -4193,7 +4193,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: a
@@ -4205,7 +4205,7 @@
 var v = r'''  
 a''';
 """);
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r"""
 SimpleStringLiteral
   literal: r'''  
@@ -4232,7 +4232,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: a
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -4254,7 +4254,7 @@
 //         ^
 // [diag.unterminatedStringLiteral] Unterminated string literal.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: $x
@@ -4265,7 +4265,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = a;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SimpleIdentifier
   token: a
@@ -4293,7 +4293,7 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: $
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -4384,7 +4384,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = #dynamic.static.abstract;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SymbolLiteral
   poundSign: #
@@ -4399,7 +4399,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = #a.b.c;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SymbolLiteral
   poundSign: #
@@ -4414,7 +4414,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = #==;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SymbolLiteral
   poundSign: #
@@ -4427,7 +4427,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = #a;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SymbolLiteral
   poundSign: #
@@ -4440,7 +4440,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = #void;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SymbolLiteral
   poundSign: #
@@ -4453,11 +4453,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = throw x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ThrowExpression
   throwKeyword: throw
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
 ''');
   }
@@ -4466,11 +4466,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = throw x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ThrowExpression
   throwKeyword: throw
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
 ''');
   }
@@ -4479,15 +4479,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = --a[0];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: --
-  operand: IndexExpression
-    target: SimpleIdentifier
+  operand2: IndexExpression
+    target2: SimpleIdentifier
       token: a
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
     rightBracket: ]
 ''');
@@ -4497,11 +4497,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = --x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: --
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
 ''');
   }
@@ -4511,7 +4511,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = --super;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: --
@@ -4524,12 +4524,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = --super.x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: --
-  operand: PropertyAccess
-    target: SuperExpression
+  operand2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
     operator: .
     propertyName: SimpleIdentifier
@@ -4542,7 +4542,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = /* 0 */ --super;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: --
@@ -4555,15 +4555,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = ++a[0];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: IndexExpression
-    target: SimpleIdentifier
+  operand2: IndexExpression
+    target2: SimpleIdentifier
       token: a
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
     rightBracket: ]
 ''');
@@ -4573,11 +4573,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = ++x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
 ''');
   }
@@ -4586,15 +4586,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = ++super[0];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: IndexExpression
-    target: SuperExpression
+  operand2: IndexExpression
+    target2: SuperExpression
       superKeyword: super
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
     rightBracket: ]
 ''');
@@ -4604,12 +4604,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = ++super.x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PropertyAccess
-    target: SuperExpression
+  operand2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
     operator: .
     propertyName: SimpleIdentifier
@@ -4621,15 +4621,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = -a[0];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: IndexExpression
-    target: SimpleIdentifier
+  operand2: IndexExpression
+    target2: SimpleIdentifier
       token: a
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
     rightBracket: ]
 ''');
@@ -4639,11 +4639,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = -x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
 ''');
   }
@@ -4652,11 +4652,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = -super;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SuperExpression
+  operand2: SuperExpression
     superKeyword: super
 ''');
   }
@@ -4665,11 +4665,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = !x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: !
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
 ''');
   }
@@ -4680,11 +4680,11 @@
 //       ^^^^^
 // [diag.missingAssignableSelector] Missing selector such as '.identifier' or '[0]'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: !
-  operand: SuperExpression
+  operand2: SuperExpression
     superKeyword: super
 ''');
   }
@@ -4693,11 +4693,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = ~x;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: ~
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
 ''');
   }
@@ -4706,11 +4706,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = ~super;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: ~
-  operand: SuperExpression
+  operand2: SuperExpression
     superKeyword: super
 ''');
   }
@@ -4719,15 +4719,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = ~a[0];
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: ~
-  operand: IndexExpression
-    target: SimpleIdentifier
+  operand2: IndexExpression
+    target2: SimpleIdentifier
       token: a
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
     rightBracket: ]
 ''');
@@ -4737,11 +4737,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = {3};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 3
   rightBracket: }
@@ -4753,12 +4753,12 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const {3, 6};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   constKeyword: const
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 3
     IntegerLiteral
@@ -4772,7 +4772,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = const <int>{3};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   constKeyword: const
@@ -4783,7 +4783,7 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 3
   rightBracket: }
@@ -4797,7 +4797,7 @@
   {3},
 };
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -4813,10 +4813,10 @@
           rightBracket: >
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 3
       rightBracket: }
@@ -4830,7 +4830,7 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var v = <int>{3};
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 SetOrMapLiteral
   typeArguments: TypeArgumentList
@@ -4840,7 +4840,7 @@
         name: int
     rightBracket: >
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 3
   rightBracket: }
diff --git a/pkg/analyzer/test/generated/extension_methods_parser_test.dart b/pkg/analyzer/test/generated/extension_methods_parser_test.dart
index 418fb77..f663450 100644
--- a/pkg/analyzer/test/generated/extension_methods_parser_test.dart
+++ b/pkg/analyzer/test/generated/extension_methods_parser_test.dart
@@ -300,7 +300,7 @@
         leftBracket: {
         statements
           ExpressionStatement
-            expression: MethodInvocation
+            expression2: MethodInvocation
               methodName: SimpleIdentifier
                 token: late
               argumentList: ArgumentList
diff --git a/pkg/analyzer/test/generated/formal_parameter_parser_test.dart b/pkg/analyzer/test/generated/formal_parameter_parser_test.dart
index 2061604..4a48c6e 100644
--- a/pkg/analyzer/test/generated/formal_parameter_parser_test.dart
+++ b/pkg/analyzer/test/generated/formal_parameter_parser_test.dart
@@ -43,7 +43,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: ]
   rightParenthesis: )
@@ -164,7 +164,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: }
   rightParenthesis: )
@@ -567,7 +567,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 1
       RegularFormalParameter
         type: NamedType
@@ -579,7 +579,7 @@
         name: c
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 3
     rightDelimiter: }
   rightParenthesis: )
@@ -670,7 +670,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
       RegularFormalParameter
         type: NamedType
@@ -682,7 +682,7 @@
         name: c
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1118,7 +1118,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1162,7 +1162,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1205,7 +1205,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1248,7 +1248,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1287,7 +1287,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1327,7 +1327,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1369,7 +1369,7 @@
             rightParenthesis: )
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1416,7 +1416,7 @@
           question: ?
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1471,7 +1471,7 @@
           question: ?
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1518,7 +1518,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1587,7 +1587,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: :
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: }
   rightParenthesis: )
@@ -1628,7 +1628,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1672,7 +1672,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1715,7 +1715,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1758,7 +1758,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1797,7 +1797,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1837,7 +1837,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1876,7 +1876,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -1945,7 +1945,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: NullLiteral
+          value2: NullLiteral
             literal: null
     rightDelimiter: ]
   rightParenthesis: )
@@ -2156,7 +2156,7 @@
         name: a
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 0
     rightDelimiter: }
   rightParenthesis: )
@@ -3032,7 +3032,7 @@
   name: a
   defaultClause: FormalParameterDefaultClause
     separator: =
-    value: IntegerLiteral
+    value2: IntegerLiteral
       literal: 0
 ''');
   }
@@ -3083,7 +3083,7 @@
   name: a
   defaultClause: FormalParameterDefaultClause
     separator: =
-    value: IntegerLiteral
+    value2: IntegerLiteral
       literal: 0
 ''');
   }
diff --git a/pkg/analyzer/test/generated/function_reference_parser_test.dart b/pkg/analyzer/test/generated/function_reference_parser_test.dart
index bacd391..f96abe9 100644
--- a/pkg/analyzer/test/generated/function_reference_parser_test.dart
+++ b/pkg/analyzer/test/generated/function_reference_parser_test.dart
@@ -30,10 +30,10 @@
       ),
     );
 
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -50,10 +50,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = {f<a, b>};
 ''');
-    var node = parseResult.findNode.singleSetOrMapLiteral.elements[0];
+    var node = parseResult.findNode.singleSetOrMapLiteral.elements2[0];
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -70,10 +70,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = [f<a, b>];
 ''');
-    var node = parseResult.findNode.singleListLiteral.elements[0];
+    var node = parseResult.findNode.singleListLiteral.elements2[0];
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -91,10 +91,10 @@
 var x = g(f<a, b>);
 ''');
     var node =
-        parseResult.findNode.singleMethodInvocation.argumentList.arguments[0];
+        parseResult.findNode.singleMethodInvocation.argumentList.arguments2[0];
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -111,10 +111,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = {f<a, b>: null};
 ''');
-    var node = parseResult.findNode.mapLiteralEntry('null').key;
+    var node = parseResult.findNode.mapLiteralEntry('null').key2;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -131,10 +131,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = [f<a, b>, null];
 ''');
-    var node = parseResult.findNode.singleListLiteral.elements[0];
+    var node = parseResult.findNode.singleListLiteral.elements2[0];
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -151,10 +151,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = f<a, b> == null;
 ''');
-    var node = parseResult.findNode.singleBinaryExpression.leftOperand;
+    var node = parseResult.findNode.singleBinaryExpression.leftOperand2;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -171,10 +171,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = f<a, b> != null;
 ''');
-    var node = parseResult.findNode.singleBinaryExpression.leftOperand;
+    var node = parseResult.findNode.singleBinaryExpression.leftOperand2;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -241,10 +241,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = f<a, b>.foo<c>();
 ''');
-    var node = parseResult.findNode.singleMethodInvocation.target!;
+    var node = parseResult.findNode.singleMethodInvocation.target2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -261,10 +261,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = f<a, b>.hashCode;
 ''');
-    var node = parseResult.findNode.singlePropertyAccess.target!;
+    var node = parseResult.findNode.singlePropertyAccess.target2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -283,10 +283,10 @@
   f<a, b>;
 }
 ''');
-    var node = parseResult.findNode.singleExpressionStatement.expression;
+    var node = parseResult.findNode.singleExpressionStatement.expression2;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
   typeArguments: TypeArgumentList
     leftBracket: <
@@ -312,22 +312,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: &
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -344,18 +344,18 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: as
     rightParenthesis: )
 ''');
@@ -374,22 +374,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: *
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -406,22 +406,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: PrefixExpression
+        rightOperand2: PrefixExpression
           operator: !
-          operand: ListLiteral
+          operand2: ListLiteral
             leftBracket: [
-            elements
+            elements2
               SimpleIdentifier
                 token: d
             rightBracket: ]
@@ -440,22 +440,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: PrefixExpression
+        rightOperand2: PrefixExpression
           operator: !
-          operand: ParenthesizedExpression
+          operand2: ParenthesizedExpression
             leftParenthesis: (
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: d
             rightParenthesis: )
     rightParenthesis: )
@@ -475,22 +475,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: |
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -509,22 +509,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: ^
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -543,19 +543,19 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       IsExpression
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: c
           operator: >
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: <empty> <synthetic>
         isOperator: is
         type: NamedType
@@ -572,17 +572,17 @@
 //             ^
 // [diag.expectedToken] Expected to find '['.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: f
     operator: <
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: a
   operator: >
-  rightOperand: ListLiteral
+  rightOperand2: ListLiteral
     typeArguments: TypeArgumentList
       leftBracket: <
       arguments
@@ -605,20 +605,20 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: PrefixExpression
+        rightOperand2: PrefixExpression
           operator: -
-          operand: SimpleIdentifier
+          operand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -635,20 +635,20 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: ListLiteral
+        rightOperand2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             SimpleIdentifier
               token: d
           rightBracket: ]
@@ -669,26 +669,26 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        leftOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: c
           operator: >
-          rightOperand: ListLiteral
+          rightOperand2: ListLiteral
             leftBracket: [
-            elements
+            elements2
               SimpleIdentifier
                 token: d
             rightBracket: ]
         operator: >
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: e
     rightParenthesis: )
 ''');
@@ -705,20 +705,20 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: ListLiteral
+        rightOperand2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             SimpleIdentifier
               token: d
             SimpleIdentifier
@@ -741,22 +741,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: %
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -775,21 +775,21 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       CascadeExpression
-        target: BinaryExpression
-          leftOperand: SimpleIdentifier
+        target2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: c
           operator: >
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: <empty> <synthetic>
-        cascadeSections
+        cascadeSections2
           MethodInvocation
             operator: ..
             methodName: SimpleIdentifier
@@ -814,22 +814,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: +
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -848,25 +848,25 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       ConditionalExpression
-        condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+        condition2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: c
           operator: >
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: <empty> <synthetic>
         question: ?
-        thenExpression: NullLiteral
+        thenExpression2: NullLiteral
           literal: null
         colon: :
-        elseExpression: NullLiteral
+        elseExpression2: NullLiteral
           literal: null
     rightParenthesis: )
 ''');
@@ -885,19 +885,19 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: MethodInvocation
-          target: SimpleIdentifier
+        rightOperand2: MethodInvocation
+          target2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: ?.
           methodName: SimpleIdentifier
@@ -922,19 +922,19 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: MethodInvocation
-          target: SimpleIdentifier
+        rightOperand2: MethodInvocation
+          target2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: ?.
           methodName: SimpleIdentifier
@@ -967,18 +967,18 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: <empty> <synthetic>
       MethodInvocation
         methodName: SimpleIdentifier
@@ -1003,19 +1003,19 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: PropertyAccess
-          target: SimpleIdentifier
+        rightOperand2: PropertyAccess
+          target2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: ?.
           propertyName: SimpleIdentifier
@@ -1037,22 +1037,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        leftOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: c
           operator: >
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: <empty> <synthetic>
         operator: ??
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: d
     rightParenthesis: )
 ''');
@@ -1071,22 +1071,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: /
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -1105,22 +1105,22 @@
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: a
         operator: <
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
       BinaryExpression
-        leftOperand: SimpleIdentifier
+        leftOperand2: SimpleIdentifier
           token: c
         operator: >
-        rightOperand: BinaryExpression
-          leftOperand: SimpleIdentifier
+        rightOperand2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: <empty> <synthetic>
           operator: ~/
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: d
     rightParenthesis: )
 ''');
@@ -1130,14 +1130,14 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = x[0]<a, b>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: IndexExpression
-    target: SimpleIdentifier
+  function2: IndexExpression
+    target2: SimpleIdentifier
       token: x
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
     rightBracket: ]
   typeArguments: TypeArgumentList
@@ -1155,15 +1155,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = x[0]!<a, b>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: PostfixExpression
-    operand: IndexExpression
-      target: SimpleIdentifier
+  function2: PostfixExpression
+    operand2: IndexExpression
+      target2: SimpleIdentifier
         token: x
       leftBracket: [
-      index: IntegerLiteral
+      index2: IntegerLiteral
         literal: 0
       rightBracket: ]
     operator: !
@@ -1182,15 +1182,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = x[0]()<a, b>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: FunctionExpressionInvocation
-    function: IndexExpression
-      target: SimpleIdentifier
+  function2: FunctionExpressionInvocation
+    function2: IndexExpression
+      target2: SimpleIdentifier
         token: x
       leftBracket: [
-      index: IntegerLiteral
+      index2: IntegerLiteral
         literal: 0
       rightBracket: ]
     argumentList: ArgumentList
@@ -1211,15 +1211,15 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = x?[0]<a, b>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: IndexExpression
-    target: SimpleIdentifier
+  function2: IndexExpression
+    target2: SimpleIdentifier
       token: x
     question: ?
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
     rightBracket: ]
   typeArguments: TypeArgumentList
@@ -1237,11 +1237,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = f().m<a, b>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: MethodInvocation
+  function2: PropertyAccess
+    target2: MethodInvocation
       methodName: SimpleIdentifier
         token: f
       argumentList: ArgumentList
@@ -1265,10 +1265,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = f()..m<a, b>;
 ''');
-    var node = parseResult.findNode.singleCascadeExpression.cascadeSections[0];
+    var node = parseResult.findNode.singleCascadeExpression.cascadeSections2[0];
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
+  function2: PropertyAccess
     operator: ..
     propertyName: SimpleIdentifier
       token: m
@@ -1287,10 +1287,10 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = prefix.f<a, b>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
     period: .
@@ -1311,11 +1311,11 @@
     var parseResult = parseTestCodeWithDiagnostics(r'''
 var x = prefix.ClassName.m<a, b>;
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
       period: .
diff --git a/pkg/analyzer/test/generated/new_as_identifier_parser_test.dart b/pkg/analyzer/test/generated/new_as_identifier_parser_test.dart
index 4de9b86..bd83010 100644
--- a/pkg/analyzer/test/generated/new_as_identifier_parser_test.dart
+++ b/pkg/analyzer/test/generated/new_as_identifier_parser_test.dart
@@ -57,8 +57,8 @@
             fieldName: SimpleIdentifier
               token: <empty> <synthetic>
             equals: = <synthetic>
-            expression: PropertyAccess
-              target: ThisExpression
+            expression2: PropertyAccess
+              target2: ThisExpression
                 thisKeyword: this
               operator: .
               propertyName: SimpleIdentifier
@@ -285,7 +285,7 @@
     var node = parseResult.findNode.singleMethodInvocation;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: C
   operator: .
   methodName: SimpleIdentifier
@@ -328,7 +328,7 @@
     var node = parseResult.findNode.singleMethodInvocation;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
     period: .
@@ -412,8 +412,8 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: MethodInvocation
-      target: SimpleIdentifier
+    expression2: MethodInvocation
+      target2: SimpleIdentifier
         token: C
       operator: .
       methodName: SimpleIdentifier
@@ -447,8 +447,8 @@
     var node = parseResult.findNode.singlePropertyAccess;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: FunctionReference
-    function: SimpleIdentifier
+  target2: FunctionReference
+    function2: SimpleIdentifier
       token: C
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -469,9 +469,9 @@
     var node = parseResult.findNode.singleMethodInvocation;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: PropertyAccess
-    target: FunctionReference
-      function: SimpleIdentifier
+  target2: PropertyAccess
+    target2: FunctionReference
+      function2: SimpleIdentifier
         token: C
       typeArguments: TypeArgumentList
         leftBracket: <
@@ -499,7 +499,7 @@
     var node = parseResult.findNode.commentReference('C.new');
     assertParsedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: C
     period: .
@@ -515,7 +515,7 @@
     var node = parseResult.findNode.singleMethodInvocation;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: C
     period: .
@@ -537,7 +537,7 @@
     var node = parseResult.findNode.singlePropertyAccess;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
     period: .
@@ -556,8 +556,8 @@
     var node = parseResult.findNode.singlePropertyAccess;
     assertParsedNodeText(node, r'''
 PropertyAccess
-  target: FunctionReference
-    function: PrefixedIdentifier
+  target2: FunctionReference
+    function2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
       period: .
@@ -582,9 +582,9 @@
     var node = parseResult.findNode.singleMethodInvocation;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: PropertyAccess
-    target: FunctionReference
-      function: PrefixedIdentifier
+  target2: PropertyAccess
+    target2: FunctionReference
+      function2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: prefix
         period: .
@@ -615,8 +615,8 @@
     var node = parseResult.findNode.singleMethodInvocation;
     assertParsedNodeText(node, r'''
 MethodInvocation
-  target: PropertyAccess
-    target: PrefixedIdentifier
+  target2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
       period: .
diff --git a/pkg/analyzer/test/generated/nnbd_parser_test.dart b/pkg/analyzer/test/generated/nnbd_parser_test.dart
index 72fd7d2..938b16c 100644
--- a/pkg/analyzer/test/generated/nnbd_parser_test.dart
+++ b/pkg/analyzer/test/generated/nnbd_parser_test.dart
@@ -46,16 +46,16 @@
           VariableDeclaration
             name: x2
             equals: =
-            initializer: BinaryExpression
-              leftOperand: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: SimpleIdentifier
                 token: x
               operator: +
-              rightOperand: MethodInvocation
+              rightOperand2: MethodInvocation
                 methodName: SimpleIdentifier
                   token: bar
                 argumentList: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     IntegerLiteral
                       literal: 7
                   rightParenthesis: )
@@ -98,16 +98,16 @@
           VariableDeclaration
             name: s
             equals: =
-            initializer: SimpleStringLiteral
+            initializer2: SimpleStringLiteral
               literal: ''
       semicolon: ;
     ExpressionStatement
-      expression: CascadeExpression
-        target: SimpleIdentifier
+      expression2: CascadeExpression
+        target2: SimpleIdentifier
           token: a
-        cascadeSections
+        cascadeSections2
           PropertyAccess
-            target: MethodInvocation
+            target2: MethodInvocation
               operator: ?..
               methodName: SimpleIdentifier
                 token: foo
@@ -118,17 +118,17 @@
             propertyName: SimpleIdentifier
               token: length
           AssignmentExpression
-            leftHandSide: PropertyAccess
+            leftHandSide2: PropertyAccess
               operator: ..
               propertyName: SimpleIdentifier
                 token: x27
             operator: =
-            rightHandSide: PostfixExpression
-              operand: SimpleIdentifier
+            rightHandSide2: PostfixExpression
+              operand2: SimpleIdentifier
                 token: s
               operator: !
           PropertyAccess
-            target: MethodInvocation
+            target2: MethodInvocation
               operator: ..
               methodName: SimpleIdentifier
                 token: toString
@@ -173,7 +173,7 @@
           VariableDeclaration
             name: x2
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: x
       semicolon: ;
   rightBracket: }
@@ -202,14 +202,14 @@
             name: f1
       semicolon: ;
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PostfixExpression
-          operand: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: PostfixExpression
+          operand2: SimpleIdentifier
             token: f1
           operator: !
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             IntegerLiteral
               literal: 42
           rightParenthesis: )
@@ -239,9 +239,9 @@
             name: f2
       semicolon: ;
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PostfixExpression
-          operand: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: PostfixExpression
+          operand2: SimpleIdentifier
             token: f2
           operator: !
         typeArguments: TypeArgumentList
@@ -252,7 +252,7 @@
           rightBracket: >
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             IntegerLiteral
               literal: 42
           rightParenthesis: )
@@ -273,14 +273,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PostfixExpression
-          operand: SimpleIdentifier
+      expression2: IndexExpression
+        target2: PostfixExpression
+          operand2: SimpleIdentifier
             token: a
           operator: !
         question: ?
         leftBracket: [
-        index: IntegerLiteral
+        index2: IntegerLiteral
           literal: 0
         rightBracket: ]
       semicolon: ;
@@ -300,11 +300,11 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: BinaryExpression
-        leftOperand: SimpleIdentifier
+      expression2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: X
         operator: ??
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: x2
       semicolon: ;
   rightBracket: }
@@ -323,14 +323,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: CascadeExpression
-        target: SimpleIdentifier
+      expression2: CascadeExpression
+        target2: SimpleIdentifier
           token: a
-        cascadeSections
+        cascadeSections2
           IndexExpression
             period: ?..
             leftBracket: [
-            index: IntegerLiteral
+            index2: IntegerLiteral
               literal: 27
             rightBracket: ]
       semicolon: ;
@@ -350,14 +350,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: CascadeExpression
-        target: SimpleIdentifier
+      expression2: CascadeExpression
+        target2: SimpleIdentifier
           token: a
-        cascadeSections
+        cascadeSections2
           IndexExpression
             period: ..
             leftBracket: [
-            index: IntegerLiteral
+            index2: IntegerLiteral
               literal: 27
             rightBracket: ]
           PropertyAccess
@@ -381,10 +381,10 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: CascadeExpression
-        target: SimpleIdentifier
+      expression2: CascadeExpression
+        target2: SimpleIdentifier
           token: a
-        cascadeSections
+        cascadeSections2
           MethodInvocation
             operator: ?..
             methodName: SimpleIdentifier
@@ -409,10 +409,10 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: CascadeExpression
-        target: SimpleIdentifier
+      expression2: CascadeExpression
+        target2: SimpleIdentifier
           token: a
-        cascadeSections
+        cascadeSections2
           PropertyAccess
             operator: ?..
             propertyName: SimpleIdentifier
@@ -434,14 +434,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ConditionalExpression
-        condition: SimpleIdentifier
+      expression2: ConditionalExpression
+        condition2: SimpleIdentifier
           token: X
         question: ?
-        thenExpression: IntegerLiteral
+        thenExpression2: IntegerLiteral
           literal: 7
         colon: :
-        elseExpression: SimpleIdentifier
+        elseExpression2: SimpleIdentifier
           token: y
       semicolon: ;
   rightBracket: }
@@ -460,29 +460,29 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ConditionalExpression
-        condition: SimpleIdentifier
+      expression2: ConditionalExpression
+        condition2: SimpleIdentifier
           token: X
         question: ?
-        thenExpression: AssignmentExpression
-          leftHandSide: SimpleIdentifier
+        thenExpression2: AssignmentExpression
+          leftHandSide2: SimpleIdentifier
             token: x2
           operator: =
-          rightHandSide: BinaryExpression
-            leftOperand: SimpleIdentifier
+          rightHandSide2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: +
-            rightOperand: MethodInvocation
+            rightOperand2: MethodInvocation
               methodName: SimpleIdentifier
                 token: bar
               argumentList: ArgumentList
                 leftParenthesis: (
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 7
                 rightParenthesis: )
         colon: :
-        elseExpression: SimpleIdentifier
+        elseExpression2: SimpleIdentifier
           token: y
       semicolon: ;
   rightBracket: }
@@ -504,36 +504,36 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ConditionalExpression
-        condition: SimpleIdentifier
+      expression2: ConditionalExpression
+        condition2: SimpleIdentifier
           token: X
         question: ?
-        thenExpression: ConditionalExpression
-          condition: SimpleIdentifier
+        thenExpression2: ConditionalExpression
+          condition2: SimpleIdentifier
             token: <empty> <synthetic>
           question: ?
-          thenExpression: AssignmentExpression
-            leftHandSide: SimpleIdentifier
+          thenExpression2: AssignmentExpression
+            leftHandSide2: SimpleIdentifier
               token: x2
             operator: =
-            rightHandSide: BinaryExpression
-              leftOperand: SimpleIdentifier
+            rightHandSide2: BinaryExpression
+              leftOperand2: SimpleIdentifier
                 token: x
               operator: +
-              rightOperand: MethodInvocation
+              rightOperand2: MethodInvocation
                 methodName: SimpleIdentifier
                   token: bar
                 argumentList: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     IntegerLiteral
                       literal: 7
                   rightParenthesis: )
           colon: :
-          elseExpression: SimpleIdentifier
+          elseExpression2: SimpleIdentifier
             token: y
         colon: : <synthetic>
-        elseExpression: SimpleIdentifier
+        elseExpression2: SimpleIdentifier
           token: <empty> <synthetic>
       semicolon: ;
   rightBracket: }
@@ -552,18 +552,18 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ConditionalExpression
-        condition: SimpleIdentifier
+      expression2: ConditionalExpression
+        condition2: SimpleIdentifier
           token: X
         question: ?
-        thenExpression: AssignmentExpression
-          leftHandSide: SimpleIdentifier
+        thenExpression2: AssignmentExpression
+          leftHandSide2: SimpleIdentifier
             token: x2
           operator: =
-          rightHandSide: SimpleIdentifier
+          rightHandSide2: SimpleIdentifier
             token: x
         colon: :
-        elseExpression: SimpleIdentifier
+        elseExpression2: SimpleIdentifier
           token: y
       semicolon: ;
   rightBracket: }
@@ -592,20 +592,20 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: x
           operator: <
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 7
         rightSeparator: ;
-        updaters
+        updaters2
           PrefixExpression
             operator: ++
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: x
       rightParenthesis: )
       body: Block
@@ -630,35 +630,35 @@
       forKeyword: for
       leftParenthesis: (
       forLoopParts: ForPartsWithExpression
-        initialization: ConditionalExpression
-          condition: SimpleIdentifier
+        initialization2: ConditionalExpression
+          condition2: SimpleIdentifier
             token: x
           question: ?
-          thenExpression: AssignmentExpression
-            leftHandSide: SimpleIdentifier
+          thenExpression2: AssignmentExpression
+            leftHandSide2: SimpleIdentifier
               token: y
             operator: =
-            rightHandSide: IntegerLiteral
+            rightHandSide2: IntegerLiteral
               literal: 7
           colon: :
-          elseExpression: AssignmentExpression
-            leftHandSide: SimpleIdentifier
+          elseExpression2: AssignmentExpression
+            leftHandSide2: SimpleIdentifier
               token: y
             operator: =
-            rightHandSide: IntegerLiteral
+            rightHandSide2: IntegerLiteral
               literal: 8
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: y
           operator: <
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 10
         rightSeparator: ;
-        updaters
+        updaters2
           PrefixExpression
             operator: ++
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: y
       rightParenthesis: )
       body: Block
@@ -691,20 +691,20 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: x
           operator: <
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 7
         rightSeparator: ;
-        updaters
+        updaters2
           PrefixExpression
             operator: ++
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: x
       rightParenthesis: )
       body: Block
@@ -736,7 +736,7 @@
         inKeyword: in
         iterable: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 7
           rightBracket: ]
@@ -771,7 +771,7 @@
         inKeyword: in
         iterable: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 7
             NullLiteral
@@ -805,14 +805,14 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: ConditionalExpression
-            condition: SimpleIdentifier
+          expression2: ConditionalExpression
+            condition2: SimpleIdentifier
               token: r
             question: ?
-            thenExpression: ThisExpression
+            thenExpression2: ThisExpression
               thisKeyword: this
             colon: : <synthetic>
-            elseExpression: SimpleIdentifier
+            elseExpression2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
       rightBracket: }
@@ -845,7 +845,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 7
       semicolon: ;
   rightBracket: }
@@ -877,7 +877,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 7
       semicolon: ;
   rightBracket: }
@@ -910,7 +910,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 7
       semicolon: ;
   rightBracket: }
@@ -949,7 +949,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 7
       semicolon: ;
   rightBracket: }
@@ -985,7 +985,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 7
       semicolon: ;
   rightBracket: }
@@ -1004,11 +1004,11 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: SimpleIdentifier
+      expression2: IndexExpression
+        target2: SimpleIdentifier
           token: a
         leftBracket: [
-        index: IntegerLiteral
+        index2: IntegerLiteral
           literal: 7
         rightBracket: ]
       semicolon: ;
@@ -1028,12 +1028,12 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: SimpleIdentifier
+      expression2: IndexExpression
+        target2: SimpleIdentifier
           token: a
         question: ?
         leftBracket: [
-        index: IntegerLiteral
+        index2: IntegerLiteral
           literal: 7
         rightBracket: ]
       semicolon: ;
@@ -1053,26 +1053,26 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ConditionalExpression
-        condition: IsExpression
-          expression: SimpleIdentifier
+      expression2: ConditionalExpression
+        condition2: IsExpression
+          expression2: SimpleIdentifier
             token: x
           isOperator: is
           type: NamedType
             name: String
             question: ?
         question: ?
-        thenExpression: ParenthesizedExpression
+        thenExpression2: ParenthesizedExpression
           leftParenthesis: (
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: +
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: y
           rightParenthesis: )
         colon: :
-        elseExpression: SimpleIdentifier
+        elseExpression2: SimpleIdentifier
           token: z
       semicolon: ;
   rightBracket: }
@@ -1091,11 +1091,11 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ConditionalExpression
-        condition: ParenthesizedExpression
+      expression2: ConditionalExpression
+        condition2: ParenthesizedExpression
           leftParenthesis: (
-          expression: IsExpression
-            expression: SimpleIdentifier
+          expression2: IsExpression
+            expression2: SimpleIdentifier
               token: x
             isOperator: is
             type: NamedType
@@ -1103,17 +1103,17 @@
               question: ?
           rightParenthesis: )
         question: ?
-        thenExpression: ParenthesizedExpression
+        thenExpression2: ParenthesizedExpression
           leftParenthesis: (
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: +
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: y
           rightParenthesis: )
         colon: :
-        elseExpression: SimpleIdentifier
+        elseExpression2: SimpleIdentifier
           token: z
       semicolon: ;
   rightBracket: }
@@ -1140,12 +1140,12 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: print
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: c
@@ -1179,12 +1179,12 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: print
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: c
@@ -1260,8 +1260,8 @@
                 fieldName: SimpleIdentifier
                   token: x
                 equals: =
-                expression: AsExpression
-                  expression: SimpleIdentifier
+                expression2: AsExpression
+                  expression2: SimpleIdentifier
                     token: o
                   asOperator: as
                   type: NamedType
@@ -1271,7 +1271,7 @@
                 fieldName: SimpleIdentifier
                   token: y
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
             body: EmptyFunctionBody
               semicolon: ;
@@ -1342,29 +1342,29 @@
                 fieldName: SimpleIdentifier
                   token: y
                 equals: =
-                expression: ConditionalExpression
-                  condition: IsExpression
-                    expression: SimpleIdentifier
+                expression2: ConditionalExpression
+                  condition2: IsExpression
+                    expression2: SimpleIdentifier
                       token: o
                     isOperator: is
                     type: NamedType
                       name: String
                       question: ?
                   question: ?
-                  thenExpression: PrefixedIdentifier
+                  thenExpression2: PrefixedIdentifier
                     prefix: SimpleIdentifier
                       token: o
                     period: .
                     identifier: SimpleIdentifier
                       token: length
                   colon: :
-                  elseExpression: NullLiteral
+                  elseExpression2: NullLiteral
                     literal: null
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: x
                 equals: =
-                expression: NullLiteral
+                expression2: NullLiteral
                   literal: null
             body: EmptyFunctionBody
               semicolon: ;
@@ -1435,28 +1435,28 @@
                 fieldName: SimpleIdentifier
                   token: y
                 equals: =
-                expression: ConditionalExpression
-                  condition: IsExpression
-                    expression: SimpleIdentifier
+                expression2: ConditionalExpression
+                  condition2: IsExpression
+                    expression2: SimpleIdentifier
                       token: o
                     isOperator: is
                     type: NamedType
                       name: String
                   question: ?
-                  thenExpression: PrefixedIdentifier
+                  thenExpression2: PrefixedIdentifier
                     prefix: SimpleIdentifier
                       token: o
                     period: .
                     identifier: SimpleIdentifier
                       token: length
                   colon: :
-                  elseExpression: NullLiteral
+                  elseExpression2: NullLiteral
                     literal: null
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: x
                 equals: =
-                expression: NullLiteral
+                expression2: NullLiteral
                   literal: null
             body: EmptyFunctionBody
               semicolon: ;
@@ -1482,8 +1482,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: SimpleIdentifier
+            initializer2: PostfixExpression
+              operand2: SimpleIdentifier
                 token: y
               operator: !
       semicolon: ;
@@ -1509,10 +1509,10 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PropertyAccess
-                target: PostfixExpression
-                  operand: PrefixedIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PropertyAccess
+                target2: PostfixExpression
+                  operand2: PrefixedIdentifier
                     prefix: SimpleIdentifier
                       token: g
                     period: .
@@ -1523,7 +1523,7 @@
                 propertyName: SimpleIdentifier
                   token: y
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1548,11 +1548,11 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PropertyAccess
-                target: PostfixExpression
-                  operand: MethodInvocation
-                    target: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PropertyAccess
+                target2: PostfixExpression
+                  operand2: MethodInvocation
+                    target2: SimpleIdentifier
                       token: g
                     operator: .
                     methodName: SimpleIdentifier
@@ -1565,7 +1565,7 @@
                 propertyName: SimpleIdentifier
                   token: y
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1590,17 +1590,17 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PropertyAccess
-                target: PostfixExpression
-                  operand: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PropertyAccess
+                target2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: g
                   operator: !
                 operator: .
                 propertyName: SimpleIdentifier
                   token: x
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1619,10 +1619,10 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PropertyAccess
-          target: PostfixExpression
-            operand: PrefixedIdentifier
+      expression2: IndexExpression
+        target2: PropertyAccess
+          target2: PostfixExpression
+            operand2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: foo
               period: .
@@ -1633,7 +1633,7 @@
           propertyName: SimpleIdentifier
             token: baz
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: arg
         rightBracket: ]
       semicolon: ;
@@ -1659,10 +1659,10 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: MethodInvocation
-                target: PostfixExpression
-                  operand: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: MethodInvocation
+                target2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: g
                   operator: !
                 operator: .
@@ -1672,7 +1672,7 @@
                   leftParenthesis: (
                   rightParenthesis: )
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1697,9 +1697,9 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: MethodInvocation
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: g
                   argumentList: ArgumentList
@@ -1707,7 +1707,7 @@
                     rightParenthesis: )
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1732,18 +1732,18 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: IndexExpression
-                  target: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: IndexExpression
+                  target2: SimpleIdentifier
                     token: y
                   leftBracket: [
-                  index: IntegerLiteral
+                  index2: IntegerLiteral
                     literal: 0
                   rightBracket: ]
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1768,22 +1768,22 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: IndexExpression
-                  target: PropertyAccess
-                    target: SuperExpression
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: IndexExpression
+                  target2: PropertyAccess
+                    target2: SuperExpression
                       superKeyword: super
                     operator: .
                     propertyName: SimpleIdentifier
                       token: y
                   leftBracket: [
-                  index: IntegerLiteral
+                  index2: IntegerLiteral
                     literal: 0
                   rightBracket: ]
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1808,13 +1808,13 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: SimpleIdentifier
                   token: y
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1839,10 +1839,10 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: MethodInvocation
-                  target: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: MethodInvocation
+                  target2: SimpleIdentifier
                     token: g
                   operator: .
                   methodName: SimpleIdentifier
@@ -1852,7 +1852,7 @@
                     rightParenthesis: )
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1877,10 +1877,10 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: MethodInvocation
-                  target: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: MethodInvocation
+                  target2: SimpleIdentifier
                     token: g
                   operator: ?.
                   methodName: SimpleIdentifier
@@ -1890,7 +1890,7 @@
                     rightParenthesis: )
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1915,10 +1915,10 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: MethodInvocation
-                  target: SuperExpression
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: MethodInvocation
+                  target2: SuperExpression
                     superKeyword: super
                   operator: .
                   methodName: SimpleIdentifier
@@ -1928,7 +1928,7 @@
                     rightParenthesis: )
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -1953,8 +1953,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: InstanceCreationExpression
+            initializer2: PostfixExpression
+              operand2: InstanceCreationExpression
                 keyword: const
                 constructorName: ConstructorName
                   type: NamedType
@@ -1986,8 +1986,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: InstanceCreationExpression
+            initializer2: PostfixExpression
+              operand2: InstanceCreationExpression
                 keyword: new
                 constructorName: ConstructorName
                   type: NamedType
@@ -2013,13 +2013,13 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PostfixExpression
-          operand: SimpleIdentifier
+      expression2: IndexExpression
+        target2: PostfixExpression
+          operand2: SimpleIdentifier
             token: obj
           operator: !
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: arg
         rightBracket: ]
       semicolon: ;
@@ -2039,20 +2039,20 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PostfixExpression
-          operand: IndexExpression
-            target: PostfixExpression
-              operand: SimpleIdentifier
+      expression2: IndexExpression
+        target2: PostfixExpression
+          operand2: IndexExpression
+            target2: PostfixExpression
+              operand2: SimpleIdentifier
                 token: obj
               operator: !
             leftBracket: [
-            index: SimpleIdentifier
+            index2: SimpleIdentifier
               token: arg
             rightBracket: ]
           operator: !
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: arg2
         rightBracket: ]
       semicolon: ;
@@ -2072,9 +2072,9 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PostfixExpression
-          operand: PrefixedIdentifier
+      expression2: IndexExpression
+        target2: PostfixExpression
+          operand2: PrefixedIdentifier
             prefix: SimpleIdentifier
               token: foo
             period: .
@@ -2082,7 +2082,7 @@
               token: bar
           operator: !
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: arg
         rightBracket: ]
       semicolon: ;
@@ -2102,11 +2102,11 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PostfixExpression
-          operand: PropertyAccess
-            target: PostfixExpression
-              operand: SimpleIdentifier
+      expression2: IndexExpression
+        target2: PostfixExpression
+          operand2: PropertyAccess
+            target2: PostfixExpression
+              operand2: SimpleIdentifier
                 token: foo
               operator: !
             operator: .
@@ -2114,7 +2114,7 @@
               token: bar
           operator: !
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: arg
         rightBracket: ]
       semicolon: ;
@@ -2134,11 +2134,11 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PostfixExpression
-          operand: IndexExpression
-            target: PostfixExpression
-              operand: PrefixedIdentifier
+      expression2: IndexExpression
+        target2: PostfixExpression
+          operand2: IndexExpression
+            target2: PostfixExpression
+              operand2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: foo
                 period: .
@@ -2146,12 +2146,12 @@
                   token: bar
               operator: !
             leftBracket: [
-            index: SimpleIdentifier
+            index2: SimpleIdentifier
               token: arg
             rightBracket: ]
           operator: !
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: arg2
         rightBracket: ]
       semicolon: ;
@@ -2171,13 +2171,13 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: IndexExpression
-        target: PostfixExpression
-          operand: IndexExpression
-            target: PostfixExpression
-              operand: PropertyAccess
-                target: PostfixExpression
-                  operand: SimpleIdentifier
+      expression2: IndexExpression
+        target2: PostfixExpression
+          operand2: IndexExpression
+            target2: PostfixExpression
+              operand2: PropertyAccess
+                target2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: foo
                   operator: !
                 operator: .
@@ -2185,12 +2185,12 @@
                   token: bar
               operator: !
             leftBracket: [
-            index: SimpleIdentifier
+            index2: SimpleIdentifier
               token: arg
             rightBracket: ]
           operator: !
         leftBracket: [
-        index: SimpleIdentifier
+        index2: SimpleIdentifier
           token: arg2
         rightBracket: ]
       semicolon: ;
@@ -2216,8 +2216,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: DoubleLiteral
+            initializer2: PostfixExpression
+              operand2: DoubleLiteral
                 literal: 1.2
               operator: !
       semicolon: ;
@@ -2243,8 +2243,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: IntegerLiteral
+            initializer2: PostfixExpression
+              operand2: IntegerLiteral
                 literal: 0
               operator: !
       semicolon: ;
@@ -2270,10 +2270,10 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: ListLiteral
+            initializer2: PostfixExpression
+              operand2: ListLiteral
                 leftBracket: [
-                elements
+                elements2
                   IntegerLiteral
                     literal: 1
                   IntegerLiteral
@@ -2303,15 +2303,15 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: SetOrMapLiteral
+            initializer2: PostfixExpression
+              operand2: SetOrMapLiteral
                 leftBracket: {
-                elements
+                elements2
                   MapLiteralEntry
-                    key: IntegerLiteral
+                    key2: IntegerLiteral
                       literal: 1
                     separator: :
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 2
                 rightBracket: }
                 isMap: false
@@ -2339,10 +2339,10 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: SetOrMapLiteral
+            initializer2: PostfixExpression
+              operand2: SetOrMapLiteral
                 leftBracket: {
-                elements
+                elements2
                   IntegerLiteral
                     literal: 1
                   IntegerLiteral
@@ -2373,8 +2373,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: SimpleStringLiteral
+            initializer2: PostfixExpression
+              operand2: SimpleStringLiteral
                 literal: "seven"
               operator: !
       semicolon: ;
@@ -2400,8 +2400,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: NullLiteral
+            initializer2: PostfixExpression
+              operand2: NullLiteral
                 literal: null
               operator: !
       semicolon: ;
@@ -2421,14 +2421,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PostfixExpression
-          operand: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: PostfixExpression
+          operand2: SimpleIdentifier
             token: obj
           operator: !
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: arg
           rightParenthesis: )
@@ -2449,23 +2449,23 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PostfixExpression
-          operand: FunctionExpressionInvocation
-            function: PostfixExpression
-              operand: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: PostfixExpression
+          operand2: FunctionExpressionInvocation
+            function2: PostfixExpression
+              operand2: SimpleIdentifier
                 token: obj
               operator: !
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 SimpleIdentifier
                   token: arg
               rightParenthesis: )
           operator: !
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: arg2
           rightParenthesis: )
@@ -2492,8 +2492,8 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: PostfixExpression
-              operand: SymbolLiteral
+            initializer2: PostfixExpression
+              operand2: SymbolLiteral
                 poundSign: #
                 components
                   seven
@@ -2521,9 +2521,9 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: PrefixedIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: PrefixedIdentifier
                   prefix: SimpleIdentifier
                     token: p
                   period: .
@@ -2531,7 +2531,7 @@
                     token: y
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -2556,16 +2556,16 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: ParenthesizedExpression
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: ParenthesizedExpression
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: y
                   rightParenthesis: )
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -2590,9 +2590,9 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: PrefixedIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: PrefixedIdentifier
                   prefix: SimpleIdentifier
                     token: g
                   period: .
@@ -2600,7 +2600,7 @@
                     token: p
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -2625,17 +2625,17 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: PropertyAccess
-                  target: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: PropertyAccess
+                  target2: SimpleIdentifier
                     token: g
                   operator: ?.
                   propertyName: SimpleIdentifier
                     token: p
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -2660,17 +2660,17 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: BinaryExpression
-              leftOperand: PostfixExpression
-                operand: PropertyAccess
-                  target: SuperExpression
+            initializer2: BinaryExpression
+              leftOperand2: PostfixExpression
+                operand2: PropertyAccess
+                  target2: SuperExpression
                     superKeyword: super
                   operator: .
                   propertyName: SimpleIdentifier
                     token: p
                 operator: !
               operator: +
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 7
       semicolon: ;
   rightBracket: }
@@ -2689,10 +2689,10 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: PrefixExpression
+      expression2: PrefixExpression
         operator: -
-        operand: PostfixExpression
-          operand: SimpleIdentifier
+        operand2: PostfixExpression
+          operand2: SimpleIdentifier
             token: x
           operator: !
       semicolon: ;
@@ -2712,9 +2712,9 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: PostfixExpression
-        operand: PostfixExpression
-          operand: SimpleIdentifier
+      expression2: PostfixExpression
+        operand2: PostfixExpression
+          operand2: SimpleIdentifier
             token: x
           operator: ++
         operator: !
diff --git a/pkg/analyzer/test/generated/non_error_resolver_test.dart b/pkg/analyzer/test/generated/non_error_resolver_test.dart
index 2911d52..4ddae7a 100644
--- a/pkg/analyzer/test/generated/non_error_resolver_test.dart
+++ b/pkg/analyzer/test/generated/non_error_resolver_test.dart
@@ -3279,7 +3279,7 @@
     assertType(
       result.findNode
           .yieldStatement('yield* Stream.fromIterable([1]);')
-          .expression
+          .expression2
           .staticType,
       'Stream<int>',
     );
@@ -3295,7 +3295,7 @@
 ''');
 
     assertType(
-      result.findNode.yieldStatement('yield* [1];').expression.staticType,
+      result.findNode.yieldStatement('yield* [1];').expression2.staticType,
       'List<int>',
     );
   }
diff --git a/pkg/analyzer/test/generated/patterns_parser_test.dart b/pkg/analyzer/test/generated/patterns_parser_test.dart
index 75015a5..df7f8f9 100644
--- a/pkg/analyzer/test/generated/patterns_parser_test.dart
+++ b/pkg/analyzer/test/generated/patterns_parser_test.dart
@@ -73,7 +73,7 @@
   keyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: A
         period: .
@@ -94,20 +94,20 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
 ''');
   }
@@ -123,23 +123,23 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
   elseKeyword: else
-  elseElement: IntegerLiteral
+  elseElement2: IntegerLiteral
     literal: 2
 ''');
   }
@@ -155,17 +155,17 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
   rightParenthesis: )
   thenStatement: Block
@@ -185,17 +185,17 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
   rightParenthesis: )
   thenStatement: Block
@@ -223,11 +223,11 @@
   keyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
     whenClause: WhenClause
       whenKeyword: when
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
   colon: :
   statements
@@ -248,16 +248,16 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
 ''');
   }
@@ -273,19 +273,19 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
   elseKeyword: else
-  elseElement: IntegerLiteral
+  elseElement2: IntegerLiteral
     literal: 2
 ''');
   }
@@ -301,13 +301,13 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
   rightParenthesis: )
   thenStatement: Block
@@ -331,7 +331,7 @@
   keyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   colon: :
   statements
@@ -352,24 +352,24 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
         asToken: as
         type: NamedType
           name: int
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
 ''');
   }
@@ -385,27 +385,27 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
         asToken: as
         type: NamedType
           name: int
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
   elseKeyword: else
-  elseElement: IntegerLiteral
+  elseElement2: IntegerLiteral
     literal: 2
 ''');
   }
@@ -421,21 +421,21 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
         asToken: as
         type: NamedType
           name: int
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
   rightParenthesis: )
   thenStatement: Block
@@ -460,14 +460,14 @@
   guardedPattern: GuardedPattern
     pattern: CastPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
       asToken: as
       type: NamedType
         name: int
     whenClause: WhenClause
       whenKeyword: when
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
   colon: :
   statements
@@ -488,20 +488,20 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
         asToken: as
         type: NamedType
           name: int
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
 ''');
   }
@@ -517,23 +517,23 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
         asToken: as
         type: NamedType
           name: int
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
   elseKeyword: else
-  elseElement: IntegerLiteral
+  elseElement2: IntegerLiteral
     literal: 2
 ''');
   }
@@ -549,14 +549,14 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
         asToken: as
         type: NamedType
@@ -584,7 +584,7 @@
   guardedPattern: GuardedPattern
     pattern: CastPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
       asToken: as
       type: NamedType
@@ -611,7 +611,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: y
   asToken: as
   type: NamedType
@@ -636,7 +636,7 @@
 CastPattern
   pattern: CastPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     asToken: as
     type: NamedType
@@ -664,7 +664,7 @@
     leftParenthesis: (
     pattern: CastPattern
       pattern: ConstantPattern
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: y
       asToken: as
       type: NamedType
@@ -713,7 +713,7 @@
   elements
     CastPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
       asToken: as
       type: NamedType
@@ -861,12 +861,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         asToken: as
         type: NamedType
@@ -892,7 +892,7 @@
 NullAssertPattern
   pattern: CastPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     asToken: as
     type: NamedType
@@ -918,7 +918,7 @@
 NullCheckPattern
   pattern: CastPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     asToken: as
     type: NamedType
@@ -953,7 +953,7 @@
         colon: :
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         asToken: as
         type: NamedType
@@ -1010,7 +1010,7 @@
   leftParenthesis: (
   pattern: CastPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     asToken: as
     type: NamedType
@@ -1039,14 +1039,14 @@
         colon: :
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         asToken: as
         type: NamedType
           name: int
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -1078,7 +1078,7 @@
           name: int
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -1101,14 +1101,14 @@
     PatternField
       pattern: CastPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         asToken: as
         type: NamedType
           name: int
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -1127,8 +1127,8 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: abstract
       period: .
@@ -1152,8 +1152,8 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
       period: .
@@ -1178,8 +1178,8 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: PropertyAccess
-      target: PrefixedIdentifier
+    expression2: PropertyAccess
+      target2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: a
         period: .
@@ -1206,8 +1206,8 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: PropertyAccess
-        target: PrefixedIdentifier
+      expression2: PropertyAccess
+        target2: PrefixedIdentifier
           prefix: SimpleIdentifier
             token: a
           period: .
@@ -1232,8 +1232,8 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: PropertyAccess
-      target: PrefixedIdentifier
+    expression2: PropertyAccess
+      target2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: a
         period: .
@@ -1259,8 +1259,8 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: PropertyAccess
-      target: PrefixedIdentifier
+    expression2: PropertyAccess
+      target2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: a
         period: .
@@ -1286,8 +1286,8 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: show
       period: .
@@ -1312,7 +1312,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: as
 ''');
   }
@@ -1330,7 +1330,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: when
 ''');
   }
@@ -1348,7 +1348,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: abstract
     period: .
@@ -1369,7 +1369,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
     period: .
@@ -1391,7 +1391,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: PrefixedIdentifier
+    expression2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
       period: .
@@ -1415,7 +1415,7 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: a
         period: .
@@ -1437,7 +1437,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: PrefixedIdentifier
+    expression2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
       period: .
@@ -1460,7 +1460,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: PrefixedIdentifier
+    expression2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
       period: .
@@ -1483,7 +1483,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: show
     period: .
@@ -1505,7 +1505,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: _
     period: .
@@ -1528,11 +1528,11 @@
     assertParsedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: y
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -1550,7 +1550,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: abstract
 ''');
   }
@@ -1568,7 +1568,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -1587,7 +1587,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: y
   asToken: as
   type: NamedType
@@ -1608,7 +1608,7 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
 ''');
   }
@@ -1627,7 +1627,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: y
   operator: !
 ''');
@@ -1647,7 +1647,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: y
   operator: ?
 ''');
@@ -1662,7 +1662,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -1680,7 +1680,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: show
 ''');
   }
@@ -1698,7 +1698,7 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: ListLiteral
+  expression2: ListLiteral
     typeArguments: TypeArgumentList
       leftBracket: <
       arguments
@@ -1724,7 +1724,7 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -1752,7 +1752,7 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: ListLiteral
+      expression2: ListLiteral
         typeArguments: TypeArgumentList
           leftBracket: <
           arguments
@@ -1778,7 +1778,7 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -1805,7 +1805,7 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -1831,7 +1831,7 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: ListLiteral
+  expression2: ListLiteral
     typeArguments: TypeArgumentList
       leftBracket: <
       arguments
@@ -1839,7 +1839,7 @@
           name: int
       rightBracket: >
     leftBracket: [
-    elements
+    elements2
       IntegerLiteral
         literal: 1
     rightBracket: ]
@@ -1860,7 +1860,7 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -1868,7 +1868,7 @@
             name: int
         rightBracket: >
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: ]
@@ -1891,7 +1891,7 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: ListLiteral
+      expression2: ListLiteral
         typeArguments: TypeArgumentList
           leftBracket: <
           arguments
@@ -1899,7 +1899,7 @@
               name: int
           rightBracket: >
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 1
         rightBracket: ]
@@ -1920,7 +1920,7 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -1928,7 +1928,7 @@
             name: int
         rightBracket: >
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: ]
@@ -1950,7 +1950,7 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -1958,7 +1958,7 @@
             name: int
         rightBracket: >
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: ]
@@ -1979,7 +1979,7 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: ListLiteral
+  expression2: ListLiteral
     leftBracket: [
     rightBracket: ]
 ''');
@@ -1999,7 +1999,7 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
       rightBracket: ]
   asToken: as
@@ -2021,7 +2021,7 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
         rightBracket: ]
 ''');
@@ -2041,7 +2041,7 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
       rightBracket: ]
   operator: !
@@ -2062,7 +2062,7 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
       rightBracket: ]
   operator: ?
@@ -2082,9 +2082,9 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: ListLiteral
+  expression2: ListLiteral
     leftBracket: [
-    elements
+    elements2
       IntegerLiteral
         literal: 1
     rightBracket: ]
@@ -2105,9 +2105,9 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: ]
@@ -2130,9 +2130,9 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: ListLiteral
+      expression2: ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 1
         rightBracket: ]
@@ -2153,9 +2153,9 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: ]
@@ -2177,9 +2177,9 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: ]
@@ -2200,7 +2200,7 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: SetOrMapLiteral
+  expression2: SetOrMapLiteral
     typeArguments: TypeArgumentList
       leftBracket: <
       arguments
@@ -2210,12 +2210,12 @@
           name: int
       rightBracket: >
     leftBracket: {
-    elements
+    elements2
       MapLiteralEntry
-        key: IntegerLiteral
+        key2: IntegerLiteral
           literal: 1
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 2
     rightBracket: }
     isMap: false
@@ -2236,7 +2236,7 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -2246,12 +2246,12 @@
             name: int
         rightBracket: >
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 1
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 2
       rightBracket: }
       isMap: false
@@ -2274,7 +2274,7 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         typeArguments: TypeArgumentList
           leftBracket: <
           arguments
@@ -2284,12 +2284,12 @@
               name: int
           rightBracket: >
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 1
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 2
         rightBracket: }
         isMap: false
@@ -2310,7 +2310,7 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -2320,12 +2320,12 @@
             name: int
         rightBracket: >
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 1
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 2
       rightBracket: }
       isMap: false
@@ -2347,7 +2347,7 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -2357,12 +2357,12 @@
             name: int
         rightBracket: >
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 1
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 2
       rightBracket: }
       isMap: false
@@ -2383,14 +2383,14 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: SetOrMapLiteral
+  expression2: SetOrMapLiteral
     leftBracket: {
-    elements
+    elements2
       MapLiteralEntry
-        key: IntegerLiteral
+        key2: IntegerLiteral
           literal: 1
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 2
     rightBracket: }
     isMap: false
@@ -2411,14 +2411,14 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 1
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 2
       rightBracket: }
       isMap: false
@@ -2441,14 +2441,14 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: IntegerLiteral
+            key2: IntegerLiteral
               literal: 1
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 2
         rightBracket: }
         isMap: false
@@ -2469,14 +2469,14 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 1
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 2
       rightBracket: }
       isMap: false
@@ -2498,14 +2498,14 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 1
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 2
       rightBracket: }
       isMap: false
@@ -2526,12 +2526,12 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: MethodInvocation
+  expression2: MethodInvocation
     methodName: SimpleIdentifier
       token: Foo
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 1
       rightParenthesis: )
@@ -2552,12 +2552,12 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: Foo
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 1
         rightParenthesis: )
@@ -2580,12 +2580,12 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: Foo
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             IntegerLiteral
               literal: 1
           rightParenthesis: )
@@ -2606,12 +2606,12 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: Foo
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 1
         rightParenthesis: )
@@ -2633,12 +2633,12 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: Foo
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 1
         rightParenthesis: )
@@ -2659,9 +2659,9 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: ParenthesizedExpression
+  expression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
     rightParenthesis: )
 ''');
@@ -2681,9 +2681,9 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ParenthesizedExpression
+    expression2: ParenthesizedExpression
       leftParenthesis: (
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
       rightParenthesis: )
   asToken: as
@@ -2705,9 +2705,9 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: ParenthesizedExpression
+      expression2: ParenthesizedExpression
         leftParenthesis: (
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
         rightParenthesis: )
 ''');
@@ -2727,9 +2727,9 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ParenthesizedExpression
+    expression2: ParenthesizedExpression
       leftParenthesis: (
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
       rightParenthesis: )
   operator: !
@@ -2750,9 +2750,9 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ParenthesizedExpression
+    expression2: ParenthesizedExpression
       leftParenthesis: (
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
       rightParenthesis: )
   operator: ?
@@ -2772,7 +2772,7 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: SetOrMapLiteral
+  expression2: SetOrMapLiteral
     typeArguments: TypeArgumentList
       leftBracket: <
       arguments
@@ -2780,7 +2780,7 @@
           name: int
       rightBracket: >
     leftBracket: {
-    elements
+    elements2
       IntegerLiteral
         literal: 1
     rightBracket: }
@@ -2802,7 +2802,7 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -2810,7 +2810,7 @@
             name: int
         rightBracket: >
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: }
@@ -2834,7 +2834,7 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         typeArguments: TypeArgumentList
           leftBracket: <
           arguments
@@ -2842,7 +2842,7 @@
               name: int
           rightBracket: >
         leftBracket: {
-        elements
+        elements2
           IntegerLiteral
             literal: 1
         rightBracket: }
@@ -2864,7 +2864,7 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -2872,7 +2872,7 @@
             name: int
         rightBracket: >
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: }
@@ -2895,7 +2895,7 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -2903,7 +2903,7 @@
             name: int
         rightBracket: >
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: }
@@ -2925,9 +2925,9 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: SetOrMapLiteral
+  expression2: SetOrMapLiteral
     leftBracket: {
-    elements
+    elements2
       IntegerLiteral
         literal: 1
     rightBracket: }
@@ -2949,9 +2949,9 @@
 CastPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: }
@@ -2975,9 +2975,9 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         leftBracket: {
-        elements
+        elements2
           IntegerLiteral
             literal: 1
         rightBracket: }
@@ -2999,9 +2999,9 @@
 NullAssertPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: }
@@ -3024,9 +3024,9 @@
 NullCheckPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 1
       rightBracket: }
@@ -3056,7 +3056,7 @@
         name: d
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3084,7 +3084,7 @@
         name: d
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3111,7 +3111,7 @@
         name: d
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3137,7 +3137,7 @@
         name: d
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3165,7 +3165,7 @@
         name: d
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3208,23 +3208,23 @@
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: BinaryExpression
-        leftOperand: SwitchExpression
+      expression2: BinaryExpression
+        leftOperand2: SwitchExpression
           switchKeyword: switch
           leftParenthesis: (
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: x
           rightParenthesis: )
           leftBracket: {
           rightBracket: }
         operator: +
-        rightOperand: FunctionExpression
+        rightOperand2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3239,7 +3239,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
@@ -3248,20 +3248,20 @@
         name: _
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: y
           operator: +
-          rightOperand: FunctionExpression
+          rightOperand2: FunctionExpression
             parameters: FormalParameterList
               leftParenthesis: (
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -3277,7 +3277,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   caseClause: CaseClause
     caseKeyword: case
@@ -3286,17 +3286,17 @@
         name: _
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: y
           operator: +
-          rightOperand: FunctionExpression
+          rightOperand2: FunctionExpression
             parameters: FormalParameterList
               leftParenthesis: (
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
   rightParenthesis: )
   thenStatement: Block
@@ -3319,13 +3319,13 @@
   elements
     RelationalPattern
       operator: ==
-      operand: FunctionExpression
+      operand2: FunctionExpression
         parameters: FormalParameterList
           leftParenthesis: (
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
   rightBracket: ]
 ''');
@@ -3344,18 +3344,18 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'x'
       separator: :
       value: RelationalPattern
         operator: ==
-        operand: FunctionExpression
+        operand2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
   rightBracket: }
 ''');
@@ -3381,13 +3381,13 @@
         colon: :
       pattern: RelationalPattern
         operator: ==
-        operand: FunctionExpression
+        operand2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
   rightParenthesis: )
 ''');
@@ -3404,15 +3404,15 @@
     assertParsedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: ParenthesizedExpression
+  expression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: FunctionExpression
+    expression2: FunctionExpression
       parameters: FormalParameterList
         leftParenthesis: (
         rightParenthesis: )
       body: ExpressionFunctionBody
         functionDefinition: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
     rightParenthesis: )
 ''');
@@ -3431,13 +3431,13 @@
   leftParenthesis: (
   pattern: RelationalPattern
     operator: ==
-    operand: FunctionExpression
+    operand2: FunctionExpression
       parameters: FormalParameterList
         leftParenthesis: (
         rightParenthesis: )
       body: ExpressionFunctionBody
         functionDefinition: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
   rightParenthesis: )
 ''');
@@ -3455,16 +3455,16 @@
       name: _
     whenClause: WhenClause
       whenKeyword: when
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
   arrow: =>
-  expression: FunctionExpression
+  expression2: FunctionExpression
     parameters: FormalParameterList
       leftParenthesis: (
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
 ''');
   }
@@ -3480,13 +3480,13 @@
     pattern: WildcardPattern
       name: _
   arrow: =>
-  expression: FunctionExpression
+  expression2: FunctionExpression
     parameters: FormalParameterList
       leftParenthesis: (
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
 ''');
   }
@@ -3500,13 +3500,13 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: FunctionExpression
+  expression2: FunctionExpression
     parameters: FormalParameterList
       leftParenthesis: (
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   rightParenthesis: )
   leftBracket: {
@@ -3532,17 +3532,17 @@
       name: _
     whenClause: WhenClause
       whenKeyword: when
-      expression: BinaryExpression
-        leftOperand: SimpleIdentifier
+      expression2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: y
         operator: +
-        rightOperand: FunctionExpression
+        rightOperand2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
   colon: :
   statements
@@ -3568,11 +3568,11 @@
       rightBracket: ]
     whenClause: WhenClause
       whenKeyword: when
-      expression: RecordLiteral
+      expression2: RecordLiteral
         leftParenthesis: (
         rightParenthesis: )
   arrow: =>
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -3589,7 +3589,7 @@
       leftBracket: {
       elements
         MapPatternEntry
-          key: SimpleStringLiteral
+          key2: SimpleStringLiteral
             literal: 'x'
           separator: :
           value: WildcardPattern
@@ -3597,11 +3597,11 @@
       rightBracket: }
     whenClause: WhenClause
       whenKeyword: when
-      expression: RecordLiteral
+      expression2: RecordLiteral
         leftParenthesis: (
         rightParenthesis: )
   arrow: =>
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -3628,11 +3628,11 @@
       rightParenthesis: )
     whenClause: WhenClause
       whenKeyword: when
-      expression: RecordLiteral
+      expression2: RecordLiteral
         leftParenthesis: (
         rightParenthesis: )
   arrow: =>
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -3652,11 +3652,11 @@
       rightParenthesis: )
     whenClause: WhenClause
       whenKeyword: when
-      expression: RecordLiteral
+      expression2: RecordLiteral
         leftParenthesis: (
         rightParenthesis: )
   arrow: =>
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -3673,21 +3673,21 @@
       name: _
     whenClause: WhenClause
       whenKeyword: when
-      expression: BinaryExpression
-        leftOperand: SwitchExpression
+      expression2: BinaryExpression
+        leftOperand2: SwitchExpression
           switchKeyword: switch
           leftParenthesis: (
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: x
           rightParenthesis: )
           leftBracket: {
           rightBracket: }
         operator: +
-        rightOperand: RecordLiteral
+        rightOperand2: RecordLiteral
           leftParenthesis: (
           rightParenthesis: )
   arrow: =>
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -3704,15 +3704,15 @@
       name: _
     whenClause: WhenClause
       whenKeyword: when
-      expression: BinaryExpression
-        leftOperand: SimpleIdentifier
+      expression2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: y
         operator: +
-        rightOperand: RecordLiteral
+        rightOperand2: RecordLiteral
           leftParenthesis: (
           rightParenthesis: )
   arrow: =>
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -3733,7 +3733,7 @@
   guardedPattern: GuardedPattern
     pattern: CastPattern
       pattern: ConstantPattern
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: foo
       asToken: as
       type: NamedType
@@ -3757,11 +3757,11 @@
   keyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: foo
     whenClause: WhenClause
       whenKeyword: when
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: as
   colon: :
 ''');
@@ -3782,13 +3782,13 @@
   keyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: foo
     whenClause: WhenClause
       whenKeyword: when
-      expression: PrefixExpression
+      expression2: PrefixExpression
         operator: !
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: flag
   colon: :
 ''');
@@ -3809,11 +3809,11 @@
   keyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: foo
     whenClause: WhenClause
       whenKeyword: when
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: when
   colon: :
 ''');
@@ -3830,7 +3830,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -3841,14 +3841,14 @@
           name: _
         whenClause: WhenClause
           whenKeyword: when
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: a
             argumentList: ArgumentList
               leftParenthesis: (
               rightParenthesis: )
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   rightBracket: }
 ''');
@@ -3867,7 +3867,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -3876,21 +3876,21 @@
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
           constKeyword: const
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: A
             argumentList: ArgumentList
               leftParenthesis: (
               rightParenthesis: )
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: WildcardPattern
           name: _
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
   rightBracket: }
 ''');
@@ -3989,10 +3989,10 @@
   leftBracket: [
   elements
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
   rightBracket: ]
 ''');
@@ -4047,10 +4047,10 @@
   leftBracket: [
   elements
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
   rightBracket: ]
 ''');
@@ -4072,7 +4072,7 @@
     leftBracket: [
     elements
       ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
     rightBracket: ]
   asToken: as
@@ -4169,7 +4169,7 @@
     leftBracket: [
     elements
       ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
     rightBracket: ]
   operator: !
@@ -4192,7 +4192,7 @@
     leftBracket: [
     elements
       ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
     rightBracket: ]
   operator: ?
@@ -4307,7 +4307,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: BooleanLiteral
+  expression2: BooleanLiteral
     literal: true
 ''');
   }
@@ -4325,7 +4325,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
   asToken: as
   type: NamedType
@@ -4345,7 +4345,7 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
 ''');
   }
@@ -4363,7 +4363,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
   operator: !
 ''');
@@ -4382,7 +4382,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
   operator: ?
 ''');
@@ -4400,7 +4400,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: DoubleLiteral
+  expression2: DoubleLiteral
     literal: 1.0
 ''');
   }
@@ -4418,7 +4418,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: DoubleLiteral
+    expression2: DoubleLiteral
       literal: 1.0
   asToken: as
   type: NamedType
@@ -4438,7 +4438,7 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: DoubleLiteral
+      expression2: DoubleLiteral
         literal: 1.0
 ''');
   }
@@ -4456,7 +4456,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: DoubleLiteral
+    expression2: DoubleLiteral
       literal: 1.0
   operator: !
 ''');
@@ -4475,7 +4475,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: DoubleLiteral
+    expression2: DoubleLiteral
       literal: 1.0
   operator: ?
 ''');
@@ -4493,7 +4493,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 1
 ''');
   }
@@ -4511,7 +4511,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   asToken: as
   type: NamedType
@@ -4531,7 +4531,7 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
 ''');
   }
@@ -4549,7 +4549,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: !
 ''');
@@ -4568,7 +4568,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: ?
 ''');
@@ -4586,7 +4586,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: NullLiteral
+  expression2: NullLiteral
     literal: null
 ''');
   }
@@ -4604,7 +4604,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
   asToken: as
   type: NamedType
@@ -4624,7 +4624,7 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: NullLiteral
+      expression2: NullLiteral
         literal: null
 ''');
   }
@@ -4642,7 +4642,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
   operator: !
 ''');
@@ -4661,7 +4661,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
   operator: ?
 ''');
@@ -4679,7 +4679,7 @@
     var node = parseResult.findNode.singleGuardedPattern.pattern;
     assertParsedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleStringLiteral
+  expression2: SimpleStringLiteral
     literal: "x"
 ''');
   }
@@ -4697,7 +4697,7 @@
     assertParsedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: SimpleStringLiteral
+    expression2: SimpleStringLiteral
       literal: "x"
   asToken: as
   type: NamedType
@@ -4717,7 +4717,7 @@
   caseKeyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: "x"
 ''');
   }
@@ -4735,7 +4735,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: SimpleStringLiteral
+    expression2: SimpleStringLiteral
       literal: "x"
   operator: !
 ''');
@@ -4754,7 +4754,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: SimpleStringLiteral
+    expression2: SimpleStringLiteral
       literal: "x"
   operator: ?
 ''');
@@ -4964,13 +4964,13 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: AssignedVariablePattern
         name: a
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'b'
       separator: :
       value: AssignedVariablePattern
@@ -5025,13 +5025,13 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: AssignedVariablePattern
         name: a
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'b'
       separator: :
       value: AssignedVariablePattern
@@ -5052,13 +5052,13 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: AssignedVariablePattern
         name: a
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'b'
       separator: :
       value: AssignedVariablePattern
@@ -5090,18 +5090,18 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'b'
       separator: :
       value: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightBracket: }
 ''');
@@ -5139,18 +5139,18 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'b'
       separator: :
       value: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightBracket: }
 ''');
@@ -5172,11 +5172,11 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: SimpleStringLiteral
+        key2: SimpleStringLiteral
           literal: 'a'
         separator: :
         value: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
     rightBracket: }
   asToken: as
@@ -5205,13 +5205,13 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: DeclaredVariablePattern
         name: a
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'b'
       separator: :
       value: DeclaredVariablePattern
@@ -5246,13 +5246,13 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: DeclaredVariablePattern
         name: a
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'b'
       separator: :
       value: DeclaredVariablePattern
@@ -5277,11 +5277,11 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: SimpleStringLiteral
+        key2: SimpleStringLiteral
           literal: 'a'
         separator: :
         value: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
     rightBracket: }
   operator: !
@@ -5304,11 +5304,11 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: SimpleStringLiteral
+        key2: SimpleStringLiteral
           literal: 'a'
         separator: :
         value: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
     rightBracket: }
   operator: ?
@@ -5335,7 +5335,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'foo'
       separator: :
       value: ObjectPattern
@@ -5370,11 +5370,11 @@
       leftBracket: {
       elements
         MapPatternEntry
-          key: SimpleIdentifier
+          key2: SimpleIdentifier
             token: c
           separator: : <synthetic>
           value: ConstantPattern
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: <empty> <synthetic>
       rightBracket: }
   colon: :
@@ -5410,7 +5410,7 @@
         leftBracket: {
         elements
           MapPatternEntry
-            key: SimpleStringLiteral
+            key2: SimpleStringLiteral
               literal: 'foo'
             separator: :
             value: ObjectPattern
@@ -5447,7 +5447,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'foo'
       separator: :
       value: ObjectPattern
@@ -5456,7 +5456,7 @@
         leftParenthesis: (
         rightParenthesis: )
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'bar'
       separator: :
       value: ObjectPattern
@@ -5482,7 +5482,7 @@
     assertParsedNodeText(node, r'''
 NullAssertPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: y
   operator: !
 ''');
@@ -5505,7 +5505,7 @@
 CastPattern
   pattern: NullAssertPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     operator: !
   asToken: as
@@ -5549,7 +5549,7 @@
   elements
     NullAssertPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
       operator: !
   rightBracket: ]
@@ -5570,12 +5570,12 @@
 LogicalAndPattern
   leftOperand: NullAssertPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     operator: !
   operator: &&
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -5593,12 +5593,12 @@
     assertParsedNodeText(node, r'''
 LogicalAndPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: &&
   rightOperand: NullAssertPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
     operator: !
 ''');
@@ -5618,12 +5618,12 @@
 LogicalOrPattern
   leftOperand: NullAssertPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     operator: !
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -5641,12 +5641,12 @@
     assertParsedNodeText(node, r'''
 LogicalOrPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: ||
   rightOperand: NullAssertPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
     operator: !
 ''');
@@ -5667,12 +5667,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: NullAssertPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: !
   rightBracket: }
@@ -5696,7 +5696,7 @@
 NullAssertPattern
   pattern: NullAssertPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     operator: !
   operator: !
@@ -5720,7 +5720,7 @@
 NullCheckPattern
   pattern: NullAssertPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     operator: !
   operator: ?
@@ -5752,7 +5752,7 @@
         colon: :
       pattern: NullAssertPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: !
   rightParenthesis: )
@@ -5805,7 +5805,7 @@
   leftParenthesis: (
   pattern: NullAssertPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     operator: !
   rightParenthesis: )
@@ -5832,12 +5832,12 @@
         colon: :
       pattern: NullAssertPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: !
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -5867,7 +5867,7 @@
         operator: !
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -5890,12 +5890,12 @@
     PatternField
       pattern: NullAssertPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: !
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -5915,7 +5915,7 @@
     assertParsedNodeText(node, r'''
 NullCheckPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: y
   operator: ?
 ''');
@@ -5938,7 +5938,7 @@
 CastPattern
   pattern: NullCheckPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     operator: ?
   asToken: as
@@ -5982,7 +5982,7 @@
   elements
     NullCheckPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
       operator: ?
   rightBracket: ]
@@ -6003,12 +6003,12 @@
 LogicalAndPattern
   leftOperand: NullCheckPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     operator: ?
   operator: &&
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -6026,12 +6026,12 @@
     assertParsedNodeText(node, r'''
 LogicalAndPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: &&
   rightOperand: NullCheckPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
     operator: ?
 ''');
@@ -6051,12 +6051,12 @@
 LogicalOrPattern
   leftOperand: NullCheckPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     operator: ?
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -6074,12 +6074,12 @@
     assertParsedNodeText(node, r'''
 LogicalOrPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: ||
   rightOperand: NullCheckPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
     operator: ?
 ''');
@@ -6100,12 +6100,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: NullCheckPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: ?
   rightBracket: }
@@ -6129,7 +6129,7 @@
 NullAssertPattern
   pattern: NullCheckPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     operator: ?
   operator: !
@@ -6153,7 +6153,7 @@
 NullCheckPattern
   pattern: NullCheckPattern
     pattern: ConstantPattern
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: y
     operator: ?
   operator: ?
@@ -6185,7 +6185,7 @@
         colon: :
       pattern: NullCheckPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: ?
   rightParenthesis: )
@@ -6238,7 +6238,7 @@
   leftParenthesis: (
   pattern: NullCheckPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     operator: ?
   rightParenthesis: )
@@ -6265,12 +6265,12 @@
         colon: :
       pattern: NullCheckPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: ?
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -6300,7 +6300,7 @@
         operator: ?
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -6323,12 +6323,12 @@
     PatternField
       pattern: NullCheckPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
         operator: ?
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -6908,7 +6908,7 @@
           name: f
           colon: :
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
     rightParenthesis: )
   asToken: as
@@ -6942,7 +6942,7 @@
           name: f
           colon: :
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
     rightParenthesis: )
   operator: !
@@ -6974,7 +6974,7 @@
           name: f
           colon: :
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
     rightParenthesis: )
   operator: ?
@@ -7061,7 +7061,7 @@
           name: f
           colon: :
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
     rightParenthesis: )
   operator: !
@@ -7184,7 +7184,7 @@
 ParenthesizedPattern
   leftParenthesis: (
   pattern: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   rightParenthesis: )
 ''');
@@ -7205,7 +7205,7 @@
   pattern: ParenthesizedPattern
     leftParenthesis: (
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     rightParenthesis: )
   asToken: as
@@ -7245,7 +7245,7 @@
   pattern: ParenthesizedPattern
     leftParenthesis: (
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     rightParenthesis: )
   operator: !
@@ -7267,7 +7267,7 @@
   pattern: ParenthesizedPattern
     leftParenthesis: (
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
     rightParenthesis: )
   operator: ?
@@ -7299,7 +7299,7 @@
     iterable: SimpleIdentifier
       token: x
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -7334,7 +7334,7 @@
     iterable: SimpleIdentifier
       token: x
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -7433,12 +7433,12 @@
               name: b
         rightParenthesis: )
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
     leftSeparator: ;
     rightSeparator: ;
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -7468,7 +7468,7 @@
               name: b
         rightParenthesis: )
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
     leftSeparator: ;
     rightSeparator: ;
@@ -7489,7 +7489,7 @@
   forKeyword: for
   leftParenthesis: (
   forLoopParts: ForPartsWithExpression
-    initialization: PatternAssignment
+    initialization2: PatternAssignment
       pattern: RecordPattern
         leftParenthesis: (
         fields
@@ -7501,12 +7501,12 @@
               name: b
         rightParenthesis: )
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
     leftSeparator: ;
     rightSeparator: ;
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -7523,7 +7523,7 @@
   forKeyword: for
   leftParenthesis: (
   forLoopParts: ForPartsWithExpression
-    initialization: PatternAssignment
+    initialization2: PatternAssignment
       pattern: RecordPattern
         leftParenthesis: (
         fields
@@ -7535,7 +7535,7 @@
               name: b
         rightParenthesis: )
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
     leftSeparator: ;
     rightSeparator: ;
@@ -7571,17 +7571,17 @@
     var node = parseResult.findNode.assignment('v2 =');
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: v2
   operator: =
-  rightHandSide: PatternAssignment
+  rightHandSide2: PatternAssignment
     pattern: ParenthesizedPattern
       leftParenthesis: (
       pattern: AssignedVariablePattern
         name: v1
       rightParenthesis: )
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -7595,23 +7595,23 @@
     var node = parseResult.findNode.singleCascadeExpression;
     assertParsedNodeText(node, r'''
 CascadeExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
-  cascadeSections
+  cascadeSections2
     AssignmentExpression
-      leftHandSide: PropertyAccess
+      leftHandSide2: PropertyAccess
         operator: ..
         propertyName: SimpleIdentifier
           token: b
       operator: =
-      rightHandSide: PatternAssignment
+      rightHandSide2: PatternAssignment
         pattern: ParenthesizedPattern
           leftParenthesis: (
           pattern: AssignedVariablePattern
             name: v1
           rightParenthesis: )
         equals: =
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: c
     MethodInvocation
       operator: ..
@@ -7632,20 +7632,20 @@
     var node = parseResult.findNode.singleConditionalExpression;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: v2
   question: ?
-  thenExpression: PatternAssignment
+  thenExpression2: PatternAssignment
     pattern: ParenthesizedPattern
       leftParenthesis: (
       pattern: AssignedVariablePattern
         name: v1
       rightParenthesis: )
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
   colon: :
-  elseExpression: IntegerLiteral
+  elseExpression2: IntegerLiteral
     literal: 3
 ''');
   }
@@ -7665,10 +7665,10 @@
       name: v1
     rightParenthesis: )
   equals: =
-  expression: CascadeExpression
-    target: SimpleIdentifier
+  expression2: CascadeExpression
+    target2: SimpleIdentifier
       token: a
-    cascadeSections
+    cascadeSections2
       MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
@@ -7694,7 +7694,7 @@
       name: v2
     rightParenthesis: )
   equals: =
-  expression: PatternAssignment
+  expression2: PatternAssignment
     pattern: ParenthesizedPattern
       leftParenthesis: (
       pattern: ParenthesizedPattern
@@ -7704,7 +7704,7 @@
         rightParenthesis: )
       rightParenthesis: )
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 3
 ''');
   }
@@ -7736,9 +7736,9 @@
             VariableDeclaration
               name: <empty> <synthetic>
               equals: =
-              initializer: RecordLiteral
+              initializer2: RecordLiteral
                 leftParenthesis: (
-                fields
+                fields2
                   IntegerLiteral
                     literal: 0
                   IntegerLiteral
@@ -7769,9 +7769,9 @@
           VariableDeclaration
             name: <empty> <synthetic>
             equals: =
-            initializer: RecordLiteral
+            initializer2: RecordLiteral
               leftParenthesis: (
-              fields
+              fields2
                 IntegerLiteral
                   literal: 0
                 IntegerLiteral
@@ -7814,7 +7814,7 @@
         name: _
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -7844,7 +7844,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -7868,7 +7868,7 @@
           name: a
       rightBracket: ]
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -7889,14 +7889,14 @@
       leftBracket: {
       elements
         MapPatternEntry
-          key: SimpleStringLiteral
+          key2: SimpleStringLiteral
             literal: 'a'
           separator: :
           value: DeclaredVariablePattern
             name: a
       rightBracket: }
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -7919,7 +7919,7 @@
         name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -7944,7 +7944,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -7974,7 +7974,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -7998,7 +7998,7 @@
           name: a
       rightBracket: ]
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8019,14 +8019,14 @@
       leftBracket: {
       elements
         MapPatternEntry
-          key: SimpleStringLiteral
+          key2: SimpleStringLiteral
             literal: 'a'
           separator: :
           value: DeclaredVariablePattern
             name: a
       rightBracket: }
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8049,7 +8049,7 @@
         name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8074,7 +8074,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8110,7 +8110,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8140,7 +8140,7 @@
           name: a
       rightBracket: ]
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8167,14 +8167,14 @@
       leftBracket: {
       elements
         MapPatternEntry
-          key: SimpleStringLiteral
+          key2: SimpleStringLiteral
             literal: 'a'
           separator: :
           value: DeclaredVariablePattern
             name: a
       rightBracket: }
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8203,7 +8203,7 @@
         name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8234,7 +8234,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8270,7 +8270,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8300,7 +8300,7 @@
           name: a
       rightBracket: ]
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8327,14 +8327,14 @@
       leftBracket: {
       elements
         MapPatternEntry
-          key: SimpleStringLiteral
+          key2: SimpleStringLiteral
             literal: 'a'
           separator: :
           value: DeclaredVariablePattern
             name: a
       rightBracket: }
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8363,7 +8363,7 @@
         name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8394,7 +8394,7 @@
             name: a
       rightParenthesis: )
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
   semicolon: ;
 ''');
@@ -8415,7 +8415,7 @@
   keyword: case
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: Enum
         period: .
@@ -8423,9 +8423,9 @@
           token: value
     whenClause: WhenClause
       whenKeyword: when
-      expression: PrefixExpression
+      expression2: PrefixExpression
         operator: !
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: flag
   colon: :
 ''');
@@ -8517,7 +8517,7 @@
   fields
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
   rightParenthesis: )
 ''');
@@ -8539,11 +8539,11 @@
   fields
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -8566,11 +8566,11 @@
     fields
       PatternField
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
       PatternField
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 2
     rightParenthesis: )
   asToken: as
@@ -8649,11 +8649,11 @@
     fields
       PatternField
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
       PatternField
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 2
     rightParenthesis: )
   operator: !
@@ -8677,11 +8677,11 @@
     fields
       PatternField
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
       PatternField
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 2
     rightParenthesis: )
   operator: ?
@@ -8738,7 +8738,7 @@
     rightParenthesis: )
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -8799,7 +8799,7 @@
     operator: ?
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -9026,7 +9026,7 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: IntegerLiteral
+        key2: IntegerLiteral
           literal: 0
         separator: :
         value: DeclaredVariablePattern
@@ -9117,7 +9117,7 @@
     name: y
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -9352,7 +9352,7 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: IntegerLiteral
+        key2: IntegerLiteral
           literal: 0
         separator: :
         value: DeclaredVariablePattern
@@ -9447,7 +9447,7 @@
     name: y
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -9674,7 +9674,7 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: IntegerLiteral
+        key2: IntegerLiteral
           literal: 0
         separator: :
         value: WildcardPattern
@@ -9765,7 +9765,7 @@
     name: _
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -10000,7 +10000,7 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: IntegerLiteral
+        key2: IntegerLiteral
           literal: 0
         separator: :
         value: WildcardPattern
@@ -10095,7 +10095,7 @@
     name: _
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -10113,11 +10113,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: ==
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: |
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -10135,11 +10135,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: >
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: |
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -10203,11 +10203,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: ==
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: <<
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 1
 ''');
   }
@@ -10225,11 +10225,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: >
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: <<
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 1
 ''');
   }
@@ -10247,11 +10247,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: >=
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: <<
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 1
 ''');
   }
@@ -10269,11 +10269,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: <
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: <<
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 1
 ''');
   }
@@ -10291,11 +10291,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: <=
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: <<
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 1
 ''');
   }
@@ -10313,11 +10313,11 @@
     assertParsedNodeText(node, r'''
 RelationalPattern
   operator: !=
-  operand: BinaryExpression
-    leftOperand: IntegerLiteral
+  operand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
     operator: <<
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 1
 ''');
   }
@@ -10335,7 +10335,7 @@
   guardedPattern: GuardedPattern
     pattern: RelationalPattern
       operator: ==
-      operand: IntegerLiteral
+      operand2: IntegerLiteral
         literal: 1
 ''');
   }
@@ -10356,7 +10356,7 @@
   elements
     RelationalPattern
       operator: ==
-      operand: IntegerLiteral
+      operand2: IntegerLiteral
         literal: 1
   rightBracket: ]
 ''');
@@ -10376,11 +10376,11 @@
 LogicalAndPattern
   leftOperand: RelationalPattern
     operator: ==
-    operand: IntegerLiteral
+    operand2: IntegerLiteral
       literal: 1
   operator: &&
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -10398,12 +10398,12 @@
     assertParsedNodeText(node, r'''
 LogicalAndPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: &&
   rightOperand: RelationalPattern
     operator: ==
-    operand: IntegerLiteral
+    operand2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -10422,11 +10422,11 @@
 LogicalOrPattern
   leftOperand: RelationalPattern
     operator: ==
-    operand: IntegerLiteral
+    operand2: IntegerLiteral
       literal: 1
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -10444,12 +10444,12 @@
     assertParsedNodeText(node, r'''
 LogicalOrPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
   operator: ||
   rightOperand: RelationalPattern
     operator: ==
-    operand: IntegerLiteral
+    operand2: IntegerLiteral
       literal: 2
 ''');
   }
@@ -10469,12 +10469,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: SimpleStringLiteral
+      key2: SimpleStringLiteral
         literal: 'a'
       separator: :
       value: RelationalPattern
         operator: ==
-        operand: IntegerLiteral
+        operand2: IntegerLiteral
           literal: 1
   rightBracket: }
 ''');
@@ -10496,7 +10496,7 @@
 NullCheckPattern
   pattern: RelationalPattern
     operator: ==
-    operand: IntegerLiteral
+    operand2: IntegerLiteral
       literal: 1
   operator: ?
 ''');
@@ -10518,7 +10518,7 @@
 NullCheckPattern
   pattern: RelationalPattern
     operator: >
-    operand: IntegerLiteral
+    operand2: IntegerLiteral
       literal: 1
   operator: ?
 ''');
@@ -10549,7 +10549,7 @@
         colon: :
       pattern: RelationalPattern
         operator: ==
-        operand: IntegerLiteral
+        operand2: IntegerLiteral
           literal: 1
   rightParenthesis: )
 ''');
@@ -10570,7 +10570,7 @@
   leftParenthesis: (
   pattern: RelationalPattern
     operator: ==
-    operand: IntegerLiteral
+    operand2: IntegerLiteral
       literal: 1
   rightParenthesis: )
 ''');
@@ -10596,11 +10596,11 @@
         colon: :
       pattern: RelationalPattern
         operator: ==
-        operand: IntegerLiteral
+        operand2: IntegerLiteral
           literal: 1
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -10623,11 +10623,11 @@
     PatternField
       pattern: RelationalPattern
         operator: ==
-        operand: IntegerLiteral
+        operand2: IntegerLiteral
           literal: 1
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 2
   rightParenthesis: )
 ''');
@@ -10793,7 +10793,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -10812,7 +10812,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -10823,10 +10823,10 @@
           name: _
         whenClause: WhenClause
           whenKeyword: when
-          expression: BooleanLiteral
+          expression2: BooleanLiteral
             literal: true
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   rightBracket: }
 ''');
@@ -10843,7 +10843,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -10853,7 +10853,7 @@
         pattern: WildcardPattern
           name: _
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   rightBracket: }
 ''');
@@ -10870,7 +10870,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -10880,7 +10880,7 @@
         pattern: WildcardPattern
           name: _
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   rightBracket: }
 ''');
@@ -10902,7 +10902,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -10915,7 +10915,7 @@
           leftParenthesis: (
           rightParenthesis: )
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   rightBracket: }
 ''');
@@ -10936,11 +10936,11 @@
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     SwitchExpression
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       rightParenthesis: )
       leftBracket: {
@@ -10953,7 +10953,7 @@
               leftParenthesis: (
               rightParenthesis: )
           arrow: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
       rightBracket: }
     IntegerLiteral
@@ -10978,7 +10978,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -10991,7 +10991,7 @@
           leftParenthesis: (
           rightParenthesis: )
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   rightBracket: }
 ''');
@@ -11013,7 +11013,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11021,18 +11021,18 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
       arrow: =>
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'one'
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 2
       arrow: =>
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'two'
   rightBracket: }
 ''');
@@ -11054,7 +11054,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11062,18 +11062,18 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
       arrow: :
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'one'
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 2
       arrow: :
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'two'
   rightBracket: }
 ''');
@@ -11093,7 +11093,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11101,17 +11101,17 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
       arrow: =>
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'one'
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: WildcardPattern
           name: default
       arrow: =>
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'other'
   rightBracket: }
 ''');
@@ -11133,7 +11133,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11144,18 +11144,18 @@
           name: _
         whenClause: WhenClause
           whenKeyword: when
-          expression: RecordLiteral
+          expression2: RecordLiteral
             leftParenthesis: (
             rightParenthesis: )
       arrow: =>
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: WildcardPattern
           name: _
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
   rightBracket: }
 ''');
@@ -11179,7 +11179,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11190,18 +11190,18 @@
           name: _
         whenClause: WhenClause
           whenKeyword: when
-          expression: RecordLiteral
+          expression2: RecordLiteral
             leftParenthesis: (
             rightParenthesis: )
       arrow: =>
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: WildcardPattern
           name: _
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
   rightBracket: }
 ''');
@@ -11223,7 +11223,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11236,7 +11236,7 @@
           leftParenthesis: (
           rightParenthesis: )
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
     SwitchExpressionCase
       guardedPattern: GuardedPattern
@@ -11246,7 +11246,7 @@
           leftParenthesis: (
           rightParenthesis: )
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
   rightBracket: }
 ''');
@@ -11266,7 +11266,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11274,18 +11274,18 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 1
       arrow: =>
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'one'
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 2
       arrow: =>
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: 'two'
   rightBracket: }
 ''');
@@ -11318,7 +11318,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11330,14 +11330,14 @@
             name: int
           name: _
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: WildcardPattern
           name: _
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
   rightBracket: }
 ''');
@@ -11362,7 +11362,7 @@
       leftBracket: [
       elements
         ConstantPattern
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: <empty> <synthetic>
       rightBracket: ]
   colon: :
@@ -11390,18 +11390,18 @@
       leftBracket: {
       elements
         MapPatternEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 0
           separator: :
           value: ConstantPattern
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: <empty> <synthetic>
         MapPatternEntry
-          key: SimpleIdentifier
+          key2: SimpleIdentifier
             token: <empty> <synthetic>
           separator: : <synthetic>
           value: ConstantPattern
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: <empty> <synthetic>
       rightBracket: }
   colon: :
@@ -11427,7 +11427,7 @@
     pattern: ParenthesizedPattern
       leftParenthesis: (
       pattern: ConstantPattern
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: <empty> <synthetic>
       rightParenthesis: )
   colon: :
@@ -11458,7 +11458,7 @@
             name: _
         PatternField
           pattern: ConstantPattern
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: <empty> <synthetic>
       rightParenthesis: )
   colon: :
@@ -11478,7 +11478,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   leftBracket: {
@@ -11486,10 +11486,10 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: <empty> <synthetic>
       arrow: => <synthetic>
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: <empty> <synthetic>
   rightBracket: }
 ''');
@@ -11511,18 +11511,18 @@
     assertParsedNodeText(node, r'''
 ExpressionFunctionBody
   functionDefinition: =>
-  expression: ConditionalExpression
-    condition: AsExpression
-      expression: SimpleIdentifier
+  expression2: ConditionalExpression
+    condition2: AsExpression
+      expression2: SimpleIdentifier
         token: condition
       asOperator: as
       type: NamedType
         name: bool
     question: ?
-    thenExpression: SimpleIdentifier
+    thenExpression2: SimpleIdentifier
       token: when
     colon: :
-    elseExpression: SimpleIdentifier
+    elseExpression2: SimpleIdentifier
       token: otherwise
   semicolon: ;
 ''');
@@ -11554,11 +11554,11 @@
       question: ?
   whenClause: WhenClause
     whenKeyword: when
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: x
       operator: ==
-      rightOperand: NullLiteral
+      rightOperand2: NullLiteral
         literal: null
 ''');
   }
@@ -12114,7 +12114,7 @@
     name: _
   whenClause: WhenClause
     whenKeyword: when
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
 ''');
   }
@@ -12421,7 +12421,7 @@
         name: _
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -12447,7 +12447,7 @@
         name: _
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -12475,7 +12475,7 @@
         name: _
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -12502,7 +12502,7 @@
         name: _
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -12528,7 +12528,7 @@
         name: _
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
@@ -12556,7 +12556,7 @@
         name: _
     rightBracket: ]
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
 ''');
   }
diff --git a/pkg/analyzer/test/generated/recovery_parser_test.dart b/pkg/analyzer/test/generated/recovery_parser_test.dart
index 81ada59..c3ce453 100644
--- a/pkg/analyzer/test/generated/recovery_parser_test.dart
+++ b/pkg/analyzer/test/generated/recovery_parser_test.dart
@@ -25,13 +25,13 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -44,13 +44,13 @@
 //       ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -61,13 +61,13 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -78,13 +78,13 @@
 //             ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -99,17 +99,17 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: *
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -124,17 +124,17 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: +
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: *
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -147,17 +147,17 @@
 //               ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -168,17 +168,17 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IndexExpression
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
     period: .
     identifier: SimpleIdentifier
       token: b
   leftBracket: [
-  index: SimpleIdentifier
+  index2: SimpleIdentifier
     token: <empty> <synthetic>
   rightBracket: ]
 ''');
@@ -190,17 +190,17 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: =
-  rightHandSide: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  rightHandSide2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: y
     operator: =
-    rightHandSide: IntegerLiteral
+    rightHandSide2: IntegerLiteral
       literal: 0
 ''');
   }
@@ -211,17 +211,17 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
   operator: =
-  rightHandSide: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  rightHandSide2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: =
-    rightHandSide: IntegerLiteral
+    rightHandSide2: IntegerLiteral
       literal: 0
 ''');
   }
@@ -232,17 +232,17 @@
 //             ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
   operator: =
-  rightHandSide: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  rightHandSide2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: y
     operator: =
-    rightHandSide: SimpleIdentifier
+    rightHandSide2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -253,13 +253,13 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
 ''');
   }
@@ -270,13 +270,13 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -287,13 +287,13 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -306,13 +306,13 @@
 //       ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -323,13 +323,13 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -340,13 +340,13 @@
 //             ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -361,17 +361,17 @@
 //           ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: ==
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -386,17 +386,17 @@
 //           ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: &&
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: ==
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -409,17 +409,17 @@
 //                ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: &
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: &
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -430,13 +430,13 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -449,13 +449,13 @@
 //       ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -466,13 +466,13 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -483,13 +483,13 @@
 //             ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -504,17 +504,17 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: ^
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -529,17 +529,17 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: |
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: ^
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -552,17 +552,17 @@
 //                ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: |
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -573,13 +573,13 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -592,13 +592,13 @@
 //       ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -609,13 +609,13 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -626,13 +626,13 @@
 //             ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -647,17 +647,17 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: &
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -672,17 +672,17 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ^
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: &
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -695,17 +695,17 @@
 //                ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: ^
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: ^
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -809,16 +809,16 @@
 //             ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: x
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: y
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -829,16 +829,16 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: x
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: <empty> <synthetic>
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -849,16 +849,16 @@
 //          ^^^^^
 // [diag.missingAssignableSelector] Missing selector such as '.identifier' or '[0]'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: x
   question: ?
-  thenExpression: SuperExpression
+  thenExpression2: SuperExpression
     superKeyword: super
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: z
 ''');
   }
@@ -869,16 +869,16 @@
 //              ^^^^^
 // [diag.missingAssignableSelector] Missing selector such as '.identifier' or '[0]'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: x
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: z
   colon: :
-  elseExpression: SuperExpression
+  elseExpression2: SuperExpression
     superKeyword: super
 ''');
   }
@@ -915,7 +915,7 @@
 //       ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 DotShorthandPropertyAccess
   period: .
@@ -931,13 +931,13 @@
 //      ^^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -950,13 +950,13 @@
 //        ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -967,13 +967,13 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -984,13 +984,13 @@
 //              ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -1005,14 +1005,14 @@
 //           ^
 // [diag.expectedTypeName] Expected a type name.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ==
-  rightOperand: IsExpression
-    expression: SimpleIdentifier
+  rightOperand2: IsExpression
+    expression2: SimpleIdentifier
       token: <empty> <synthetic>
     isOperator: is
     type: NamedType
@@ -1029,17 +1029,17 @@
 //                  ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: ==
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -1050,13 +1050,13 @@
 //           ^^^^^
 // [diag.missingAssignableSelector] Missing selector such as '.identifier' or '[0]'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: IntegerLiteral
+  leftOperand2: IntegerLiteral
     literal: 1
   operator: ==
-  rightOperand: SuperExpression
+  rightOperand2: SuperExpression
     superKeyword: super
 ''');
   }
@@ -1071,7 +1071,7 @@
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     SimpleIdentifier
       token: <empty> <synthetic>
     IntegerLiteral
@@ -1094,7 +1094,7 @@
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IntegerLiteral
@@ -1115,7 +1115,7 @@
     assertParsedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 1
     IntegerLiteral
@@ -1155,7 +1155,7 @@
                 fieldName: SimpleIdentifier
                   token: a
                 equals: =
-                expression: RecordLiteral
+                expression2: RecordLiteral
                   leftParenthesis: (
                   rightParenthesis: )
             body: BlockFunctionBody
@@ -1181,21 +1181,21 @@
 //                  ^
 // [diag.unexpectedToken] Unexpected text ';'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
   methodName: SimpleIdentifier
     token: m
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       FunctionExpression
         parameters: FormalParameterList
           leftParenthesis: (
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
     rightParenthesis: )
 ''');
@@ -1214,16 +1214,16 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   rightParenthesis: )
   thenStatement: ExpressionStatement
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: f
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: x
         rightParenthesis: )
@@ -1307,16 +1307,16 @@
 // [diag.expectedToken] Expected to find ':'.
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: x
   question: ?
-  thenExpression: IntegerLiteral
+  thenExpression2: IntegerLiteral
     literal: 0
   colon: : <synthetic>
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -1564,7 +1564,7 @@
 //         ^
 // [diag.unexpectedToken] Unexpected text 'a'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -1572,7 +1572,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
 ''');
   }
@@ -1583,7 +1583,7 @@
 //         ^
 // [diag.unexpectedToken] Unexpected text 'a'.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 FunctionExpression
   parameters: FormalParameterList
@@ -1635,16 +1635,16 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BinaryExpression
-                  leftOperand: SimpleIdentifier
+                expression2: BinaryExpression
+                  leftOperand2: SimpleIdentifier
                     token: map
                   operator: ==
-                  rightOperand: NullLiteral
+                  rightOperand2: NullLiteral
                     literal: null
                 rightParenthesis: )
                 thenStatement: ReturnStatement
                   returnKeyword: return
-                  expression: NullLiteral
+                  expression2: NullLiteral
                     literal: null
                   semicolon: ;
               VariableDeclarationStatement
@@ -1663,7 +1663,7 @@
                     VariableDeclaration
                       name: result
                       equals: =
-                      initializer: InstanceCreationExpression
+                      initializer2: InstanceCreationExpression
                         keyword: new
                         constructorName: ConstructorName
                           type: NamedType
@@ -1681,15 +1681,15 @@
                           rightParenthesis: )
                 semicolon: ;
               ExpressionStatement
-                expression: MethodInvocation
-                  target: SimpleIdentifier
+                expression2: MethodInvocation
+                  target2: SimpleIdentifier
                     token: map
                   operator: .
                   methodName: SimpleIdentifier
                     token: forEach
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       FunctionExpression
                         parameters: FormalParameterList
                           leftParenthesis: (
@@ -1711,25 +1711,25 @@
                             leftBracket: {
                             statements
                               ExpressionStatement
-                                expression: AssignmentExpression
-                                  leftHandSide: IndexExpression
-                                    target: SimpleIdentifier
+                                expression2: AssignmentExpression
+                                  leftHandSide2: IndexExpression
+                                    target2: SimpleIdentifier
                                       token: result
                                     leftBracket: [
-                                    index: InstanceCreationExpression
+                                    index2: InstanceCreationExpression
                                       keyword: new
                                       constructorName: ConstructorName
                                         type: NamedType
                                           name: Symbol
                                       argumentList: ArgumentList
                                         leftParenthesis: (
-                                        arguments
+                                        arguments2
                                           SimpleIdentifier
                                             token: name
                                         rightParenthesis: )
                                     rightBracket: ]
                                   operator: =
-                                  rightHandSide: SimpleIdentifier
+                                  rightHandSide2: SimpleIdentifier
                                     token: value
                                 semicolon: ;
                             rightBracket: }
@@ -1737,7 +1737,7 @@
                 semicolon: ;
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: result
                 semicolon: ;
             rightBracket: }
@@ -2439,7 +2439,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SetOrMapLiteral
+                  initializer2: SetOrMapLiteral
                     typeArguments: TypeArgumentList
                       leftBracket: <
                       arguments
@@ -2572,8 +2572,8 @@
                   IfStatement
                     ifKeyword: if
                     leftParenthesis: (
-                    expression: IsExpression
-                      expression: SimpleIdentifier
+                    expression2: IsExpression
+                      expression2: SimpleIdentifier
                         token: x
                       isOperator: is
                       type: NamedType
@@ -2585,8 +2585,8 @@
                   IfStatement
                     ifKeyword: if
                     leftParenthesis: (
-                    expression: IsExpression
-                      expression: SimpleIdentifier
+                    expression2: IsExpression
+                      expression2: SimpleIdentifier
                         token: x
                       isOperator: is
                       notOperator: !
@@ -2594,7 +2594,7 @@
                         name: <empty> <synthetic>
                     rightParenthesis: )
                     thenStatement: ExpressionStatement
-                      expression: SimpleIdentifier
+                      expression2: SimpleIdentifier
                         token: <empty> <synthetic>
                       semicolon: ; <synthetic>
                 rightBracket: }
@@ -2631,7 +2631,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: NullLiteral
+              expression2: NullLiteral
                 literal: null
               semicolon: ;
         rightBracket: }
@@ -2701,7 +2701,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: NullLiteral
+              expression2: NullLiteral
                 literal: null
               semicolon: ;
         rightBracket: }
@@ -2735,7 +2735,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: NullLiteral
+              expression2: NullLiteral
                 literal: null
               semicolon: ;
         rightBracket: }
@@ -2771,7 +2771,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: NullLiteral
+              expression2: NullLiteral
                 literal: null
               semicolon: ;
         rightBracket: }
@@ -2806,13 +2806,13 @@
 //      ^^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2825,13 +2825,13 @@
 //        ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -2842,13 +2842,13 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -2863,17 +2863,17 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -2888,17 +2888,17 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: &&
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: |
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -2909,13 +2909,13 @@
 //      ^^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -2928,13 +2928,13 @@
 //        ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -2945,13 +2945,13 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -2966,17 +2966,17 @@
 //           ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: &&
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -2991,17 +2991,17 @@
 //           ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: ||
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: &&
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -3042,23 +3042,23 @@
 //             ^
 // [diag.expectedToken] Expected to find ','.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 MethodInvocation
   methodName: SimpleIdentifier
     token: f
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: x
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 1
       NamedArgument
         name: y
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 2
     rightParenthesis: )
 ''');
@@ -3183,7 +3183,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: SimpleStringLiteral
+            initializer2: SimpleStringLiteral
               literal: ""
       semicolon: ;
 ''');
@@ -3195,13 +3195,13 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3214,13 +3214,13 @@
 //       ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3231,13 +3231,13 @@
 //         ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3248,13 +3248,13 @@
 //             ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3265,15 +3265,15 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: PrefixExpression
+  leftOperand2: PrefixExpression
     operator: -
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: x
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3284,15 +3284,15 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: *
-  rightOperand: PrefixExpression
+  rightOperand2: PrefixExpression
     operator: -
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: y
 ''');
   }
@@ -3306,17 +3306,17 @@
 //                  ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: ==
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3349,7 +3349,7 @@
                   name: c
                   defaultClause: FormalParameterDefaultClause
                     separator: :
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
                 RegularFormalParameter
                   type: NamedType
@@ -3357,7 +3357,7 @@
                   name: d
                   defaultClause: FormalParameterDefaultClause
                     separator: :
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
                 RegularFormalParameter
                   name: e
@@ -3440,11 +3440,11 @@
 //       ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3458,16 +3458,16 @@
 // [diag.expectedToken] Expected to find ':'.
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: <empty> <synthetic>
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: a
   colon: : <synthetic>
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3478,10 +3478,10 @@
 //      ^^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: <empty> <synthetic>
   isOperator: is
   type: NamedType
@@ -3497,10 +3497,10 @@
 //        ^
 // [diag.expectedTypeName] Expected a type name.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: <empty> <synthetic>
   isOperator: is
   type: NamedType
@@ -3514,10 +3514,10 @@
 //          ^
 // [diag.expectedTypeName] Expected a type name.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   isOperator: is
   type: NamedType
@@ -3535,14 +3535,14 @@
 //           ^
 // [diag.expectedTypeName] Expected a type name.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 IsExpression
-  expression: BinaryExpression
-    leftOperand: SimpleIdentifier
+  expression2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: <<
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   isOperator: is
   type: NamedType
@@ -3556,13 +3556,13 @@
 //      ^^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
 ''');
   }
@@ -3575,13 +3575,13 @@
 //        ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3592,13 +3592,13 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3609,13 +3609,13 @@
 //              ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3630,17 +3630,17 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3655,17 +3655,17 @@
 //          ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: <<
-  rightOperand: BinaryExpression
-    leftOperand: SimpleIdentifier
+  rightOperand2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: <empty> <synthetic>
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
 ''');
   }
@@ -3678,17 +3678,17 @@
 //                 ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: BinaryExpression
-    leftOperand: SuperExpression
+  leftOperand2: BinaryExpression
+    leftOperand2: SuperExpression
       superKeyword: super
     operator: <<
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: <empty> <synthetic>
   operator: <<
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
 ''');
   }
@@ -3721,13 +3721,13 @@
 //      ^
 // [diag.missingIdentifier] Expected an identifier.
 ''');
-    var node = parseResult.findNode.singleVariableDeclaration.initializer!;
+    var node = parseResult.findNode.singleVariableDeclaration.initializer2!;
     assertParsedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 2
 ''');
   }
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 4c66139..5831fbd 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -253,7 +253,7 @@
     var node = result.findNode.methodInvocation('p.m()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: p
     element: <testLibrary>::@function::f::@formalParameter::p
     staticType: B
diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart
index 016307e..62b2be1 100644
--- a/pkg/analyzer/test/generated/resolver_test_case.dart
+++ b/pkg/analyzer/test/generated/resolver_test_case.dart
@@ -71,7 +71,7 @@
     String type,
   ) {
     var declaration = result.findNode.variableDeclaration(name);
-    var initializer = declaration.initializer!;
+    var initializer = declaration.initializer2!;
     assertType(initializer.staticType, type);
   }
 
diff --git a/pkg/analyzer/test/generated/simple_parser_test.dart b/pkg/analyzer/test/generated/simple_parser_test.dart
index b37e393..86d67b4 100644
--- a/pkg/analyzer/test/generated/simple_parser_test.dart
+++ b/pkg/analyzer/test/generated/simple_parser_test.dart
@@ -51,7 +51,7 @@
                       token: bar
                   arguments: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       ListLiteral
                         constKeyword: const
                         leftBracket: [
@@ -59,27 +59,27 @@
                       ListLiteral
                         constKeyword: const
                         leftBracket: [
-                        elements
+                        elements2
                           IntegerLiteral
                             literal: 1
                         rightBracket: ]
                       SetOrMapLiteral
                         constKeyword: const
                         leftBracket: {
-                        elements
+                        elements2
                           MapLiteralEntry
-                            key: SimpleStringLiteral
+                            key2: SimpleStringLiteral
                               literal: ""
                             separator: :
-                            value: SimpleStringLiteral
+                            value2: SimpleStringLiteral
                               literal: r""
                         rightBracket: }
                         isMap: false
                       BinaryExpression
-                        leftOperand: IntegerLiteral
+                        leftOperand2: IntegerLiteral
                           literal: 0xFF
                         operator: +
-                        rightOperand: IntegerLiteral
+                        rightOperand2: IntegerLiteral
                           literal: 2
                       DoubleLiteral
                         literal: .3
@@ -172,8 +172,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PropertyAccess
-                  target: ThisExpression
+                expression2: PropertyAccess
+                  target2: ThisExpression
                     thisKeyword: this
                   operator: .
                   propertyName: SimpleIdentifier
@@ -278,7 +278,7 @@
     token: A
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: x
       SimpleIdentifier
@@ -322,7 +322,7 @@
       token: B
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: x
       SimpleIdentifier
@@ -372,7 +372,7 @@
     token: C
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: x
       SimpleIdentifier
@@ -386,7 +386,7 @@
 var v = m(3);
 ''');
     var node =
-        parseResult.findNode.singleMethodInvocation.argumentList.arguments[0];
+        parseResult.findNode.singleMethodInvocation.argumentList.arguments2[0];
     assertParsedNodeText(node, r'''
 IntegerLiteral
   literal: 3
@@ -398,12 +398,12 @@
 var v = m(foo: "a");
 ''');
     var node =
-        parseResult.findNode.singleMethodInvocation.argumentList.arguments[0];
+        parseResult.findNode.singleMethodInvocation.argumentList.arguments2[0];
     assertParsedNodeText(node, r'''
 NamedArgument
   name: foo
   colon: :
-  argumentExpression: SimpleStringLiteral
+  argumentExpression2: SimpleStringLiteral
     literal: "a"
 ''');
   }
@@ -428,7 +428,7 @@
     assertParsedNodeText(node, r'''
 ArgumentList
   leftParenthesis: (
-  arguments
+  arguments2
     SimpleIdentifier
       token: w
     SimpleIdentifier
@@ -436,12 +436,12 @@
     NamedArgument
       name: y
       colon: :
-      argumentExpression: SimpleIdentifier
+      argumentExpression2: SimpleIdentifier
         token: y
     NamedArgument
       name: z
       colon: :
-      argumentExpression: SimpleIdentifier
+      argumentExpression2: SimpleIdentifier
         token: z
   rightParenthesis: )
 ''');
@@ -455,7 +455,7 @@
     assertParsedNodeText(node, r'''
 ArgumentList
   leftParenthesis: (
-  arguments
+  arguments2
     SimpleIdentifier
       token: x
     SimpleIdentifier
@@ -474,16 +474,16 @@
     assertParsedNodeText(node, r'''
 ArgumentList
   leftParenthesis: (
-  arguments
+  arguments2
     NamedArgument
       name: x
       colon: :
-      argumentExpression: SimpleIdentifier
+      argumentExpression2: SimpleIdentifier
         token: x
     NamedArgument
       name: y
       colon: :
-      argumentExpression: SimpleIdentifier
+      argumentExpression2: SimpleIdentifier
         token: y
   rightParenthesis: )
 ''');
@@ -497,7 +497,7 @@
     assertParsedNodeText(node, r'''
 ArgumentList
   leftParenthesis: (
-  arguments
+  arguments2
     SimpleIdentifier
       token: x
     SimpleIdentifier
@@ -516,7 +516,7 @@
     assertParsedNodeText(node, r'''
 ArgumentList
   leftParenthesis: (
-  arguments
+  arguments2
     MethodInvocation
       methodName: SimpleIdentifier
         token: a
@@ -530,7 +530,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: d
         rightParenthesis: )
@@ -546,16 +546,16 @@
     assertParsedNodeText(node, r'''
 ArgumentList
   leftParenthesis: (
-  arguments
+  arguments2
     BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: a
       operator: <
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: b
     BinaryExpression
-      leftOperand: PropertyAccess
-        target: PrefixedIdentifier
+      leftOperand2: PropertyAccess
+        target2: PrefixedIdentifier
           prefix: SimpleIdentifier
             token: p
           period: .
@@ -565,9 +565,9 @@
         propertyName: SimpleIdentifier
           token: c
       operator: >
-      rightOperand: ParenthesizedExpression
+      rightOperand2: ParenthesizedExpression
         leftParenthesis: (
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: d
         rightParenthesis: )
   rightParenthesis: )
@@ -582,7 +582,7 @@
     assertParsedNodeText(node, r'''
 ArgumentList
   leftParenthesis: (
-  arguments
+  arguments2
     MethodInvocation
       methodName: SimpleIdentifier
         token: a
@@ -599,7 +599,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: d
         rightParenthesis: )
@@ -1076,7 +1076,7 @@
             token: B
           arguments: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: x
             rightParenthesis: )
@@ -1142,7 +1142,7 @@
   documentationComment: Comment
     references
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: <empty> <synthetic>
     tokens
       /** [ some text */
@@ -1340,7 +1340,7 @@
       documentationComment: Comment
         references
           CommentReference
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: a
         tokens
           /** [a] */
@@ -1512,7 +1512,7 @@
     assertParsedNodeText(node, r'''
 ExpressionFunctionBody
   functionDefinition: =>
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
   semicolon: ;
 ''');
@@ -1528,7 +1528,7 @@
 ExpressionFunctionBody
   keyword: async
   functionDefinition: =>
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
   semicolon: ;
 ''');
@@ -1639,8 +1639,8 @@
           VariableDeclaration
             name: c
             equals: =
-            initializer: MethodInvocation
-              target: InstanceCreationExpression
+            initializer2: MethodInvocation
+              target2: InstanceCreationExpression
                 keyword: new
                 constructorName: ConstructorName
                   type: NamedType
@@ -1656,14 +1656,14 @@
                     token: sync
                 argumentList: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     FunctionExpression
                       parameters: FormalParameterList
                         leftParenthesis: (
                         rightParenthesis: )
                       body: ExpressionFunctionBody
                         functionDefinition: =>
-                        expression: IntegerLiteral
+                        expression2: IntegerLiteral
                           literal: 3
                   rightParenthesis: )
               operator: .
@@ -1677,7 +1677,7 @@
                 rightBracket: >
               argumentList: ArgumentList
                 leftParenthesis: (
-                arguments
+                arguments2
                   FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
@@ -1692,7 +1692,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: SimpleIdentifier
+                      expression2: SimpleIdentifier
                         token: e
                 rightParenthesis: )
       semicolon: ;
@@ -1714,8 +1714,8 @@
           VariableDeclaration
             name: c
             equals: =
-            initializer: MethodInvocation
-              target: InstanceCreationExpression
+            initializer2: MethodInvocation
+              target2: InstanceCreationExpression
                 constructorName: ConstructorName
                   type: NamedType
                     name: Future
@@ -1730,14 +1730,14 @@
                     token: sync
                 argumentList: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     FunctionExpression
                       parameters: FormalParameterList
                         leftParenthesis: (
                         rightParenthesis: )
                       body: ExpressionFunctionBody
                         functionDefinition: =>
-                        expression: IntegerLiteral
+                        expression2: IntegerLiteral
                           literal: 3
                   rightParenthesis: )
               operator: .
@@ -1751,7 +1751,7 @@
                 rightBracket: >
               argumentList: ArgumentList
                 leftParenthesis: (
-                arguments
+                arguments2
                   FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
@@ -1766,7 +1766,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: SimpleIdentifier
+                      expression2: SimpleIdentifier
                         token: e
                 rightParenthesis: )
       semicolon: ;
@@ -1789,7 +1789,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             constructorName: ConstructorName
               type: NamedType
                 name: C
@@ -1825,9 +1825,9 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: MethodInvocation
-            target: FunctionReference
-              function: SimpleIdentifier
+          expression2: MethodInvocation
+            target2: FunctionReference
+              function2: SimpleIdentifier
                 token: C
               typeArguments: TypeArgumentList
                 leftBracket: <
@@ -1867,7 +1867,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             constructorName: ConstructorName
               type: NamedType
                 importPrefix: ImportPrefixReference
@@ -1936,7 +1936,7 @@
                     VariableDeclaration
                       name: c
                       equals: =
-                      initializer: MethodInvocation
+                      initializer2: MethodInvocation
                         methodName: SimpleIdentifier
                           token: C
                         typeArguments: TypeArgumentList
@@ -2084,7 +2084,7 @@
     assertParsedNodeText(node, r'''
 ReturnStatement
   returnKeyword: return
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
   semicolon: ;
 ''');
@@ -2154,7 +2154,7 @@
         rightParenthesis: )
       body: ExpressionFunctionBody
         functionDefinition: =>
-        expression: NullLiteral
+        expression2: NullLiteral
           literal: null
         semicolon: ;
 ''');
@@ -3153,7 +3153,7 @@
 VariableDeclaration
   name: a
   equals: =
-  initializer: SimpleIdentifier
+  initializer2: SimpleIdentifier
     token: b
 ''');
   }
@@ -3235,7 +3235,7 @@
       VariableDeclaration
         name: a
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 0
   semicolon: ;
 ''');
@@ -3296,7 +3296,7 @@
       VariableDeclaration
         name: a
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 0
   semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/generated/simple_resolver_test.dart b/pkg/analyzer/test/generated/simple_resolver_test.dart
index 7c7ffa8..5556c07 100644
--- a/pkg/analyzer/test/generated/simple_resolver_test.dart
+++ b/pkg/analyzer/test/generated/simple_resolver_test.dart
@@ -127,7 +127,7 @@
 class A {
   set sss(x) {}
 }''');
-    var rhs = result.findNode.assignment(' = 0;').rightHandSide;
+    var rhs = result.findNode.assignment(' = 0;').rightHandSide2;
     expect(rhs.correspondingParameter, result.findElement.parameter('x'));
   }
 
@@ -143,7 +143,7 @@
 class B {
   set sss(x) {}
 }''');
-    var rhs = result.findNode.assignment(' = 0;').rightHandSide;
+    var rhs = result.findNode.assignment(' = 0;').rightHandSide2;
     expect(rhs.correspondingParameter, result.findElement.parameter('x'));
   }
 
@@ -156,7 +156,7 @@
 class A {
   set sss(x) {}
 }''');
-    var rhs = result.findNode.assignment(' = 0;').rightHandSide;
+    var rhs = result.findNode.assignment(' = 0;').rightHandSide2;
     expect(rhs.correspondingParameter, result.findElement.parameter('x'));
   }
 
@@ -172,7 +172,7 @@
 class B {
   set sss(x) {}
 }''');
-    var rhs = result.findNode.assignment(' = 0;').rightHandSide;
+    var rhs = result.findNode.assignment(' = 0;').rightHandSide2;
     expect(rhs.correspondingParameter, result.findElement.parameter('x'));
   }
 
@@ -1376,7 +1376,7 @@
 
     var invocation = result.findNode.methodInvocation(');');
 
-    var arguments = invocation.argumentList.arguments;
+    var arguments = invocation.argumentList.arguments2;
 
     var argumentCount = arguments.length;
     expect(argumentCount, indices.length);
diff --git a/pkg/analyzer/test/generated/statement_parser_test.dart b/pkg/analyzer/test/generated/statement_parser_test.dart
index 769ec0f..29a5c89 100644
--- a/pkg/analyzer/test/generated/statement_parser_test.dart
+++ b/pkg/analyzer/test/generated/statement_parser_test.dart
@@ -29,11 +29,11 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: FunctionExpressionInvocation
-          function: ParenthesizedExpression
+      expression2: FunctionExpressionInvocation
+        function2: FunctionExpressionInvocation
+          function2: ParenthesizedExpression
             leftParenthesis: (
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: f
             rightParenthesis: )
           argumentList: ArgumentList
@@ -355,7 +355,7 @@
     AssertStatement
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
       rightParenthesis: )
       semicolon: ;
@@ -377,12 +377,12 @@
     AssertStatement
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
       comma: ,
-      message: ThrowExpression
+      message2: ThrowExpression
         throwKeyword: throw
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: "foo"
       rightParenthesis: )
       semicolon: ;
@@ -404,10 +404,10 @@
     AssertStatement
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
       comma: ,
-      message: SimpleStringLiteral
+      message2: SimpleStringLiteral
         literal: "foo"
       rightParenthesis: )
       semicolon: ;
@@ -429,10 +429,10 @@
     AssertStatement
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
       comma: ,
-      message: SimpleStringLiteral
+      message2: SimpleStringLiteral
         literal: "m"
       rightParenthesis: )
       semicolon: ;
@@ -454,7 +454,7 @@
     AssertStatement
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
       rightParenthesis: )
       semicolon: ;
@@ -525,7 +525,7 @@
       statement: WhileStatement
         whileKeyword: while
         leftParenthesis: (
-        condition: BooleanLiteral
+        condition2: BooleanLiteral
           literal: true
         rightParenthesis: )
         body: Block
@@ -557,7 +557,7 @@
     WhileStatement
       whileKeyword: while
       leftParenthesis: (
-      condition: BooleanLiteral
+      condition2: BooleanLiteral
         literal: true
       rightParenthesis: )
       body: Block
@@ -593,7 +593,7 @@
       statement: WhileStatement
         whileKeyword: while
         leftParenthesis: (
-        condition: BooleanLiteral
+        condition2: BooleanLiteral
           literal: true
         rightParenthesis: )
         body: Block
@@ -625,7 +625,7 @@
     WhileStatement
       whileKeyword: while
       leftParenthesis: (
-      condition: BooleanLiteral
+      condition2: BooleanLiteral
         literal: true
       rightParenthesis: )
       body: Block
@@ -657,7 +657,7 @@
         rightBracket: }
       whileKeyword: while
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
       rightParenthesis: )
       semicolon: ;
@@ -689,12 +689,12 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ReturnStatement
                 returnKeyword: return
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
                 semicolon: ;
             rightBracket: }
@@ -732,7 +732,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: $code
       semicolon: ; <synthetic>
   rightBracket: }
@@ -1187,10 +1187,10 @@
       forLoopParts: ForPartsWithExpression
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
       rightParenthesis: )
@@ -1218,10 +1218,10 @@
       forLoopParts: ForPartsWithExpression
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
       rightParenthesis: )
@@ -1249,15 +1249,15 @@
       forLoopParts: ForPartsWithExpression
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1285,15 +1285,15 @@
       forLoopParts: ForPartsWithExpression
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1319,21 +1319,21 @@
       forKeyword: for
       leftParenthesis: (
       forLoopParts: ForPartsWithExpression
-        initialization: PostfixExpression
-          operand: SimpleIdentifier
+        initialization2: PostfixExpression
+          operand2: SimpleIdentifier
             token: i
           operator: --
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1359,21 +1359,21 @@
       forKeyword: for
       leftParenthesis: (
       forLoopParts: ForPartsWithExpression
-        initialization: PostfixExpression
-          operand: SimpleIdentifier
+        initialization2: PostfixExpression
+          operand2: SimpleIdentifier
             token: i
           operator: --
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1405,7 +1405,7 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         rightSeparator: ;
@@ -1438,7 +1438,7 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         rightSeparator: ;
@@ -1476,7 +1476,7 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         rightSeparator: ;
@@ -1514,7 +1514,7 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         rightSeparator: ;
@@ -1547,14 +1547,14 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
       rightParenthesis: )
@@ -1586,14 +1586,14 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
       rightParenthesis: )
@@ -1625,19 +1625,19 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1669,19 +1669,19 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: count
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1714,28 +1714,28 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
             VariableDeclaration
               name: j
               equals: =
-              initializer: SimpleIdentifier
+              initializer2: SimpleIdentifier
                 token: count
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: j
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: j
             operator: --
       rightParenthesis: )
@@ -1768,28 +1768,28 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
             VariableDeclaration
               name: j
               equals: =
-              initializer: SimpleIdentifier
+              initializer2: SimpleIdentifier
                 token: count
         leftSeparator: ;
         condition: BinaryExpression
-          leftOperand: SimpleIdentifier
+          leftOperand2: SimpleIdentifier
             token: i
           operator: <
-          rightOperand: SimpleIdentifier
+          rightOperand2: SimpleIdentifier
             token: j
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: j
             operator: --
       rightParenthesis: )
@@ -1821,13 +1821,13 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1859,13 +1859,13 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         leftSeparator: ;
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1893,9 +1893,9 @@
       forLoopParts: ForPartsWithExpression
         leftSeparator: ;
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1923,9 +1923,9 @@
       forLoopParts: ForPartsWithExpression
         leftSeparator: ;
         rightSeparator: ;
-        updaters
+        updaters2
           PostfixExpression
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: i
             operator: ++
       rightParenthesis: )
@@ -1970,11 +1970,11 @@
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: BinaryExpression
-              leftOperand: SimpleIdentifier
+            expression2: BinaryExpression
+              leftOperand2: SimpleIdentifier
                 token: p
               operator: *
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2
             semicolon: ;
   rightBracket: }
@@ -2021,11 +2021,11 @@
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: BinaryExpression
-              leftOperand: SimpleIdentifier
+            expression2: BinaryExpression
+              leftOperand2: SimpleIdentifier
                 token: p
               operator: *
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2
             semicolon: ;
   rightBracket: }
@@ -2070,11 +2070,11 @@
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: BinaryExpression
-              leftOperand: SimpleIdentifier
+            expression2: BinaryExpression
+              leftOperand2: SimpleIdentifier
                 token: p
               operator: *
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2
             semicolon: ;
   rightBracket: }
@@ -2096,7 +2096,7 @@
     IfStatement
       ifKeyword: if
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       rightParenthesis: )
       thenStatement: Block
@@ -2127,7 +2127,7 @@
     IfStatement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       rightParenthesis: )
       thenStatement: EmptyStatement
@@ -2156,28 +2156,28 @@
     IfStatement
       ifKeyword: if
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       rightParenthesis: )
       thenStatement: ExpressionStatement
-        expression: MethodInvocation
+        expression2: MethodInvocation
           methodName: SimpleIdentifier
             token: f
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: x
             rightParenthesis: )
         semicolon: ;
       elseKeyword: else
       elseStatement: ExpressionStatement
-        expression: MethodInvocation
+        expression2: MethodInvocation
           methodName: SimpleIdentifier
             token: f
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: y
             rightParenthesis: )
@@ -2200,7 +2200,7 @@
     IfStatement
       ifKeyword: if
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       rightParenthesis: )
       thenStatement: Block
@@ -2224,16 +2224,16 @@
     IfStatement
       ifKeyword: if
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       rightParenthesis: )
       thenStatement: ExpressionStatement
-        expression: MethodInvocation
+        expression2: MethodInvocation
           methodName: SimpleIdentifier
             token: f
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: x
             rightParenthesis: )
@@ -2279,7 +2279,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ListLiteral
+      expression2: ListLiteral
         constKeyword: const
         leftBracket: [
         rightBracket: ]
@@ -2300,10 +2300,10 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: ListLiteral
+      expression2: ListLiteral
         constKeyword: const
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 1
           IntegerLiteral
@@ -2326,7 +2326,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         constKeyword: const
         leftBracket: {
         rightBracket: }
@@ -2348,15 +2348,15 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: SetOrMapLiteral
+      expression2: SetOrMapLiteral
         constKeyword: const
         leftBracket: {
-        elements
+        elements2
           MapLiteralEntry
-            key: SimpleStringLiteral
+            key2: SimpleStringLiteral
               literal: 'a'
             separator: :
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 1
         rightBracket: }
         isMap: false
@@ -2377,7 +2377,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: InstanceCreationExpression
+      expression2: InstanceCreationExpression
         keyword: const
         constructorName: ConstructorName
           type: NamedType
@@ -2402,7 +2402,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: InstanceCreationExpression
+      expression2: InstanceCreationExpression
         keyword: const
         constructorName: ConstructorName
           type: NamedType
@@ -2438,7 +2438,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: InstanceCreationExpression
+      expression2: InstanceCreationExpression
         keyword: const
         constructorName: ConstructorName
           type: NamedType
@@ -2478,8 +2478,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
-        target: InstanceCreationExpression
+      expression2: MethodInvocation
+        target2: InstanceCreationExpression
           keyword: new
           constructorName: ConstructorName
             type: NamedType
@@ -2510,7 +2510,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: false
       semicolon: ;
   rightBracket: }
@@ -2601,9 +2601,9 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: AssignmentExpression
-        leftHandSide: IndexExpression
-          target: FunctionExpression
+      expression2: AssignmentExpression
+        leftHandSide2: IndexExpression
+          target2: FunctionExpression
             parameters: FormalParameterList
               leftParenthesis: (
               rightParenthesis: )
@@ -2612,11 +2612,11 @@
                 leftBracket: {
                 rightBracket: }
           leftBracket: [
-          index: IntegerLiteral
+          index2: IntegerLiteral
             literal: 0
           rightBracket: ]
         operator: =
-        rightHandSide: NullLiteral
+        rightHandSide2: NullLiteral
           literal: null
       semicolon: ;
   rightBracket: }
@@ -2635,7 +2635,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: f
         argumentList: ArgumentList
@@ -2660,8 +2660,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: FunctionExpression
+      expression2: FunctionExpressionInvocation
+        function2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             requiredPositionalFormalParameters
@@ -2679,17 +2679,17 @@
               statements
                 ReturnStatement
                   returnKeyword: return
-                  expression: BinaryExpression
-                    leftOperand: SimpleIdentifier
+                  expression2: BinaryExpression
+                    leftOperand2: SimpleIdentifier
                       token: a
                     operator: +
-                    rightOperand: SimpleIdentifier
+                    rightOperand2: SimpleIdentifier
                       token: a
                   semicolon: ;
               rightBracket: }
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             IntegerLiteral
               literal: 3
           rightParenthesis: )
@@ -2747,7 +2747,7 @@
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: NullLiteral
+            expression2: NullLiteral
               literal: null
             semicolon: ;
   rightBracket: }
@@ -2766,7 +2766,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: NullLiteral
+      expression2: NullLiteral
         literal: null
       semicolon: ;
   rightBracket: }
@@ -2785,8 +2785,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
-        target: SimpleIdentifier
+      expression2: MethodInvocation
+        target2: SimpleIdentifier
           token: library
         operator: .
         methodName: SimpleIdentifier
@@ -2811,7 +2811,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       semicolon: ;
   rightBracket: }
@@ -2830,8 +2830,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: AsExpression
-        expression: PrefixedIdentifier
+      expression2: AsExpression
+        expression2: PrefixedIdentifier
           prefix: SimpleIdentifier
             token: double
           period: .
@@ -2865,7 +2865,7 @@
           VariableDeclaration
             name: Function
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
   rightBracket: }
@@ -3404,7 +3404,7 @@
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: NullLiteral
+            expression2: NullLiteral
               literal: null
             semicolon: ;
   rightBracket: }
@@ -3423,7 +3423,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
       semicolon: ;
   rightBracket: }
@@ -3583,7 +3583,7 @@
           colon: :
       statement: ReturnStatement
         returnKeyword: return
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: x
         semicolon: ;
   rightBracket: }
@@ -3603,7 +3603,7 @@
   statements
     ReturnStatement
       returnKeyword: return
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       semicolon: ;
   rightBracket: }
@@ -3629,7 +3629,7 @@
           colon: :
       statement: ReturnStatement
         returnKeyword: return
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: x
         semicolon: ;
   rightBracket: }
@@ -3653,7 +3653,7 @@
     SwitchStatement
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
       rightParenthesis: )
       leftBracket: {
@@ -3662,13 +3662,13 @@
           keyword: case
           guardedPattern: GuardedPattern
             pattern: ConstantPattern
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 1
           colon: :
           statements
             ReturnStatement
               returnKeyword: return
-              expression: SimpleStringLiteral
+              expression2: SimpleStringLiteral
                 literal: "I"
               semicolon: ;
       rightBracket: }
@@ -3690,7 +3690,7 @@
     SwitchStatement
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
       rightParenthesis: )
       leftBracket: {
@@ -3718,7 +3718,7 @@
     SwitchStatement
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
       rightParenthesis: )
       leftBracket: {
@@ -3739,7 +3739,7 @@
             pattern: ParenthesizedPattern
               leftParenthesis: (
               pattern: ConstantPattern
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 1
               rightParenthesis: )
           colon: :
@@ -3768,7 +3768,7 @@
     SwitchStatement
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
       rightParenthesis: )
       leftBracket: {
@@ -3781,7 +3781,7 @@
           keyword: case
           guardedPattern: GuardedPattern
             pattern: ConstantPattern
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
           colon: :
         SwitchPatternCase
@@ -3792,7 +3792,7 @@
           keyword: case
           guardedPattern: GuardedPattern
             pattern: ConstantPattern
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 1
           colon: :
           statements
@@ -3823,7 +3823,7 @@
     SwitchStatement
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
       rightParenthesis: )
       leftBracket: {
@@ -3866,7 +3866,7 @@
     SwitchStatement
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
       rightParenthesis: )
       leftBracket: {
@@ -3879,7 +3879,7 @@
           keyword: case
           guardedPattern: GuardedPattern
             pattern: ConstantPattern
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
           colon: :
         SwitchDefault
@@ -3918,7 +3918,7 @@
     SwitchStatement
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
       rightParenthesis: )
       leftBracket: {
@@ -3927,12 +3927,12 @@
           keyword: case
           guardedPattern: GuardedPattern
             pattern: ConstantPattern
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
           colon: :
           statements
             ExpressionStatement
-              expression: MethodInvocation
+              expression2: MethodInvocation
                 methodName: SimpleIdentifier
                   token: f
                 argumentList: ArgumentList
@@ -3945,7 +3945,7 @@
                   name: l1
                   colon: :
               statement: ExpressionStatement
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: g
                   argumentList: ArgumentList
@@ -4368,7 +4368,7 @@
           VariableDeclaration
             name: set
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
   rightBracket: }
@@ -4391,7 +4391,7 @@
     VariableDeclaration
       name: a
       equals: =
-      initializer: IntegerLiteral
+      initializer2: IntegerLiteral
         literal: 0
 ''');
   }
@@ -4598,7 +4598,7 @@
     WhileStatement
       whileKeyword: while
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
       rightParenthesis: )
       body: Block
@@ -4622,7 +4622,7 @@
     YieldStatement
       yieldKeyword: yield
       star: *
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       semicolon: ;
   rightBracket: }
@@ -4642,7 +4642,7 @@
   statements
     YieldStatement
       yieldKeyword: yield
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
       semicolon: ;
   rightBracket: }
diff --git a/pkg/analyzer/test/generated/strong_mode_test.dart b/pkg/analyzer/test/generated/strong_mode_test.dart
index aaa71c3..7c2d159 100644
--- a/pkg/analyzer/test/generated/strong_mode_test.dart
+++ b/pkg/analyzer/test/generated/strong_mode_test.dart
@@ -106,15 +106,15 @@
       FunctionBody body = test.body;
       Expression returnExp;
       if (body is ExpressionFunctionBody) {
-        returnExp = body.expression;
+        returnExp = body.expression2;
       } else {
         var stmt =
             (body as BlockFunctionBody).block.statements[0] as ReturnStatement;
-        returnExp = stmt.expression!;
+        returnExp = stmt.expression2!;
       }
       DartType type = returnExp.typeOrThrow;
       if (returnExp is AwaitExpression) {
-        type = returnExp.expression.typeOrThrow;
+        type = returnExp.expression2.typeOrThrow;
       }
       typeTest(type as InterfaceType);
     }
@@ -163,15 +163,15 @@
       var body = test.functionExpression.body;
       Expression returnExp;
       if (body is ExpressionFunctionBody) {
-        returnExp = body.expression;
+        returnExp = body.expression2;
       } else {
         var stmt =
             (body as BlockFunctionBody).block.statements[0] as ReturnStatement;
-        returnExp = stmt.expression!;
+        returnExp = stmt.expression2!;
       }
       DartType type = returnExp.typeOrThrow;
       if (returnExp is AwaitExpression) {
-        type = returnExp.expression.typeOrThrow;
+        type = returnExp.expression2.typeOrThrow;
       }
       typeTest(type as InterfaceType);
     }
@@ -212,7 +212,7 @@
     CascadeExpression fetch(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as CascadeExpression;
+      var exp = decl.initializer2 as CascadeExpression;
       return exp;
     }
 
@@ -223,8 +223,8 @@
 
     CascadeExpression cascade = fetch(0);
     _isInstantiationOf(_hasElement(elementA))([_isInt])(cascade.typeOrThrow);
-    var invoke = cascade.cascadeSections[0] as MethodInvocation;
-    var function = invoke.argumentList.arguments[1] as FunctionExpression;
+    var invoke = cascade.cascadeSections2[0] as MethodInvocation;
+    var function = invoke.argumentList.arguments2[1] as FunctionExpression;
     ExecutableElement f0 = function.declaredFragment!.element;
     _isListOf(_isInt)(f0.type.returnType as InterfaceType);
     expect(f0.type.normalParameterTypes[0], result.typeProvider.intType);
@@ -249,7 +249,7 @@
     );
     var stmt = statements[0] as VariableDeclarationStatement;
     VariableDeclaration decl = stmt.variables.variables[0];
-    Expression call = decl.initializer!;
+    Expression call = decl.initializer2!;
     _isInt(call.typeOrThrow);
   }
 
@@ -272,7 +272,7 @@
     );
     var stmt = statements[0] as VariableDeclarationStatement;
     VariableDeclaration decl = stmt.variables.variables[0];
-    Expression call = decl.initializer!;
+    Expression call = decl.initializer2!;
     _isInt(call.typeOrThrow);
   }
 
@@ -292,7 +292,7 @@
     );
     var stmt = statements[0] as VariableDeclarationStatement;
     VariableDeclaration decl = stmt.variables.variables[0];
-    Expression call = decl.initializer!;
+    Expression call = decl.initializer2!;
     _isInt(call.typeOrThrow);
   }
 
@@ -317,7 +317,7 @@
     );
     var stmt = statements[0] as VariableDeclarationStatement;
     VariableDeclaration decl = stmt.variables.variables[0];
-    Expression call = decl.initializer!;
+    Expression call = decl.initializer2!;
     _isInt(call.typeOrThrow);
   }
 
@@ -347,7 +347,7 @@
     );
     var stmt = statements[0] as VariableDeclarationStatement;
     VariableDeclaration decl = stmt.variables.variables[0];
-    Expression call = decl.initializer!;
+    Expression call = decl.initializer2!;
     _isType(call.typeOrThrow);
   }
 
@@ -365,7 +365,7 @@
       null,
     );
     var assignment = constructor.initializers[0] as ConstructorFieldInitializer;
-    Expression exp = assignment.expression;
+    Expression exp = assignment.expression2;
     _isListOf(_isString)(exp.staticType as InterfaceType);
   }
 
@@ -386,7 +386,7 @@
     );
     var body = constructor.body as BlockFunctionBody;
     var stmt = body.block.statements[0] as ReturnStatement;
-    var exp = stmt.expression as InstanceCreationExpression;
+    var exp = stmt.expression2 as InstanceCreationExpression;
     ClassElement elementB = AstFinder.getClass(
       result.unit,
       "B",
@@ -420,7 +420,7 @@
       "f0",
     );
 
-    _isListOf(_isString)(field.initializer!.staticType as InterfaceType);
+    _isListOf(_isString)(field.initializer2!.staticType as InterfaceType);
   }
 
   test_functionDeclaration_body_propagation() async {
@@ -446,7 +446,7 @@
       "test1",
     );
     var body = test1.functionExpression.body as ExpressionFunctionBody;
-    assertListOfInt(body.expression.staticType as InterfaceType);
+    assertListOfInt(body.expression2.staticType as InterfaceType);
 
     List<Statement> statements = AstFinder.getStatementsInTopLevelFunction(
       result.unit,
@@ -457,13 +457,13 @@
         (statements[0] as FunctionDeclarationStatement).functionDeclaration;
     var body0 = inner.functionExpression.body as BlockFunctionBody;
     var return0 = body0.block.statements[0] as ReturnStatement;
-    Expression anon0 = return0.expression!;
+    Expression anon0 = return0.expression2!;
     var type0 = anon0.staticType as FunctionType;
     expect(type0.returnType, result.typeProvider.intType);
     expect(type0.normalParameterTypes[0], result.typeProvider.stringType);
 
     var anon1 =
-        (statements[1] as ReturnStatement).expression as FunctionExpression;
+        (statements[1] as ReturnStatement).expression2 as FunctionExpression;
     FunctionType type1 = anon1.declaredFragment!.element.type;
     expect(type1.returnType, result.typeProvider.intType);
     expect(type1.normalParameterTypes[0], result.typeProvider.intType);
@@ -507,7 +507,7 @@
     DartType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as FunctionExpression;
+      var exp = decl.initializer2 as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -554,7 +554,7 @@
     DartType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as FunctionExpression;
+      var exp = decl.initializer2 as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -598,13 +598,13 @@
     Expression functionReturnValue(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as FunctionExpression;
+      var exp = decl.initializer2 as FunctionExpression;
       FunctionBody body = exp.body;
       if (body is ExpressionFunctionBody) {
-        return body.expression;
+        return body.expression2;
       } else {
         Statement stmt = (body as BlockFunctionBody).block.statements[0];
-        return (stmt as ReturnStatement).expression!;
+        return (stmt as ReturnStatement).expression2!;
       }
     }
 
@@ -646,8 +646,8 @@
     );
     DartType literal(int i) {
       var stmt = statements[i] as ExpressionStatement;
-      var invk = stmt.expression as FunctionExpressionInvocation;
-      var exp = invk.argumentList.arguments[0] as FunctionExpression;
+      var invk = stmt.expression2 as FunctionExpressionInvocation;
+      var exp = invk.argumentList.arguments2[0] as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -687,8 +687,8 @@
     );
     DartType literal(int i) {
       var stmt = statements[i] as ExpressionStatement;
-      var invk = stmt.expression as FunctionExpressionInvocation;
-      var exp = invk.argumentList.arguments[0] as FunctionExpression;
+      var invk = stmt.expression2 as FunctionExpressionInvocation;
+      var exp = invk.argumentList.arguments2[0] as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -728,8 +728,8 @@
     );
     DartType literal(int i) {
       var stmt = statements[i] as ExpressionStatement;
-      var invk = stmt.expression as MethodInvocation;
-      var exp = invk.argumentList.arguments[0] as FunctionExpression;
+      var invk = stmt.expression2 as MethodInvocation;
+      var exp = invk.argumentList.arguments2[0] as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -767,8 +767,8 @@
     );
     DartType literal(int i) {
       var stmt = statements[i] as ExpressionStatement;
-      var invk = stmt.expression as MethodInvocation;
-      var exp = invk.argumentList.arguments[0] as FunctionExpression;
+      var invk = stmt.expression2 as MethodInvocation;
+      var exp = invk.argumentList.arguments2[0] as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -810,8 +810,8 @@
     );
     DartType literal(int i) {
       var stmt = statements[i] as ExpressionStatement;
-      var invk = stmt.expression as MethodInvocation;
-      var exp = invk.argumentList.arguments[0] as FunctionExpression;
+      var invk = stmt.expression2 as MethodInvocation;
+      var exp = invk.argumentList.arguments2[0] as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -851,8 +851,8 @@
     );
     DartType literal(int i) {
       var stmt = statements[i] as ExpressionStatement;
-      var invk = stmt.expression as MethodInvocation;
-      var exp = invk.argumentList.arguments[0] as FunctionExpression;
+      var invk = stmt.expression2 as MethodInvocation;
+      var exp = invk.argumentList.arguments2[0] as FunctionExpression;
       return exp.declaredFragment!.element.type;
     }
 
@@ -897,13 +897,13 @@
     Expression functionReturnValue(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as FunctionExpression;
+      var exp = decl.initializer2 as FunctionExpression;
       FunctionBody body = exp.body;
       if (body is ExpressionFunctionBody) {
-        return body.expression;
+        return body.expression2;
       } else {
         Statement stmt = (body as BlockFunctionBody).block.statements[0];
-        return (stmt as ReturnStatement).expression!;
+        return (stmt as ReturnStatement).expression2!;
       }
     }
 
@@ -994,7 +994,7 @@
     ''');
     _isFutureOfInt(invoke.staticType as InterfaceType);
     _isFutureOfInt(
-      invoke.argumentList.arguments[0].argumentExpression.staticType
+      invoke.argumentList.arguments2[0].argumentExpression2.staticType
           as InterfaceType,
     );
   }
@@ -1010,7 +1010,7 @@
     ''');
     _isFutureOfInt(invoke.staticType as InterfaceType);
     _isFutureOfInt(
-      invoke.argumentList.arguments[0].argumentExpression.staticType
+      invoke.argumentList.arguments2[0].argumentExpression2.staticType
           as InterfaceType,
     );
   }
@@ -1026,7 +1026,7 @@
     ''');
     _isFutureOf([_isNum])(invoke.staticType as InterfaceType);
     _isFutureOf([_isNum])(
-      invoke.argumentList.arguments[0].argumentExpression.staticType
+      invoke.argumentList.arguments2[0].argumentExpression2.staticType
           as InterfaceType,
     );
   }
@@ -1042,7 +1042,7 @@
     ''');
     _isFutureOrOfInt(invoke.staticType as InterfaceType);
     _isFutureOfInt(
-      invoke.argumentList.arguments[0].argumentExpression.staticType
+      invoke.argumentList.arguments2[0].argumentExpression2.staticType
           as InterfaceType,
     );
   }
@@ -1058,7 +1058,7 @@
     ''');
     _isFutureOfInt(invoke.staticType as InterfaceType);
     _isFutureOfInt(
-      invoke.argumentList.arguments[0].argumentExpression.staticType
+      invoke.argumentList.arguments2[0].argumentExpression2.staticType
           as InterfaceType,
     );
   }
@@ -1076,7 +1076,7 @@
     ''');
     _isFutureOfInt(invoke.staticType as InterfaceType);
     _isFutureOfInt(
-      invoke.argumentList.arguments[0].argumentExpression.staticType
+      invoke.argumentList.arguments2[0].argumentExpression2.staticType
           as InterfaceType,
     );
   }
@@ -1091,7 +1091,7 @@
     FutureOr<List<int>> test() => mk(3);
     ''');
     _isListOf(_isInt)(invoke.staticType as InterfaceType);
-    _isInt(invoke.argumentList.arguments[0].argumentExpression.typeOrThrow);
+    _isInt(invoke.argumentList.arguments2[0].argumentExpression2.typeOrThrow);
   }
 
   test_futureOr_methods1() async {
@@ -1141,7 +1141,7 @@
     test() => f.then((int x) {});
     ''');
     _isFunction2Of(_isInt, _isNull)(
-      invoke.argumentList.arguments[0].argumentExpression.typeOrThrow,
+      invoke.argumentList.arguments2[0].argumentExpression2.typeOrThrow,
     );
     _isFutureOfNull(invoke.staticType as InterfaceType);
   }
@@ -1155,7 +1155,7 @@
     test() => f.then((int x) {return;});
     ''');
     _isFunction2Of(_isInt, _isNull)(
-      invoke.argumentList.arguments[0].argumentExpression.typeOrThrow,
+      invoke.argumentList.arguments2[0].argumentExpression2.typeOrThrow,
     );
     _isFutureOfNull(invoke.staticType as InterfaceType);
   }
@@ -1169,7 +1169,7 @@
     test() => f.then((int x) {return null;});
     ''');
     _isFunction2Of(_isInt, _isNull)(
-      invoke.argumentList.arguments[0].argumentExpression.typeOrThrow,
+      invoke.argumentList.arguments2[0].argumentExpression2.typeOrThrow,
     );
     _isFutureOfNull(invoke.staticType as InterfaceType);
   }
@@ -1207,7 +1207,7 @@
     test() => f.then<Null>((int x) {});
     ''');
     _isFunction2Of(_isInt, _isNull)(
-      invoke.argumentList.arguments[0].argumentExpression.typeOrThrow,
+      invoke.argumentList.arguments2[0].argumentExpression2.typeOrThrow,
     );
     _isFutureOfNull(invoke.staticType as InterfaceType);
   }
@@ -1221,7 +1221,7 @@
     test() => f.then<Null>((int x) {return;});
     ''');
     _isFunction2Of(_isInt, _isNull)(
-      invoke.argumentList.arguments[0].argumentExpression.typeOrThrow,
+      invoke.argumentList.arguments2[0].argumentExpression2.typeOrThrow,
     );
     _isFutureOfNull(invoke.staticType as InterfaceType);
   }
@@ -1235,7 +1235,7 @@
     test() => f.then<Null>((int x) { return null;});
     ''');
     _isFunction2Of(_isInt, _isNull)(
-      invoke.argumentList.arguments[0].argumentExpression.typeOrThrow,
+      invoke.argumentList.arguments2[0].argumentExpression2.typeOrThrow,
     );
     _isFutureOfNull(invoke.staticType as InterfaceType);
   }
@@ -1289,7 +1289,7 @@
     void check(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      Expression init = decl.initializer!;
+      Expression init = decl.initializer2!;
       _isInstantiationOf(_hasElement(elementA))([_isInt])(init.typeOrThrow);
     }
 
@@ -1406,7 +1406,7 @@
     staticType: T Function<T extends num>(T, T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1521,14 +1521,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T Function(T), int Function(T, T), T Function(T))
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: list
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1557,14 +1557,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T Function(T), int Function(T, T), T Function(T))
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: list
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1593,14 +1593,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T Function(T), int Function(T, T), T Function(T))
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: target
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1629,14 +1629,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T Function(T), int Function(T, T), T Function(T))
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: target
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1689,14 +1689,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(List<T>, int Function(T, T), List<T>)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: list
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1725,14 +1725,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(List<T>, int Function(T, T), List<T>)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: list
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1761,14 +1761,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(List<T>, int Function(T, T), List<T>)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: target
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1797,14 +1797,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(List<T>, int Function(T, T), List<T>)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: target
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1857,14 +1857,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T, int Function(T, T), T)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: list
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1893,14 +1893,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T, int Function(T, T), T)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: list
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1929,14 +1929,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T, int Function(T, T), T)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: target
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1965,14 +1965,14 @@
           T
       semicolon: ;
     ExpressionStatement
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: _mergeSort
           element: <testLibrary>::@function::_mergeSort
           staticType: void Function<T>(T, int Function(T, T), T)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             SimpleIdentifier
               token: target
               correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -2027,9 +2027,9 @@
     staticType: T Function<T>(T Function(T))
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       FunctionReference
-        function: SimpleIdentifier
+        function2: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
           staticType: S Function<S>(S)
@@ -2064,7 +2064,7 @@
     var node = result.findNode.methodInvocation('values.fold');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: values
     element: <testLibrary>::@function::test::@formalParameter::values
     staticType: Iterable<dynamic>
@@ -2077,9 +2077,9 @@
     staticType: S Function<S>(S, S Function(S, dynamic))
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       AsExpression
-        expression: PrefixedIdentifier
+        expression2: PrefixedIdentifier
           prefix: SimpleIdentifier
             token: values
             element: <testLibrary>::@function::test::@formalParameter::values
@@ -2105,7 +2105,7 @@
           substitution: {S: num}
         staticType: num
       FunctionReference
-        function: SimpleIdentifier
+        function2: SimpleIdentifier
           token: max
           element: <testLibrary>::@function::max
           staticType: T Function<T extends num>(T, T)
@@ -2161,16 +2161,16 @@
       mapC.declaredFragment!.element.returnType as InterfaceType,
     );
 
-    var mapLiteralB = mapB.initializer as SetOrMapLiteral;
+    var mapLiteralB = mapB.initializer2 as SetOrMapLiteral;
     var mapLiteralC =
-        (mapC.body as ExpressionFunctionBody).expression as SetOrMapLiteral;
+        (mapC.body as ExpressionFunctionBody).expression2 as SetOrMapLiteral;
     assertMapOfIntToListOfInt(mapLiteralB.staticType as InterfaceType);
     assertMapOfIntToListOfInt(mapLiteralC.staticType as InterfaceType);
 
     var listLiteralB =
-        (mapLiteralB.elements[0] as MapLiteralEntry).value as ListLiteral;
+        (mapLiteralB.elements2[0] as MapLiteralEntry).value2 as ListLiteral;
     var listLiteralC =
-        (mapLiteralC.elements[0] as MapLiteralEntry).value as ListLiteral;
+        (mapLiteralC.elements2[0] as MapLiteralEntry).value2 as ListLiteral;
     assertListOfInt(listLiteralB.staticType as InterfaceType);
     assertListOfInt(listLiteralC.staticType as InterfaceType);
   }
@@ -2409,7 +2409,7 @@
     Expression rhs(AstNode stmt) {
       stmt as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      Expression exp = decl.initializer!;
+      Expression exp = decl.initializer2!;
       return exp;
     }
 
@@ -2596,7 +2596,7 @@
     ListLiteral literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as ListLiteral;
+      var exp = decl.initializer2 as ListLiteral;
       return exp;
     }
 
@@ -2611,13 +2611,13 @@
     assertListOfListOfInt(literal(3).staticType as InterfaceType);
 
     assertListOfInt(
-      (literal(1).elements[0] as Expression).staticType as InterfaceType,
+      (literal(1).elements2[0] as Expression).staticType as InterfaceType,
     );
     assertListOfInt(
-      (literal(2).elements[0] as Expression).staticType as InterfaceType,
+      (literal(2).elements2[0] as Expression).staticType as InterfaceType,
     );
     assertListOfInt(
-      (literal(3).elements[0] as Expression).staticType as InterfaceType,
+      (literal(3).elements2[0] as Expression).staticType as InterfaceType,
     );
   }
 
@@ -2650,7 +2650,7 @@
     DartType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as ListLiteral;
+      var exp = decl.initializer2 as ListLiteral;
       return exp.typeOrThrow;
     }
 
@@ -2691,7 +2691,7 @@
     DartType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as ListLiteral;
+      var exp = decl.initializer2 as ListLiteral;
       return exp.typeOrThrow;
     }
 
@@ -2736,7 +2736,7 @@
     DartType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as ListLiteral;
+      var exp = decl.initializer2 as ListLiteral;
       return exp.typeOrThrow;
     }
 
@@ -2775,7 +2775,7 @@
     InterfaceType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as ListLiteral;
+      var exp = decl.initializer2 as ListLiteral;
       return exp.staticType as InterfaceType;
     }
 
@@ -2823,7 +2823,7 @@
     SetOrMapLiteral literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as SetOrMapLiteral;
+      var exp = decl.initializer2 as SetOrMapLiteral;
       return exp;
     }
 
@@ -2840,19 +2840,19 @@
     assertMapOfIntToListOfString(literal(4).staticType as InterfaceType);
 
     assertListOfString(
-      (literal(1).elements[0] as MapLiteralEntry).value.staticType
+      (literal(1).elements2[0] as MapLiteralEntry).value2.staticType
           as InterfaceType,
     );
     assertListOfString(
-      (literal(2).elements[0] as MapLiteralEntry).value.staticType
+      (literal(2).elements2[0] as MapLiteralEntry).value2.staticType
           as InterfaceType,
     );
     assertListOfString(
-      (literal(3).elements[0] as MapLiteralEntry).value.staticType
+      (literal(3).elements2[0] as MapLiteralEntry).value2.staticType
           as InterfaceType,
     );
     assertListOfString(
-      (literal(4).elements[0] as MapLiteralEntry).value.staticType
+      (literal(4).elements2[0] as MapLiteralEntry).value2.staticType
           as InterfaceType,
     );
   }
@@ -2893,7 +2893,7 @@
     InterfaceType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as SetOrMapLiteral;
+      var exp = decl.initializer2 as SetOrMapLiteral;
       return exp.staticType as InterfaceType;
     }
 
@@ -2943,7 +2943,7 @@
     InterfaceType literal(int i) {
       var stmt = statements[i] as VariableDeclarationStatement;
       VariableDeclaration decl = stmt.variables.variables[0];
-      var exp = decl.initializer as SetOrMapLiteral;
+      var exp = decl.initializer2 as SetOrMapLiteral;
       return exp.staticType as InterfaceType;
     }
 
@@ -2976,10 +2976,10 @@
       );
       FunctionBody body = method.body;
       if (body is ExpressionFunctionBody) {
-        return body.expression;
+        return body.expression2;
       } else {
         Statement stmt = (body as BlockFunctionBody).block.statements[0];
-        return (stmt as ReturnStatement).expression!;
+        return (stmt as ReturnStatement).expression2!;
       }
     }
 
@@ -3005,9 +3005,9 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    _isString(body.expression.typeOrThrow);
-    var invoke = body.expression as MethodInvocation;
-    var function = invoke.argumentList.arguments[0] as FunctionExpression;
+    _isString(body.expression2.typeOrThrow);
+    var invoke = body.expression2 as MethodInvocation;
+    var function = invoke.argumentList.arguments2[0] as FunctionExpression;
     ExecutableElement f0 = function.declaredFragment!.element;
     FunctionType type = f0.type;
     _isFunction2Of(_isString, _isInt)(type);
@@ -3037,7 +3037,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    DartType type = body.expression.typeOrThrow;
+    DartType type = body.expression2.typeOrThrow;
 
     Element elementB = AstFinder.getClass(
       result.unit,
@@ -3068,7 +3068,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    DartType type = body.expression.typeOrThrow;
+    DartType type = body.expression2.typeOrThrow;
 
     Element elementB = AstFinder.getClass(
       result.unit,
@@ -3102,7 +3102,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    DartType type = body.expression.typeOrThrow;
+    DartType type = body.expression2.typeOrThrow;
 
     Element elementB = AstFinder.getClass(
       result.unit,
@@ -3134,7 +3134,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    DartType type = body.expression.typeOrThrow;
+    DartType type = body.expression2.typeOrThrow;
 
     Element elementB = AstFinder.getClass(
       result.unit,
@@ -3168,7 +3168,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var functionType = body.expression.staticType as FunctionType;
+    var functionType = body.expression2.staticType as FunctionType;
     DartType type = functionType.normalParameterTypes[0];
 
     Element elementA = AstFinder.getClass(
@@ -3202,7 +3202,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var functionType = body.expression.staticType as FunctionType;
+    var functionType = body.expression2.staticType as FunctionType;
     DartType type = functionType.normalParameterTypes[0];
 
     Element elementA = AstFinder.getClass(
@@ -3237,7 +3237,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var functionType = body.expression.staticType as FunctionType;
+    var functionType = body.expression2.staticType as FunctionType;
     DartType type = functionType.normalParameterTypes[0];
 
     Element elementA = AstFinder.getClass(
@@ -3272,7 +3272,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var functionType = body.expression.staticType as FunctionType;
+    var functionType = body.expression2.staticType as FunctionType;
     DartType type = functionType.normalParameterTypes[0];
 
     Element elementA = AstFinder.getClass(
@@ -3358,7 +3358,7 @@
     );
     var invocation =
         constructor.initializers[0] as RedirectingConstructorInvocation;
-    var exp = invocation.argumentList.arguments[0].argumentExpression;
+    var exp = invocation.argumentList.arguments2[0].argumentExpression2;
     _isListOf(_isString)(exp.staticType as InterfaceType);
   }
 
@@ -3378,7 +3378,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var invoke = body.expression as MethodInvocation;
+    var invoke = body.expression2 as MethodInvocation;
     _isFunction2Of(_isNum, _isFunction2Of(_isNum, _isString))(
       invoke.staticInvokeType!,
     );
@@ -3400,7 +3400,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var invoke = body.expression as MethodInvocation;
+    var invoke = body.expression2 as MethodInvocation;
     _isFunction2Of(_isNum, _isFunction2Of(_isString, _isNum))(
       invoke.staticInvokeType!,
     );
@@ -3423,7 +3423,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var functionType = body.expression.staticType as FunctionType;
+    var functionType = body.expression2.staticType as FunctionType;
     DartType type = functionType.normalParameterTypes[0];
     _isInt(type);
   }
@@ -3445,7 +3445,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var functionType = body.expression.staticType as FunctionType;
+    var functionType = body.expression2.staticType as FunctionType;
     DartType type = functionType.returnType;
     _isInt(type);
   }
@@ -3469,7 +3469,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var call = body.expression as MethodInvocation;
+    var call = body.expression2 as MethodInvocation;
     _isNum(call.typeOrThrow);
     _isFunction2Of(_isFunction2Of(_isNum, _isString), _isNum)(
       call.staticInvokeType!,
@@ -3495,7 +3495,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    var call = body.expression as MethodInvocation;
+    var call = body.expression2 as MethodInvocation;
     _isNum(call.typeOrThrow);
     _isFunction2Of(_isFunction2Of(_isString, _isNum), _isNum)(
       call.staticInvokeType!,
@@ -3519,7 +3519,7 @@
       null,
     );
     var invocation = constructor.initializers[0] as SuperConstructorInvocation;
-    var exp = invocation.argumentList.arguments[0].argumentExpression;
+    var exp = invocation.argumentList.arguments2[0].argumentExpression2;
     _isListOf(_isString)(exp.staticType as InterfaceType);
   }
 
@@ -3589,7 +3589,7 @@
       "test",
     );
     var body = test.functionExpression.body as ExpressionFunctionBody;
-    return body.expression as MethodInvocation;
+    return body.expression2 as MethodInvocation;
   }
 }
 
@@ -3713,7 +3713,7 @@
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: NullLiteral
+      expression2: NullLiteral
         literal: null
         staticType: Null
       semicolon: ;
@@ -3783,7 +3783,7 @@
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: NullLiteral
+      expression2: NullLiteral
         literal: null
         staticType: Null
       semicolon: ;
@@ -3860,7 +3860,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
       staticType: Null
     semicolon: ;
@@ -3920,7 +3920,7 @@
       var statements = result.findNode.block('{ // $className').statements;
 
       for (int i = 1; i <= 5; i++) {
-        Expression exp = (statements[i] as ExpressionStatement).expression;
+        Expression exp = (statements[i] as ExpressionStatement).expression2;
         expect(exp.staticType, result.typeProvider.dynamicType);
       }
     }
@@ -4338,7 +4338,7 @@
     var node1 = result.findNode.methodInvocation('map((e) => e);');
     assertResolvedNodeText(node1, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: list
     element: list@68
     staticType: List<dynamic>
@@ -4351,7 +4351,7 @@
     staticType: T Function<T>(T Function(dynamic))
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       FunctionExpression
         parameters: FormalParameterList
           leftParenthesis: (
@@ -4372,7 +4372,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: e
             element: e@93
             staticType: dynamic
@@ -4393,7 +4393,7 @@
     var node2 = result.findNode.methodInvocation('map((e) => 3);');
     assertResolvedNodeText(node2, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: list
     element: list@68
     staticType: List<dynamic>
@@ -4406,7 +4406,7 @@
     staticType: T Function<T>(T Function(dynamic))
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       FunctionExpression
         parameters: FormalParameterList
           leftParenthesis: (
@@ -4427,7 +4427,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 3
             staticType: int
         declaredFragment: <testLibraryFragment> null@null
@@ -4532,7 +4532,7 @@
     var node1 = result.findNode.methodInvocation('f<int>(3);');
     assertResolvedNodeText(node1, r'''
 MethodInvocation
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     keyword: new
     constructorName: ConstructorName
       type: NamedType
@@ -4571,7 +4571,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 3
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -4604,7 +4604,7 @@
     var node1 = result.findNode.methodInvocation('f<int>(3);');
     assertResolvedNodeText(node1, r'''
 MethodInvocation
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     keyword: new
     constructorName: ConstructorName
       type: NamedType
@@ -4643,7 +4643,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 3
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -4743,7 +4743,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
       staticType: Null
     semicolon: ;
@@ -5311,7 +5311,7 @@
     staticType: void Function<S0 extends T, S1 extends List<S0>>(S0, S1)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NullLiteral
         literal: null
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -5390,7 +5390,7 @@
     staticType: void Function<S extends T>(S)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NullLiteral
         literal: null
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -5841,12 +5841,12 @@
     var node = result.findNode.assignment('= 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: v
     element: v@15
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <null>
     staticType: int
diff --git a/pkg/analyzer/test/generated/top_level_parser_test.dart b/pkg/analyzer/test/generated/top_level_parser_test.dart
index 8e0f3de..69c720e 100644
--- a/pkg/analyzer/test/generated/top_level_parser_test.dart
+++ b/pkg/analyzer/test/generated/top_level_parser_test.dart
@@ -34,7 +34,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: FunctionExpression
+            initializer2: FunctionExpression
               parameters: FormalParameterList
                 leftParenthesis: (
                 rightParenthesis: )
@@ -76,12 +76,12 @@
                 fieldName: SimpleIdentifier
                   token: a
                 equals: =
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: f
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       FunctionExpression
                         parameters: FormalParameterList
                           leftParenthesis: (
@@ -127,11 +127,11 @@
                 fieldName: SimpleIdentifier
                   token: a
                 equals: =
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: x
                   leftBracket: [
-                  index: FunctionExpression
+                  index2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       rightParenthesis: )
@@ -176,9 +176,9 @@
                 fieldName: SimpleIdentifier
                   token: a
                 equals: =
-                expression: ListLiteral
+                expression2: ListLiteral
                   leftBracket: [
-                  elements
+                  elements2
                     FunctionExpression
                       parameters: FormalParameterList
                         leftParenthesis: (
@@ -224,14 +224,14 @@
                 fieldName: SimpleIdentifier
                   token: a
                 equals: =
-                expression: SetOrMapLiteral
+                expression2: SetOrMapLiteral
                   leftBracket: {
-                  elements
+                  elements2
                     MapLiteralEntry
-                      key: SimpleStringLiteral
+                      key2: SimpleStringLiteral
                         literal: 'key'
                       separator: :
-                      value: FunctionExpression
+                      value2: FunctionExpression
                         parameters: FormalParameterList
                           leftParenthesis: (
                           rightParenthesis: )
@@ -277,9 +277,9 @@
                 fieldName: SimpleIdentifier
                   token: a
                 equals: =
-                expression: ParenthesizedExpression
+                expression2: ParenthesizedExpression
                   leftParenthesis: (
-                  expression: FunctionExpression
+                  expression2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       rightParenthesis: )
@@ -324,13 +324,13 @@
                 fieldName: SimpleIdentifier
                   token: a
                 equals: =
-                expression: StringInterpolation
+                expression2: StringInterpolation
                   elements
                     InterpolationString
                       contents: "
                     InterpolationExpression
                       leftBracket: ${
-                      expression: FunctionExpression
+                      expression2: FunctionExpression
                         parameters: FormalParameterList
                           leftParenthesis: (
                           rightParenthesis: )
@@ -651,7 +651,7 @@
             token: B
           arguments: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 2
             rightParenthesis: )
@@ -665,7 +665,7 @@
               token: foo
           arguments: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 3
             rightParenthesis: )
@@ -682,7 +682,7 @@
             token: bar
           arguments: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 4
               IntegerLiteral
@@ -988,7 +988,7 @@
           VariableDeclaration
             name: _abstract
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               keyword: new
               constructorName: ConstructorName
                 type: NamedType
@@ -1107,7 +1107,7 @@
           VariableDeclaration
             name: _export
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               keyword: new
               constructorName: ConstructorName
                 type: NamedType
@@ -1145,7 +1145,7 @@
           VariableDeclaration
             name: _export
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               keyword: new
               constructorName: ConstructorName
                 type: NamedType
@@ -1183,7 +1183,7 @@
           VariableDeclaration
             name: _operator
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               keyword: new
               constructorName: ConstructorName
                 type: NamedType
@@ -1253,13 +1253,13 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: StringInterpolation
+                expression2: StringInterpolation
                   elements
                     InterpolationString
                       contents: "
                     InterpolationExpression
                       leftBracket: ${
-                      expression: SimpleIdentifier
+                      expression2: SimpleIdentifier
                         token: n
                       rightBracket: }
                     InterpolationString
@@ -1307,7 +1307,7 @@
           VariableDeclaration
             name: _typedef
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               keyword: new
               constructorName: ConstructorName
                 type: NamedType
@@ -1341,7 +1341,7 @@
           VariableDeclaration
             name: _abstract
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               keyword: new
               constructorName: ConstructorName
                 type: NamedType
@@ -1415,7 +1415,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1437,7 +1437,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1458,7 +1458,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1701,7 +1701,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -1770,7 +1770,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -1895,7 +1895,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1917,7 +1917,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2236,7 +2236,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2257,7 +2257,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2367,7 +2367,7 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2389,7 +2389,7 @@
           VariableDeclaration
             name: get
             equals: =
-            initializer: NullLiteral
+            initializer2: NullLiteral
               literal: null
       semicolon: ;
 ''');
@@ -2411,7 +2411,7 @@
           VariableDeclaration
             name: set
             equals: =
-            initializer: NullLiteral
+            initializer2: NullLiteral
               literal: null
       semicolon: ;
 ''');
@@ -3367,7 +3367,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3404,7 +3404,7 @@
                     token: B
                   arguments: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 2
                     rightParenthesis: )
@@ -3426,14 +3426,14 @@
                         token: foo
                     arguments: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         IntegerLiteral
                           literal: 3
                       rightParenthesis: )
                 name: c
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
               RegularFormalParameter
                 metadata
@@ -3450,7 +3450,7 @@
                       token: bar
                     arguments: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         IntegerLiteral
                           literal: 4
                         IntegerLiteral
@@ -3459,7 +3459,7 @@
                 name: x
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: }
           rightParenthesis: )
@@ -4669,7 +4669,7 @@
             name: g
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: f
               semicolon: ;
           MethodDeclaration
@@ -4695,11 +4695,11 @@
                 leftBracket: {
                 statements
                   ExpressionStatement
-                    expression: AssignmentExpression
-                      leftHandSide: SimpleIdentifier
+                    expression2: AssignmentExpression
+                      leftHandSide2: SimpleIdentifier
                         token: f
                       operator: =
-                      rightHandSide: SimpleIdentifier
+                      rightHandSide2: SimpleIdentifier
                         token: v
                     semicolon: ;
                 rightBracket: }
@@ -4724,15 +4724,15 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: AssignmentExpression
-                leftHandSide: SimpleIdentifier
+              expression2: AssignmentExpression
+                leftHandSide2: SimpleIdentifier
                   token: f
                 operator: =
-                rightHandSide: BinaryExpression
-                  leftOperand: SimpleIdentifier
+                rightHandSide2: BinaryExpression
+                  leftOperand2: SimpleIdentifier
                     token: f
                   operator: +
-                  rightOperand: SimpleIdentifier
+                  rightOperand2: SimpleIdentifier
                     token: v
               semicolon: ;
         rightBracket: }
@@ -4957,7 +4957,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/generated/utilities_test.dart b/pkg/analyzer/test/generated/utilities_test.dart
index 9d8a669..fb0b9e2 100644
--- a/pkg/analyzer/test/generated/utilities_test.dart
+++ b/pkg/analyzer/test/generated/utilities_test.dart
@@ -185,8 +185,8 @@
     var argumentList = parseResult.findNode.argumentList('(0, 1)');
     _assertReplaceInList(
       destination: argumentList,
-      child: argumentList.arguments[0],
-      replacement: argumentList.arguments[1],
+      child: argumentList.arguments2[0],
+      replacement: argumentList.arguments2[1],
     );
   }
 
@@ -200,7 +200,7 @@
     _assertReplacementForChildren<AsExpression>(
       destination: parseResult.findNode.as_('0 as'),
       source: parseResult.findNode.as_('1 as'),
-      childAccessors: [(node) => node.expression, (node) => node.type],
+      childAccessors: [(node) => node.expression2, (node) => node.type],
     );
   }
 
@@ -214,7 +214,7 @@
     _assertReplacementForChildren<AssertStatement>(
       destination: parseResult.findNode.assertStatement('first'),
       source: parseResult.findNode.assertStatement('second'),
-      childAccessors: [(node) => node.condition, (node) => node.message!],
+      childAccessors: [(node) => node.condition2, (node) => node.message2!],
     );
   }
 
@@ -229,8 +229,8 @@
       destination: parseResult.findNode.assignment('a ='),
       source: parseResult.findNode.assignment('b ='),
       childAccessors: [
-        (node) => node.leftHandSide,
-        (node) => node.rightHandSide,
+        (node) => node.leftHandSide2,
+        (node) => node.rightHandSide2,
       ],
     );
   }
@@ -245,7 +245,7 @@
     _assertReplacementForChildren<AwaitExpression>(
       destination: parseResult.findNode.awaitExpression('0'),
       source: parseResult.findNode.awaitExpression('1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -259,7 +259,10 @@
     _assertReplacementForChildren<BinaryExpression>(
       destination: parseResult.findNode.binary('0 + 1'),
       source: parseResult.findNode.binary('1 + 2'),
-      childAccessors: [(node) => node.leftOperand, (node) => node.rightOperand],
+      childAccessors: [
+        (node) => node.leftOperand2,
+        (node) => node.rightOperand2,
+      ],
     );
   }
 
@@ -321,14 +324,14 @@
     var cascadeExpression = parseResult.findNode.cascade('0');
     _assertReplaceInList(
       destination: cascadeExpression,
-      child: cascadeExpression.cascadeSections[0],
-      replacement: cascadeExpression.cascadeSections[1],
+      child: cascadeExpression.cascadeSections2[0],
+      replacement: cascadeExpression.cascadeSections2[1],
     );
 
     _assertReplacementForChildren<CascadeExpression>(
       destination: parseResult.findNode.cascade('0'),
       source: parseResult.findNode.cascade('1'),
-      childAccessors: [(node) => node.target],
+      childAccessors: [(node) => node.target2],
     );
   }
 
@@ -401,7 +404,7 @@
     _assertReplacementForChildren<CommentReference>(
       destination: parseResult.findNode.commentReference('foo'),
       source: parseResult.findNode.commentReference('bar'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -436,9 +439,9 @@
       destination: parseResult.findNode.conditionalExpression('true'),
       source: parseResult.findNode.conditionalExpression('false'),
       childAccessors: [
-        (node) => node.condition,
-        (node) => node.thenExpression,
-        (node) => node.elseExpression,
+        (node) => node.condition2,
+        (node) => node.thenExpression2,
+        (node) => node.elseExpression2,
       ],
     );
   }
@@ -457,7 +460,7 @@
       source:
           parseResult.findNode.caseClause('1').guardedPattern.pattern
               as ConstantPattern,
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -507,7 +510,7 @@
     _assertReplacementForChildren<ConstructorFieldInitializer>(
       destination: parseResult.findNode.constructorFieldInitializer('a ='),
       source: parseResult.findNode.constructorFieldInitializer('b ='),
-      childAccessors: [(node) => node.fieldName, (node) => node.expression],
+      childAccessors: [(node) => node.fieldName, (node) => node.expression2],
     );
   }
 
@@ -580,7 +583,7 @@
     _assertReplacementForChildren<DoStatement>(
       destination: parseResult.findNode.doStatement('true'),
       source: parseResult.findNode.doStatement('false'),
-      childAccessors: [(node) => node.body, (node) => node.condition],
+      childAccessors: [(node) => node.body, (node) => node.condition2],
     );
   }
 
@@ -664,7 +667,7 @@
     _assertReplacementForChildren<ExpressionFunctionBody>(
       destination: parseResult.findNode.expressionFunctionBody('0'),
       source: parseResult.findNode.expressionFunctionBody('1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -678,7 +681,7 @@
     _assertReplacementForChildren<ExpressionStatement>(
       destination: parseResult.findNode.expressionStatement('0'),
       source: parseResult.findNode.expressionStatement('1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -851,8 +854,8 @@
     var for_i = parseResult.findNode.forPartsWithDeclarations('i = 0');
     _assertReplaceInList(
       destination: for_i,
-      child: for_i.updaters[0],
-      replacement: for_i.updaters[1],
+      child: for_i.updaters2[0],
+      replacement: for_i.updaters2[1],
     );
     _assertReplacementForChildren<ForPartsWithDeclarations>(
       destination: for_i,
@@ -871,14 +874,14 @@
     var for_i = parseResult.findNode.forPartsWithExpression('i = 0');
     _assertReplaceInList(
       destination: for_i,
-      child: for_i.updaters[0],
-      replacement: for_i.updaters[1],
+      child: for_i.updaters2[0],
+      replacement: for_i.updaters2[1],
     );
     _assertReplacementForChildren<ForPartsWithExpression>(
       destination: for_i,
       source: parseResult.findNode.forPartsWithExpression('j = 0'),
       childAccessors: [
-        (node) => node.initialization!,
+        (node) => node.initialization2!,
         (node) => node.condition!,
       ],
     );
@@ -952,7 +955,7 @@
       destination: parseResult.findNode.functionExpressionInvocation('<int>'),
       source: parseResult.findNode.functionExpressionInvocation('<double>'),
       childAccessors: [
-        (node) => node.function,
+        (node) => node.function2,
         (node) => node.typeArguments!,
         (node) => node.argumentList,
       ],
@@ -1079,7 +1082,7 @@
       destination: parseResult.findNode.ifStatement('true'),
       source: parseResult.findNode.ifStatement('false'),
       childAccessors: [
-        (node) => node.expression,
+        (node) => node.expression2,
         (node) => node.thenStatement,
         (node) => node.elseStatement!,
       ],
@@ -1129,7 +1132,7 @@
     _assertReplacementForChildren<IndexExpression>(
       destination: parseResult.findNode.index('[0]'),
       source: parseResult.findNode.index('[1]'),
-      childAccessors: [(node) => node.target!, (node) => node.index],
+      childAccessors: [(node) => node.target2!, (node) => node.index2],
     );
   }
 
@@ -1159,7 +1162,7 @@
     _assertReplacementForChildren<InterpolationExpression>(
       destination: parseResult.findNode.interpolationExpression('foo'),
       source: parseResult.findNode.interpolationExpression('bar'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1173,7 +1176,7 @@
     _assertReplacementForChildren<IsExpression>(
       destination: parseResult.findNode.isExpression('0 is'),
       source: parseResult.findNode.isExpression('1 is'),
-      childAccessors: [(node) => node.expression, (node) => node.type],
+      childAccessors: [(node) => node.expression2, (node) => node.type],
     );
   }
 
@@ -1222,8 +1225,8 @@
     var node = parseResult.findNode.listLiteral('[0');
     _assertReplaceInList(
       destination: node,
-      child: node.elements[0],
-      replacement: node.elements[1],
+      child: node.elements2[0],
+      replacement: node.elements2[1],
     );
     _assertReplacementForChildren<ListLiteral>(
       destination: parseResult.findNode.listLiteral('<int>'),
@@ -1241,7 +1244,7 @@
     _assertReplacementForChildren<MapLiteralEntry>(
       destination: parseResult.findNode.mapLiteralEntry('0: 1'),
       source: parseResult.findNode.mapLiteralEntry('2: 3'),
-      childAccessors: [(node) => node.key, (node) => node.value],
+      childAccessors: [(node) => node.key2, (node) => node.value2],
     );
   }
 
@@ -1288,7 +1291,7 @@
       destination: parseResult.findNode.methodInvocation('foo'),
       source: parseResult.findNode.methodInvocation('bar'),
       childAccessors: [
-        (node) => node.target!,
+        (node) => node.target2!,
         (node) => node.typeArguments!,
         (node) => node.argumentList,
       ],
@@ -1333,7 +1336,7 @@
     _assertReplacementForChildren<NamedArgument>(
       destination: parseResult.findNode.namedArgument('foo'),
       source: parseResult.findNode.namedArgument('bar'),
-      childAccessors: [(node) => node.argumentExpression],
+      childAccessors: [(node) => node.argumentExpression2],
     );
   }
 
@@ -1376,7 +1379,7 @@
     _assertReplacementForChildren<ParenthesizedExpression>(
       destination: parseResult.findNode.parenthesized('0'),
       source: parseResult.findNode.parenthesized('1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1423,7 +1426,7 @@
     _assertReplacementForChildren<PatternAssignment>(
       destination: parseResult.findNode.patternAssignment('0'),
       source: parseResult.findNode.patternAssignment('1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1437,7 +1440,7 @@
     _assertReplacementForChildren<PatternVariableDeclaration>(
       destination: parseResult.findNode.patternVariableDeclaration('0'),
       source: parseResult.findNode.patternVariableDeclaration('1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1451,7 +1454,7 @@
     _assertReplacementForChildren<PostfixExpression>(
       destination: parseResult.findNode.postfix('a++'),
       source: parseResult.findNode.postfix('b++'),
-      childAccessors: [(node) => node.operand],
+      childAccessors: [(node) => node.operand2],
     );
   }
 
@@ -1479,7 +1482,7 @@
     _assertReplacementForChildren<PrefixExpression>(
       destination: parseResult.findNode.prefix('++a'),
       source: parseResult.findNode.prefix('++b'),
-      childAccessors: [(node) => node.operand],
+      childAccessors: [(node) => node.operand2],
     );
   }
 
@@ -1516,7 +1519,7 @@
     _assertReplacementForChildren<PropertyAccess>(
       destination: parseResult.findNode.propertyAccess('(a)'),
       source: parseResult.findNode.propertyAccess('(b)'),
-      childAccessors: [(node) => node.target!, (node) => node.propertyName],
+      childAccessors: [(node) => node.target2!, (node) => node.propertyName],
     );
   }
 
@@ -1529,8 +1532,8 @@
     var node = parseResult.findNode.recordLiteral('(1');
     _assertReplaceInList(
       destination: node,
-      child: node.fields[0],
-      replacement: node.fields[1],
+      child: node.fields2[0],
+      replacement: node.fields2[1],
     );
   }
 
@@ -1600,7 +1603,7 @@
     _assertReplacementForChildren<RelationalPattern>(
       destination: parseResult.findNode.relationalPattern('> 0'),
       source: parseResult.findNode.relationalPattern('> 1'),
-      childAccessors: [(node) => node.operand],
+      childAccessors: [(node) => node.operand2],
     );
   }
 
@@ -1614,7 +1617,7 @@
     _assertReplacementForChildren<ReturnStatement>(
       destination: parseResult.findNode.returnStatement('0;'),
       source: parseResult.findNode.returnStatement('1;'),
-      childAccessors: [(node) => node.expression!],
+      childAccessors: [(node) => node.expression2!],
     );
   }
 
@@ -1628,8 +1631,8 @@
     var node = parseResult.findNode.setOrMapLiteral('<int');
     _assertReplaceInList(
       destination: node,
-      child: node.elements[0],
-      replacement: node.elements[1],
+      child: node.elements2[0],
+      replacement: node.elements2[1],
     );
     _assertReplacementForChildren<SetOrMapLiteral>(
       destination: parseResult.findNode.setOrMapLiteral('<int'),
@@ -1753,7 +1756,7 @@
     _assertReplacementForChildren<SwitchCase>(
       destination: parseResult.findNode.switchCase('case 0'),
       source: parseResult.findNode.switchCase('case 1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1788,7 +1791,7 @@
     _assertReplacementForChildren<SwitchStatement>(
       destination: parseResult.findNode.switchStatement('(0)'),
       source: parseResult.findNode.switchStatement('(1)'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1802,7 +1805,7 @@
     _assertReplacementForChildren<ThrowExpression>(
       destination: parseResult.findNode.throw_('throw 0'),
       source: parseResult.findNode.throw_('throw 1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1900,7 +1903,7 @@
     _assertReplacementForChildren<VariableDeclaration>(
       destination: parseResult.findNode.variableDeclaration('a = 0'),
       source: parseResult.findNode.variableDeclaration('b = 1'),
-      childAccessors: [(node) => node.initializer!],
+      childAccessors: [(node) => node.initializer2!],
     );
   }
 
@@ -1947,7 +1950,7 @@
     _assertReplacementForChildren<WhenClause>(
       destination: parseResult.findNode.whenClause('when 1'),
       source: parseResult.findNode.whenClause('when 2'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
@@ -1965,7 +1968,7 @@
     _assertReplacementForChildren<WhileStatement>(
       destination: parseResult.findNode.whileStatement('(true)'),
       source: parseResult.findNode.whileStatement('(false)'),
-      childAccessors: [(node) => node.condition, (node) => node.body],
+      childAccessors: [(node) => node.condition2, (node) => node.body],
     );
   }
 
@@ -1991,7 +1994,7 @@
     _assertReplacementForChildren<YieldStatement>(
       destination: parseResult.findNode.yieldStatement('yield 0;'),
       source: parseResult.findNode.yieldStatement('yield 1'),
-      childAccessors: [(node) => node.expression],
+      childAccessors: [(node) => node.expression2],
     );
   }
 
diff --git a/pkg/analyzer/test/generated/variance_parser_test.dart b/pkg/analyzer/test/generated/variance_parser_test.dart
index fb11499..4d5d0ed 100644
--- a/pkg/analyzer/test/generated/variance_parser_test.dart
+++ b/pkg/analyzer/test/generated/variance_parser_test.dart
@@ -288,7 +288,7 @@
       VariableDeclaration
         name: stringList
         equals: =
-        initializer: ListLiteral
+        initializer2: ListLiteral
           leftBracket: [
           rightBracket: ]
   semicolon: ;
@@ -321,7 +321,7 @@
       VariableDeclaration
         name: stringList
         equals: =
-        initializer: ListLiteral
+        initializer2: ListLiteral
           leftBracket: [
           rightBracket: ]
   semicolon: ;
diff --git a/pkg/analyzer/test/id_tests/nullability_test.dart b/pkg/analyzer/test/id_tests/nullability_test.dart
index 82bc69a..efcdc66 100644
--- a/pkg/analyzer/test/id_tests/nullability_test.dart
+++ b/pkg/analyzer/test/id_tests/nullability_test.dart
@@ -83,7 +83,7 @@
 
   static DartType _readType(SimpleIdentifier node) {
     var parent = node.parent2;
-    if (parent is AssignmentExpression && parent.leftHandSide == node) {
+    if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
       return parent.readType!;
     } else if (parent is PostfixExpression) {
       return parent.readType ?? node.typeOrThrow;
diff --git a/pkg/analyzer/test/id_tests/type_promotion_test.dart b/pkg/analyzer/test/id_tests/type_promotion_test.dart
index b9d1ff2..8720041 100644
--- a/pkg/analyzer/test/id_tests/type_promotion_test.dart
+++ b/pkg/analyzer/test/id_tests/type_promotion_test.dart
@@ -75,7 +75,7 @@
 
   static Element? _readElement(SimpleIdentifier node) {
     var parent = node.parent2;
-    if (parent is AssignmentExpression && parent.leftHandSide == node) {
+    if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
       return parent.readElement;
     } else if (parent is PostfixExpression) {
       return parent.readElement;
@@ -88,7 +88,7 @@
 
   static DartType? _readType(SimpleIdentifier node) {
     var parent = node.parent2;
-    if (parent is AssignmentExpression && parent.leftHandSide == node) {
+    if (parent is AssignmentExpression && parent.leftHandSide2 == node) {
       return parent.readType;
     } else if (parent is PostfixExpression) {
       return parent.readType;
diff --git a/pkg/analyzer/test/src/clients/dart_style/rewrite_cascade_test.dart b/pkg/analyzer/test/src/clients/dart_style/rewrite_cascade_test.dart
index 154ffd8..71b640f 100644
--- a/pkg/analyzer/test/src/clients/dart_style/rewrite_cascade_test.dart
+++ b/pkg/analyzer/test/src/clients/dart_style/rewrite_cascade_test.dart
@@ -74,8 +74,8 @@
 ''');
       var cascadeExpression = parseResult.findNode.singleCascadeExpression;
       var result = insertCascadeTargetIntoExpression(
-        expression: cascadeExpression.cascadeSections.single,
-        cascadeTarget: cascadeExpression.target,
+        expression: cascadeExpression.cascadeSections2.single,
+        cascadeTarget: cascadeExpression.target2,
       );
       expect(result.toSource(), expected);
     }
diff --git a/pkg/analyzer/test/src/dart/ast/ast_test.dart b/pkg/analyzer/test/src/dart/ast/ast_test.dart
index 8360688..45d54cc 100644
--- a/pkg/analyzer/test/src/dart/ast/ast_test.dart
+++ b/pkg/analyzer/test/src/dart/ast/ast_test.dart
@@ -195,7 +195,7 @@
   }
 
   AttemptedConstantEvaluationResult? _evaluateX(TestResolvedUnitResult result) {
-    var node = result.findNode.topVariableDeclarationByName('x').initializer!;
+    var node = result.findNode.topVariableDeclarationByName('x').initializer2!;
     return node.computeConstantValue();
   }
 }
diff --git a/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart b/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart
index 5300e23..fd5b8db 100644
--- a/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart
+++ b/pkg/analyzer/test/src/dart/constant/potentially_constant_test.dart
@@ -1409,7 +1409,7 @@
   late final int f = a + 1;
 }
 ''',
-      (result) => result.findNode.variableDeclaration('f =').initializer!,
+      (result) => result.findNode.variableDeclaration('f =').initializer2!,
       (result) => [result.findNode.simple('a +')],
     );
   }
@@ -1419,7 +1419,7 @@
 class const C(int a) {
   final int f = a + 1;
 }
-''', (result) => result.findNode.variableDeclaration('f =').initializer!);
+''', (result) => result.findNode.variableDeclaration('f =').initializer2!);
   }
 
   test_simpleIdentifier_parameterOfConstPrimaryConstructor_inFieldInitializer_static() async {
@@ -1429,18 +1429,22 @@
   static final int f = a + 1;
 }
 ''',
-      (result) => result.findNode.variableDeclaration('f =').initializer!,
+      (result) => result.findNode.variableDeclaration('f =').initializer2!,
       (result) => [result.findNode.simple('a +')],
     );
   }
 
   test_simpleIdentifier_parameterOfConstPrimaryConstructor_inInitializer() async {
-    await _assertConst(r'''
+    await _assertConst(
+      r'''
 class const C(int a) {
   final int f;
   this : f = a + 1;
 }
-''', (result) => result.findNode.constructorFieldInitializer('f =').expression);
+''',
+      (result) =>
+          result.findNode.constructorFieldInitializer('f =').expression2,
+    );
   }
 
   test_simpleIdentifier_parameterOfConstSecondaryConstructor_inBody() async {
@@ -1458,12 +1462,16 @@
   }
 
   test_simpleIdentifier_parameterOfConstSecondaryConstructor_inInitializer() async {
-    await _assertConst(r'''
+    await _assertConst(
+      r'''
 class C {
   final int f;
   const C(int a) : f = a + 1;
 }
-''', (result) => result.findNode.constructorFieldInitializer('f =').expression);
+''',
+      (result) =>
+          result.findNode.constructorFieldInitializer('f =').expression2,
+    );
   }
 
   test_simpleIdentifier_parameterOfNotConstPrimaryConstructor_inConstructorFieldInitializer() async {
@@ -1474,7 +1482,8 @@
   this : f = a + 1;
 }
 ''',
-      (result) => result.findNode.constructorFieldInitializer('f =').expression,
+      (result) =>
+          result.findNode.constructorFieldInitializer('f =').expression2,
       (result) => [result.findNode.simple('a +')],
     );
   }
@@ -1486,7 +1495,7 @@
   final int f = a + 1;
 }
 ''',
-      (result) => result.findNode.variableDeclaration('f =').initializer!,
+      (result) => result.findNode.variableDeclaration('f =').initializer2!,
       (result) => [result.findNode.simple('a +')],
     );
   }
@@ -1499,7 +1508,8 @@
   C(int a) : f = a + 1;
 }
 ''',
-      (result) => result.findNode.constructorFieldInitializer('f =').expression,
+      (result) =>
+          result.findNode.constructorFieldInitializer('f =').expression2,
       (result) => [result.findNode.simple('a +')],
     );
   }
@@ -1654,6 +1664,6 @@
   }
 
   Expression _xInitializer(TestResolvedUnitResult result) {
-    return result.findNode.variableDeclaration('x = ').initializer!;
+    return result.findNode.variableDeclaration('x = ').initializer2!;
   }
 }
diff --git a/pkg/analyzer/test/src/dart/parser/class_test.dart b/pkg/analyzer/test/src/dart/parser/class_test.dart
index 74537b5..5cf60dc 100644
--- a/pkg/analyzer/test/src/dart/parser/class_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/class_test.dart
@@ -481,7 +481,7 @@
       fieldName: SimpleIdentifier
         token: x
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -590,7 +590,7 @@
       fieldName: SimpleIdentifier
         token: x
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -718,7 +718,7 @@
           name: f
           defaultClause: FormalParameterDefaultClause
             separator: =
-            value: IntegerLiteral
+            value2: IntegerLiteral
               literal: 0
       rightDelimiter: ]
     rightParenthesis: )
@@ -801,7 +801,7 @@
       fieldName: SimpleIdentifier
         token: f
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -1331,7 +1331,7 @@
       superKeyword: super
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 2
         rightParenthesis: )
@@ -1566,7 +1566,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -1598,7 +1598,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -1659,7 +1659,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -1692,7 +1692,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -1783,7 +1783,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1814,7 +1814,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1837,7 +1837,7 @@
   name: A
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
     semicolon: ;
 ''');
@@ -2451,7 +2451,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -2661,7 +2661,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2708,7 +2708,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2756,7 +2756,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2811,7 +2811,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2863,7 +2863,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2911,7 +2911,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: ]
       rightParenthesis: )
@@ -2958,7 +2958,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: ]
       rightParenthesis: )
@@ -4039,11 +4039,11 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: BinaryExpression
-        leftOperand: SimpleIdentifier
+      condition2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: x
         operator: >
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 0
       rightParenthesis: )
   body: EmptyFunctionBody
@@ -4069,7 +4069,7 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
       rightBracket: }
@@ -4116,7 +4116,7 @@
       fieldName: SimpleIdentifier
         token: x
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
diff --git a/pkg/analyzer/test/src/dart/parser/doc_comment_test.dart b/pkg/analyzer/test/src/dart/parser/doc_comment_test.dart
index 440f14c6..a583dac 100644
--- a/pkg/analyzer/test/src/dart/parser/doc_comment_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/doc_comment_test.dart
@@ -117,7 +117,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /// `a[i]` and [b].
@@ -136,7 +136,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /** [:xxx [a] yyy:] [b] zzz */
@@ -154,10 +154,10 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: i
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /** `a[i] and [b] */
@@ -175,7 +175,7 @@
   documentationComment: Comment
     references
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: String @5
     tokens
       /** [String] */ @0
@@ -203,13 +203,13 @@
   documentationComment: Comment
     references
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: int @9
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: String @19
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: Object @36
     tokens
       /// See [int] and [String] @0
@@ -240,7 +240,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
   tokens
     /** [a]. */
@@ -267,16 +267,16 @@
   documentationComment: Comment
     references
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: included @86
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: int @143
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: String @153
       CommentReference
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: Object @240
     tokens
       /// This dartdoc comment is [included]. @57
@@ -325,7 +325,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: <empty> <synthetic>
   tokens
     /// [].
@@ -343,7 +343,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
   tokens
     /// Regarding [a]: it's an A.
@@ -361,10 +361,10 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /// [a] and [b].
@@ -382,10 +382,10 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /** [a] and [b]. */
@@ -404,7 +404,7 @@
   references
     CommentReference
       newKeyword: new
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: a
         period: .
@@ -427,7 +427,7 @@
   references
     CommentReference
       newKeyword: new
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: A
   tokens
     /// [new A].
@@ -445,7 +445,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: ==
   tokens
     /// [operator ==].
@@ -463,7 +463,7 @@
 Comment
   references
     CommentReference
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: Object
         period: .
@@ -485,7 +485,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: ==
   tokens
     /// [==].
@@ -503,7 +503,7 @@
 Comment
   references
     CommentReference
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: Object
         period: .
@@ -525,7 +525,7 @@
 Comment
   references
     CommentReference
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: a
         period: .
@@ -547,7 +547,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
   tokens
     /// [a].
@@ -1325,10 +1325,10 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: i
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: i
   tokens
     /// Text.
@@ -1373,7 +1373,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: c
   tokens
     /**
@@ -1439,7 +1439,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /// [a](http://www.google.com) [b].
@@ -1459,7 +1459,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /// [a]: http://www.google.com Google [b]
@@ -1547,7 +1547,7 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /// [a link][c] [b].
@@ -1566,10 +1566,10 @@
 Comment
   references
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
     CommentReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: b
   tokens
     /// [a link split across multiple
diff --git a/pkg/analyzer/test/src/dart/parser/enum_test.dart b/pkg/analyzer/test/src/dart/parser/enum_test.dart
index 629d393..f9d6810 100644
--- a/pkg/analyzer/test/src/dart/parser/enum_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/enum_test.dart
@@ -880,7 +880,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -913,7 +913,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -947,7 +947,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -978,7 +978,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1010,7 +1010,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1275,7 +1275,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1499,7 +1499,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -1558,7 +1558,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -1783,7 +1783,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
             rightParenthesis: )
@@ -1831,7 +1831,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
             rightParenthesis: )
@@ -1877,7 +1877,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
             rightParenthesis: )
diff --git a/pkg/analyzer/test/src/dart/parser/extension_test.dart b/pkg/analyzer/test/src/dart/parser/extension_test.dart
index a1ea1ed..650b9f3 100644
--- a/pkg/analyzer/test/src/dart/parser/extension_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/extension_test.dart
@@ -104,7 +104,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -253,7 +253,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -285,7 +285,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -314,7 +314,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -344,7 +344,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -477,7 +477,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
diff --git a/pkg/analyzer/test/src/dart/parser/extension_type_test.dart b/pkg/analyzer/test/src/dart/parser/extension_type_test.dart
index 5a3c71f..0ac77d5 100644
--- a/pkg/analyzer/test/src/dart/parser/extension_type_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/extension_type_test.dart
@@ -126,12 +126,12 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: A
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
         rightParenthesis: )
@@ -180,12 +180,12 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: A
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
         rightParenthesis: )
@@ -240,7 +240,7 @@
       fieldName: SimpleIdentifier
         token: it
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -271,7 +271,7 @@
       fieldName: SimpleIdentifier
         token: it
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -300,7 +300,7 @@
       fieldName: SimpleIdentifier
         token: it
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -330,7 +330,7 @@
       fieldName: SimpleIdentifier
         token: it
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -357,12 +357,12 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: A
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
         rightParenthesis: )
@@ -388,12 +388,12 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: A
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
         rightParenthesis: )
@@ -426,7 +426,7 @@
       fieldName: SimpleIdentifier
         token: it
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -456,7 +456,7 @@
       fieldName: SimpleIdentifier
         token: it
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
   body: EmptyFunctionBody
     semicolon: ;
@@ -732,12 +732,12 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
         rightParenthesis: )
@@ -772,7 +772,7 @@
             VariableDeclaration
               name: foo
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -808,7 +808,7 @@
             VariableDeclaration
               name: foo
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -857,7 +857,7 @@
             VariableDeclaration
               name: foo
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -905,7 +905,7 @@
             VariableDeclaration
               name: foo
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -951,7 +951,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -984,7 +984,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1019,7 +1019,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1186,7 +1186,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -1588,7 +1588,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -1634,7 +1634,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: ]
       rightParenthesis: )
@@ -1756,7 +1756,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2382,7 +2382,7 @@
             name: it
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2429,7 +2429,7 @@
             name: it
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: }
       rightParenthesis: )
@@ -2626,7 +2626,7 @@
             name: it
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: ]
       rightParenthesis: )
@@ -2673,7 +2673,7 @@
             name: it
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
         rightDelimiter: ]
       rightParenthesis: )
diff --git a/pkg/analyzer/test/src/dart/parser/mixin_test.dart b/pkg/analyzer/test/src/dart/parser/mixin_test.dart
index 1d2903d..eb855f3 100644
--- a/pkg/analyzer/test/src/dart/parser/mixin_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/mixin_test.dart
@@ -106,7 +106,7 @@
             VariableDeclaration
               name: F
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -134,7 +134,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -289,7 +289,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -320,7 +320,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -352,7 +352,7 @@
             VariableDeclaration
               name: x
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
         semicolon: ;
     rightBracket: }
@@ -381,7 +381,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -411,7 +411,7 @@
         name: foo
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
@@ -665,7 +665,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
     rightBracket: }
diff --git a/pkg/analyzer/test/src/dart/parser/null_aware_elements_test.dart b/pkg/analyzer/test/src/dart/parser/null_aware_elements_test.dart
index 5750d8b..0937c5d 100644
--- a/pkg/analyzer/test/src/dart/parser/null_aware_elements_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/null_aware_elements_test.dart
@@ -25,7 +25,7 @@
     assertParsedNodeText(node, r'''
 NullAwareElement
   question: ?
-  value: SimpleIdentifier
+  value2: SimpleIdentifier
     token: x
 ''');
   }
@@ -39,11 +39,11 @@
     assertParsedNodeText(node, r'''
 MapLiteralEntry
   keyQuestion: ?
-  key: SimpleIdentifier
+  key2: SimpleIdentifier
     token: x
   separator: :
   valueQuestion: ?
-  value: SimpleIdentifier
+  value2: SimpleIdentifier
     token: y
 ''');
   }
@@ -57,10 +57,10 @@
     assertParsedNodeText(node, r'''
 MapLiteralEntry
   keyQuestion: ?
-  key: SimpleIdentifier
+  key2: SimpleIdentifier
     token: x
   separator: :
-  value: SimpleIdentifier
+  value2: SimpleIdentifier
     token: y
 ''');
   }
@@ -73,11 +73,11 @@
     var node = parserResult.findNode.mapLiteralEntry("x: ?y");
     assertParsedNodeText(node, r'''
 MapLiteralEntry
-  key: SimpleIdentifier
+  key2: SimpleIdentifier
     token: x
   separator: :
   valueQuestion: ?
-  value: SimpleIdentifier
+  value2: SimpleIdentifier
     token: y
 ''');
   }
@@ -91,7 +91,7 @@
     assertParsedNodeText(node, r'''
 NullAwareElement
   question: ?
-  value: SimpleIdentifier
+  value2: SimpleIdentifier
     token: x
 ''');
   }
diff --git a/pkg/analyzer/test/src/dart/parser/record_literal_test.dart b/pkg/analyzer/test/src/dart/parser/record_literal_test.dart
index 6fd883e..53e6ffb 100644
--- a/pkg/analyzer/test/src/dart/parser/record_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/record_literal_test.dart
@@ -26,13 +26,13 @@
     assertParsedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     IntegerLiteral
       literal: 0
     RecordLiteralNamedField
       name: a
       colon: :
-      fieldExpression: IntegerLiteral
+      fieldExpression2: IntegerLiteral
         literal: 1
   rightParenthesis: )
 ''');
@@ -47,13 +47,13 @@
     assertParsedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     IntegerLiteral
       literal: 0
     RecordLiteralNamedField
       name: a
       colon: :
-      fieldExpression: IntegerLiteral
+      fieldExpression2: IntegerLiteral
         literal: 1
   rightParenthesis: )
 ''');
@@ -70,7 +70,7 @@
     assertParsedNodeText(node, r'''
 ParenthesizedExpression
   leftParenthesis: (
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
   rightParenthesis: )
 ''');
@@ -85,7 +85,7 @@
     assertParsedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     IntegerLiteral
       literal: 0
   rightParenthesis: )
@@ -101,7 +101,7 @@
     assertParsedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     IntegerLiteral
       literal: 0
     IntegerLiteral
diff --git a/pkg/analyzer/test/src/dart/parser/switch_statement_test.dart b/pkg/analyzer/test/src/dart/parser/switch_statement_test.dart
index 12096cf..e0abdf4 100644
--- a/pkg/analyzer/test/src/dart/parser/switch_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/switch_statement_test.dart
@@ -32,9 +32,9 @@
     assertParsedNodeText(node, r'''
 SwitchCase
   keyword: case
-  expression: ParenthesizedExpression
+  expression2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: int
     rightParenthesis: )
   colon: :
diff --git a/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart b/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart
index f22909c..166891c 100644
--- a/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/top_level_function_test.dart
@@ -280,7 +280,7 @@
   functionExpression: FunctionExpression
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
       semicolon: ;
 ''');
@@ -341,7 +341,7 @@
   functionExpression: FunctionExpression
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
       semicolon: ;
 ''');
@@ -425,7 +425,7 @@
           next: T5 |http|
         statements
           ExpressionStatement
-            expression: PrefixedIdentifier
+            expression2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: T5 http @15
                   previous: T4 |{|
diff --git a/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart b/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart
index 1d9105b..93e7350 100644
--- a/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/top_level_variable_test.dart
@@ -71,7 +71,7 @@
       VariableDeclaration
         name: foo
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 0
   semicolon: ;
 ''');
@@ -173,7 +173,7 @@
           VariableDeclaration
             name: foo
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/dart/parser/variable_declaration_statement_test.dart b/pkg/analyzer/test/src/dart/parser/variable_declaration_statement_test.dart
index d7e932b..d2367c0 100644
--- a/pkg/analyzer/test/src/dart/parser/variable_declaration_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/parser/variable_declaration_statement_test.dart
@@ -33,7 +33,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: x
         period: .
@@ -41,8 +41,8 @@
           token: foo
       semicolon: ; <synthetic>
     ExpressionStatement
-      expression: MethodInvocation
-        target: SimpleIdentifier
+      expression2: MethodInvocation
+        target2: SimpleIdentifier
           token: y
         operator: .
         methodName: SimpleIdentifier
@@ -71,7 +71,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: x
         period: .
@@ -79,10 +79,10 @@
           token: <empty> <synthetic>
       semicolon: ; <synthetic>
     ExpressionStatement
-      expression: AwaitExpression
+      expression2: AwaitExpression
         awaitKeyword: await
-        expression: MethodInvocation
-          target: SimpleIdentifier
+        expression2: MethodInvocation
+          target2: SimpleIdentifier
             token: y
           operator: .
           methodName: SimpleIdentifier
@@ -111,7 +111,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: PrefixedIdentifier
+      expression2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: x
         period: .
@@ -119,7 +119,7 @@
           token: foo
       semicolon: ; <synthetic>
     ExpressionStatement
-      expression: RecordLiteral
+      expression2: RecordLiteral
         leftParenthesis: (
         rightParenthesis: )
       semicolon: ;
diff --git a/pkg/analyzer/test/src/dart/resolution/as_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/as_expression_test.dart
index df1a438..7630b0d 100644
--- a/pkg/analyzer/test/src/dart/resolution/as_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/as_expression_test.dart
@@ -27,7 +27,7 @@
     var node = result.findNode.asExpression('as int');
     assertResolvedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: num
@@ -51,7 +51,7 @@
     var node = result.findNode.singleAsExpression;
     assertResolvedNodeText(node, r'''
 AsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: v
     element: v@17
     staticType: num
@@ -78,7 +78,7 @@
     var node = result.findNode.singleAsExpression;
     assertResolvedNodeText(node, r'''
 AsExpression
-  expression: SuperExpression
+  expression2: SuperExpression
     superKeyword: super
     staticType: A<T>
   asOperator: as
@@ -102,10 +102,10 @@
     var node = result.findNode.singleAsExpression;
     assertResolvedNodeText(node, r'''
 AsExpression
-  expression: SwitchExpression
+  expression2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -118,7 +118,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
     rightBracket: }
diff --git a/pkg/analyzer/test/src/dart/resolution/assignment_test.dart b/pkg/analyzer/test/src/dart/resolution/assignment_test.dart
index d179b09..7b70760 100644
--- a/pkg/analyzer/test/src/dart/resolution/assignment_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/assignment_test.dart
@@ -28,12 +28,12 @@
     var node = result.findNode.assignment('+= f()');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::g::@formalParameter::a
     staticType: null
   operator: +=
-  rightHandSide: MethodInvocation
+  rightHandSide2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
@@ -66,13 +66,13 @@
     var node = result.findNode.assignment('+= f()');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::g::@formalParameter::a
       staticType: List<int>
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: SubstitutedFormalParameterElementImpl
         baseElement: dart:core::@class::List::@method::[]=::@formalParameter::index
@@ -82,7 +82,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: MethodInvocation
+  rightHandSide2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
@@ -121,12 +121,12 @@
     var node = result.findNode.assignment('+= f()');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::g::@formalParameter::a
     staticType: null
   operator: +=
-  rightHandSide: MethodInvocation
+  rightHandSide2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
@@ -162,18 +162,18 @@
     var node = result.findNode.assignment('+=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::g::@formalParameter::a
     staticType: null
   operator: +=
-  rightHandSide: ConditionalExpression
-    condition: SimpleIdentifier
+  rightHandSide2: ConditionalExpression
+    condition2: SimpleIdentifier
       token: b
       element: <testLibrary>::@function::g::@formalParameter::b
       staticType: bool
     question: ?
-    thenExpression: MethodInvocation
+    thenExpression2: MethodInvocation
       methodName: SimpleIdentifier
         token: f
         element: <testLibrary>::@function::f
@@ -186,7 +186,7 @@
       typeArgumentTypes
         int
     colon: :
-    elseExpression: DoubleLiteral
+    elseExpression2: DoubleLiteral
       literal: 1.0
       staticType: double
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
@@ -218,12 +218,12 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -246,7 +246,7 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -259,7 +259,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -282,8 +282,8 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
@@ -302,7 +302,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -328,12 +328,12 @@
     var node = result.findNode.assignment('o1 ??= listNum');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: o1
     element: <testLibrary>::@function::f::@formalParameter::o1
     staticType: null
   operator: ??=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: listNum
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::listNum
@@ -363,7 +363,7 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -376,7 +376,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: package:test/a.dart::@setter::v::@formalParameter::value
     staticType: int
@@ -404,10 +404,10 @@
     var node = result.findNode.assignment('[0] += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
+  leftHandSide2: IndexExpression
     period: ..
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -415,7 +415,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -438,13 +438,13 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: dynamic
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <null>
       staticType: int
@@ -452,7 +452,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <null>
     staticType: int
@@ -480,13 +480,13 @@
     var node = result.findNode.assignment('[0] += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -494,7 +494,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -522,13 +522,13 @@
     var node = result.findNode.assignment('[0] += 2.0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -536,7 +536,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 2.0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: double
@@ -564,13 +564,13 @@
     var node = result.findNode.assignment('[0] ??= 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -578,7 +578,7 @@
     element: <null>
     staticType: null
   operator: ??=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -605,13 +605,13 @@
     var node = result.findNode.assignment('[0] = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -619,7 +619,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::_
     staticType: int
@@ -648,9 +648,9 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: PropertyAccess
-      target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: PropertyAccess
+      target2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::test::@formalParameter::a
         staticType: A?
@@ -661,7 +661,7 @@
         staticType: B
       staticType: B
     leftBracket: [
-    index: SimpleIdentifier
+    index2: SimpleIdentifier
       token: s
       correspondingParameter: <testLibrary>::@class::B::@method::[]=::@formalParameter::s
       element: <testLibrary>::@function::test::@formalParameter::s
@@ -670,7 +670,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::B::@method::[]=::@formalParameter::i
     staticType: int
@@ -701,9 +701,9 @@
     var node = result.findNode.assignment('= null');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: PropertyAccess
-      target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: PropertyAccess
+      target2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::test::@formalParameter::a
         staticType: A?
@@ -714,7 +714,7 @@
         staticType: B
       staticType: B
     leftBracket: [
-    index: SimpleIdentifier
+    index2: SimpleIdentifier
       token: s
       correspondingParameter: <testLibrary>::@class::B::@method::[]=::@formalParameter::s
       element: <testLibrary>::@function::test::@formalParameter::s
@@ -723,7 +723,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: NullLiteral
+  rightHandSide2: NullLiteral
     literal: null
     correspondingParameter: <testLibrary>::@class::B::@method::[]=::@formalParameter::i
     staticType: Null
@@ -753,12 +753,12 @@
     var node = result.findNode.assignment('[0] += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SuperExpression
+  leftHandSide2: IndexExpression
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -766,7 +766,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -794,12 +794,12 @@
     var node = result.findNode.assignment('[0] += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: ThisExpression
+  leftHandSide2: IndexExpression
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -807,7 +807,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -834,13 +834,13 @@
     var node = result.findNode.assignment('a[b] = c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <null>
       staticType: InvalidType
     leftBracket: [
-    index: SimpleIdentifier
+    index2: SimpleIdentifier
       token: b
       correspondingParameter: <null>
       element: <null>
@@ -849,7 +849,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -877,13 +877,13 @@
     var node = result.findNode.assignment('a[b] = c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int
     leftBracket: [
-    index: SimpleIdentifier
+    index2: SimpleIdentifier
       token: b
       correspondingParameter: <null>
       element: <null>
@@ -892,7 +892,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -922,13 +922,13 @@
     var node = result.findNode.assignment('a[b] = c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: SimpleIdentifier
+    index2: SimpleIdentifier
       token: b
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       element: <null>
@@ -937,7 +937,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::_
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -978,13 +978,13 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <null>
       staticType: InvalidType
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <null>
       staticType: int
@@ -992,7 +992,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <null>
     staticType: int
@@ -1020,11 +1020,11 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SuperExpression
+  leftHandSide2: SuperExpression
     superKeyword: super
     staticType: A
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -1050,13 +1050,13 @@
     var node = result.findNode.assignment('= c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: BinaryExpression
-    leftOperand: SimpleIdentifier
+  leftHandSide2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int
     operator: +
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: b
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       element: <testLibrary>::@function::f::@formalParameter::b
@@ -1065,7 +1065,7 @@
     staticInvokeType: num Function(num)
     staticType: int
   operator: +=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -1092,15 +1092,15 @@
     var node = result.findNode.assignment('= c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: ParenthesizedExpression
+  leftHandSide2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: int
       operator: +
-      rightOperand: SimpleIdentifier
+      rightOperand2: SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
         element: <testLibrary>::@function::f::@formalParameter::b
@@ -1111,7 +1111,7 @@
     rightParenthesis: )
     staticType: int
   operator: +=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -1148,7 +1148,7 @@
     rightParenthesis: )
     matchedValueType: double
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: double
@@ -1171,15 +1171,15 @@
     var node = result.findNode.assignment('= b');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: ParenthesizedExpression
+  leftHandSide2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: SimpleIdentifier
+    expression2: BinaryExpression
+      leftOperand2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: int
       operator: +
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 0
         correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
         staticType: int
@@ -1189,7 +1189,7 @@
     rightParenthesis: )
     staticType: int
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1216,8 +1216,8 @@
     var node = result.findNode.assignment('= y');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PostfixExpression
-    operand: SimpleIdentifier
+  leftHandSide2: PostfixExpression
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -1229,7 +1229,7 @@
     element: dart:core::@class::num::@method::+
     staticType: num
   operator: +=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -1256,8 +1256,8 @@
     var node = result.findNode.assignment('= y');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PostfixExpression
-    operand: SimpleIdentifier
+  leftHandSide2: PostfixExpression
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -1269,7 +1269,7 @@
     element: dart:core::@class::num::@method::+
     staticType: num
   operator: ??=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -1296,8 +1296,8 @@
     var node = result.findNode.assignment('= y');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PostfixExpression
-    operand: SimpleIdentifier
+  leftHandSide2: PostfixExpression
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -1309,7 +1309,7 @@
     element: dart:core::@class::num::@method::+
     staticType: num
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -1336,9 +1336,9 @@
     var node = result.findNode.assignment('= y');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixExpression
+  leftHandSide2: PrefixExpression
     operator: ++
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -1349,7 +1349,7 @@
     element: dart:core::@class::num::@method::+
     staticType: num
   operator: +=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -1376,9 +1376,9 @@
     var node = result.findNode.assignment('= y');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixExpression
+  leftHandSide2: PrefixExpression
     operator: ++
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -1389,7 +1389,7 @@
     element: dart:core::@class::num::@method::+
     staticType: num
   operator: ??=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -1416,9 +1416,9 @@
     var node = result.findNode.assignment('= y');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixExpression
+  leftHandSide2: PrefixExpression
     operator: ++
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -1429,7 +1429,7 @@
     element: dart:core::@class::num::@method::+
     staticType: num
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -1459,12 +1459,12 @@
     var node = result.findNode.assignment('C = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: C
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -1493,12 +1493,12 @@
     var node = result.findNode.assignment('C = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: C
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -1522,12 +1522,12 @@
     var node = result.findNode.assignment('??= f()');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::g::@formalParameter::a
     staticType: null
   operator: ??=
-  rightHandSide: MethodInvocation
+  rightHandSide2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
@@ -1564,7 +1564,7 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -1577,7 +1577,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1605,7 +1605,7 @@
     var node = result.findNode.assignment('x ??= 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -1618,7 +1618,7 @@
     element: <null>
     staticType: null
   operator: ??=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -1645,7 +1645,7 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -1658,7 +1658,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::_
     staticType: int
@@ -1687,7 +1687,7 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -1700,7 +1700,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -1727,7 +1727,7 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -1740,7 +1740,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::_
     staticType: int
@@ -1769,7 +1769,7 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -1782,7 +1782,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -1811,7 +1811,7 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: p
       element: <testLibraryFragment>::@prefix::p
@@ -1824,7 +1824,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1854,7 +1854,7 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: B
       element: <testLibrary>::@typeAlias::B
@@ -1867,7 +1867,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1892,7 +1892,7 @@
     var node = result.findNode.assignment('a.b = c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <null>
@@ -1905,7 +1905,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -1932,7 +1932,7 @@
     var node = result.findNode.assignment('a.b += c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -1945,7 +1945,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -1974,7 +1974,7 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
+  leftHandSide2: PropertyAccess
     operator: ..
     propertyName: SimpleIdentifier
       token: x
@@ -1982,7 +1982,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2012,8 +2012,8 @@
     var node = result.findNode.assignment('x = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: InstanceCreationExpression
+  leftHandSide2: PropertyAccess
+    target2: InstanceCreationExpression
       keyword: new
       constructorName: ConstructorName
         type: NamedType
@@ -2032,7 +2032,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::value
     staticType: int
@@ -2060,10 +2060,10 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: A
@@ -2076,7 +2076,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2112,10 +2112,10 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: c
         element: <testLibrary>::@function::f::@formalParameter::c
         staticType: C
@@ -2128,7 +2128,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2156,10 +2156,10 @@
     var node = result.findNode.assignment('x ??= 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: A
@@ -2172,7 +2172,7 @@
       staticType: null
     staticType: null
   operator: ??=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -2199,10 +2199,10 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: A
@@ -2215,7 +2215,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::_
     staticType: int
@@ -2244,9 +2244,9 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PropertyAccess
-      target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PropertyAccess
+      target2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::test::@formalParameter::a
         staticType: A?
@@ -2263,7 +2263,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::B::@setter::setter::@formalParameter::i
     staticType: int
@@ -2294,9 +2294,9 @@
     var node = result.findNode.assignment('= null');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PropertyAccess
-      target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PropertyAccess
+      target2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::test::@formalParameter::a
         staticType: A?
@@ -2313,7 +2313,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: NullLiteral
+  rightHandSide2: NullLiteral
     literal: null
     correspondingParameter: <testLibrary>::@class::B::@setter::setter::@formalParameter::i
     staticType: Null
@@ -2343,8 +2343,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2355,7 +2355,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -2384,8 +2384,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2396,7 +2396,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -2429,8 +2429,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2441,7 +2441,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -2472,8 +2472,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2484,7 +2484,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -2517,8 +2517,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2529,7 +2529,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2562,8 +2562,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2574,7 +2574,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -2606,8 +2606,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2618,7 +2618,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2650,8 +2650,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({int bar})
@@ -2662,7 +2662,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -2691,8 +2691,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -2703,7 +2703,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2732,8 +2732,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -2744,7 +2744,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -2777,8 +2777,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -2789,7 +2789,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2822,8 +2822,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -2834,7 +2834,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -2867,8 +2867,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -2879,7 +2879,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2912,8 +2912,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -2924,7 +2924,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -2958,8 +2958,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -2970,7 +2970,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -3004,8 +3004,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({String bar, int foo})
@@ -3016,7 +3016,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -3046,8 +3046,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3058,7 +3058,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -3087,8 +3087,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3099,7 +3099,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -3132,8 +3132,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3144,7 +3144,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -3177,8 +3177,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3189,7 +3189,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -3218,8 +3218,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3230,7 +3230,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -3259,8 +3259,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3271,7 +3271,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -3304,8 +3304,8 @@
     var node = result.findNode.assignment('+= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3316,7 +3316,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -3349,8 +3349,8 @@
     var node = result.findNode.assignment('= 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (int, String)
@@ -3361,7 +3361,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -3394,8 +3394,8 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -3405,7 +3405,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -3433,8 +3433,8 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ThisExpression
+  leftHandSide2: PropertyAccess
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     operator: .
@@ -3444,7 +3444,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -3469,10 +3469,10 @@
     var node = result.findNode.assignment('(a).b = c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <null>
         staticType: InvalidType
@@ -3485,7 +3485,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -3511,10 +3511,10 @@
     var node = result.findNode.assignment('(a).b = c');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: int
@@ -3527,7 +3527,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c
@@ -3555,12 +3555,12 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <testLibrary>::@class::A::@method::f::@formalParameter::a
     staticType: null
   operator: =
-  rightHandSide: SuperExpression
+  rightHandSide2: SuperExpression
     superKeyword: super
     staticType: A
   readElement: <null>
@@ -3586,12 +3586,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::C::@setter::x::@formalParameter::value
     staticType: int
@@ -3618,12 +3618,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::C::@setter::x::@formalParameter::value
     staticType: int
@@ -3652,12 +3652,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3686,12 +3686,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3718,12 +3718,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3756,12 +3756,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3788,12 +3788,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3818,12 +3818,12 @@
     var node = result.findNode.assignment('x += 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: x@51
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -3848,12 +3848,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: x@51
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3880,12 +3880,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: x@57
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3912,12 +3912,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: x@57
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -3940,12 +3940,12 @@
     var node = result.findNode.assignment('x ??=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
   operator: ??=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -3974,12 +3974,12 @@
     var node = result.findNode.assignment('x ??=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
   operator: ??=
-  rightHandSide: InstanceCreationExpression
+  rightHandSide2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: C
@@ -4012,12 +4012,12 @@
     var node = result.findNode.assignment('a ??=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: null
   operator: ??=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -4081,12 +4081,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -4111,12 +4111,12 @@
     var node = result.findNode.assignment('x = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <null>
     staticType: double
@@ -4141,12 +4141,12 @@
     var node = result.findNode.assignment('x = true');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
   operator: =
-  rightHandSide: BooleanLiteral
+  rightHandSide2: BooleanLiteral
     literal: true
     correspondingParameter: <null>
     staticType: bool
@@ -4172,12 +4172,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -4212,12 +4212,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -4252,12 +4252,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -4286,12 +4286,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::_
     staticType: int
@@ -4316,12 +4316,12 @@
     var node = result.findNode.assignment('= y');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: <empty> <synthetic>
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -4353,12 +4353,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::value
     staticType: int
@@ -4386,12 +4386,12 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -4426,12 +4426,12 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -4459,12 +4459,12 @@
     var node = result.findNode.assignment('x ??= 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: ??=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -4498,12 +4498,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -4529,12 +4529,12 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -4566,12 +4566,12 @@
     var node = result.findNode.assignment('x ??=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: ??=
-  rightHandSide: InstanceCreationExpression
+  rightHandSide2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: C
@@ -4607,12 +4607,12 @@
     var node = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -4637,12 +4637,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@setter::x::@formalParameter::value
     staticType: int
@@ -4669,12 +4669,12 @@
     var node = result.findNode.assignment('x = true');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: BooleanLiteral
+  rightHandSide2: BooleanLiteral
     literal: true
     correspondingParameter: <testLibrary>::@setter::x::@formalParameter::value
     staticType: bool
@@ -4701,12 +4701,12 @@
     var node = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -4731,12 +4731,12 @@
     var node = result.findNode.assignment('int += 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: int
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <null>
     staticType: int
@@ -4761,12 +4761,12 @@
     var node = result.findNode.assignment('int = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: int
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -4791,12 +4791,12 @@
     var node = result.findNode.assignment('x += 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <null>
     staticType: int
@@ -4821,12 +4821,12 @@
     var node = result.findNode.assignment('x = a');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: a
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::a
@@ -4860,12 +4860,12 @@
 
     var node = result.findNode.assignment('o ??= c2');
     assertResolvedNodeText(node, r'''AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: o
     element: <testLibrary>::@function::f::@formalParameter::o
     staticType: null
   operator: ??=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c2
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c2
@@ -4893,12 +4893,12 @@
 
     var node = result.findNode.assignment('o2 ??= i');
     assertResolvedNodeText(node, r'''AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: o2
     element: <testLibrary>::@function::f::@formalParameter::o2
     staticType: null
   operator: ??=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: i
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::i
@@ -4930,12 +4930,12 @@
     var node = result.findNode.assignment('o ??= c2');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: o
     element: <testLibrary>::@function::f::@formalParameter::o
     staticType: null
   operator: ??=
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: c2
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c2
diff --git a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
index b66a729..f1d9013 100644
--- a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
@@ -41,14 +41,14 @@
     var node = result.findNode.implicitCallReference('c;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: AssignmentExpression
-    leftHandSide: IndexExpression
-      target: SimpleIdentifier
+  expression2: AssignmentExpression
+    leftHandSide2: IndexExpression
+      target2: SimpleIdentifier
         token: map
         element: map@83
         staticType: Map<int, C>
       leftBracket: [
-      index: IntegerLiteral
+      index2: IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
           baseElement: dart:core::@class::Map::@method::[]=::@formalParameter::key
@@ -58,7 +58,7 @@
       element: <null>
       staticType: null
     operator: =
-    rightHandSide: SimpleIdentifier
+    rightHandSide2: SimpleIdentifier
       token: c
       correspondingParameter: SubstitutedFormalParameterElementImpl
         baseElement: dart:core::@class::Map::@method::[]=::@formalParameter::value
@@ -92,17 +92,17 @@
     var node = result.findNode.conditionalExpression('b ? a : c');
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -124,17 +124,17 @@
     var node = result.findNode.conditionalExpression('b ? c : a');
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -157,7 +157,7 @@
     var node = result.findNode.implicitCallReference('c<int>');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: c@55
     staticType: C
@@ -195,12 +195,12 @@
     var node = result.findNode.binary('c ?? a');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: a
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::a
@@ -225,13 +225,13 @@
     var node = result.findNode.implicitCallReference('c1 ?? c2');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: BinaryExpression
-    leftOperand: SimpleIdentifier
+  expression2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: c1
       element: <testLibrary>::@function::foo::@formalParameter::c1
       staticType: C?
     operator: ??
-    rightOperand: SimpleIdentifier
+    rightOperand2: SimpleIdentifier
       token: c2
       correspondingParameter: <null>
       element: <testLibrary>::@function::foo::@formalParameter::c2
@@ -258,7 +258,7 @@
     var node = result.findNode.implicitCallReference('c]');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -283,7 +283,7 @@
     var node = result.findNode.implicitCallReference('c,');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -308,7 +308,7 @@
     var node = result.findNode.implicitCallReference('c,');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -334,7 +334,7 @@
     var node = result.findNode.implicitCallReference('c2,');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c2
     element: <testLibrary>::@function::foo::@formalParameter::c2
     staticType: C
@@ -355,16 +355,16 @@
     var node = result.findNode.implicitCallReference('(c)');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: CascadeExpression
-    target: ParenthesizedExpression
+  expression2: CascadeExpression
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: c
         element: <testLibrary>::@function::f::@formalParameter::c
         staticType: C
       rightParenthesis: )
       staticType: C
-    cascadeSections
+    cascadeSections2
       MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
@@ -397,7 +397,7 @@
     var node = result.findNode.implicitCallReference('c.c;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::foo::@formalParameter::c
@@ -429,8 +429,8 @@
     var node = result.findNode.implicitCallReference('c.c.c');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: c
         element: <testLibrary>::@function::foo::@formalParameter::c
@@ -467,7 +467,7 @@
     var node = result.findNode.implicitCallReference('c}');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -490,7 +490,7 @@
     var node = result.findNode.implicitCallReference('c:');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -513,7 +513,7 @@
     var node = result.findNode.implicitCallReference('c}');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -536,7 +536,7 @@
     var node = result.findNode.implicitCallReference('c;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -557,7 +557,7 @@
     var node = result.findNode.implicitCallReference('b;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: A
@@ -578,7 +578,7 @@
     var node = result.findNode.implicitCallReference('x;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: X
@@ -598,7 +598,7 @@
     var node = result.findNode.implicitCallReference('y;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: y
     element: <testLibrary>::@function::f::@formalParameter::y
     staticType: Y
@@ -618,7 +618,7 @@
 ''');
 
     // Verify that no ImplicitCallReference was inserted.
-    var node = result.findNode.expressionFunctionBody('y;').expression;
+    var node = result.findNode.expressionFunctionBody('y;').expression2;
     assertResolvedNodeText(node, r'''
 SimpleIdentifier
   token: y
@@ -638,7 +638,7 @@
 ''');
 
     // Verify that no ImplicitCallReference was inserted.
-    var node = result.findNode.expressionFunctionBody('x;').expression;
+    var node = result.findNode.expressionFunctionBody('x;').expression2;
     assertResolvedNodeText(node, r'''
 SimpleIdentifier
   token: x
@@ -716,7 +716,7 @@
       substitution: {T: int, U: String}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -754,7 +754,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: a
         correspondingParameter: <null>
@@ -798,7 +798,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -851,7 +851,7 @@
       substitution: {T: int, U: String}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -915,7 +915,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -975,7 +975,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1035,7 +1035,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1066,7 +1066,7 @@
     var node = result.findNode.methodInvocation('bar(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -1085,7 +1085,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: package:test/a.dart::@class::A::@method::bar::@formalParameter::a
@@ -1136,7 +1136,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1179,7 +1179,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1237,7 +1237,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1295,7 +1295,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1320,7 +1320,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: A
     element: <testLibrary>::@class::A
     staticType: null
@@ -1331,7 +1331,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::a
@@ -1385,7 +1385,7 @@
       substitution: {T: int, U: String}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1431,7 +1431,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: a
         correspondingParameter: <null>
@@ -1462,7 +1462,7 @@
     var node = result.findNode.methodInvocation('A<int, String>(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: prefix
     element: <testLibraryFragment>::@prefix::prefix
     staticType: null
@@ -1485,7 +1485,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1534,7 +1534,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
diff --git a/pkg/analyzer/test/src/dart/resolution/await_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/await_expression_test.dart
index 645d0c9..d0e8d09 100644
--- a/pkg/analyzer/test/src/dart/resolution/await_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/await_expression_test.dart
@@ -70,7 +70,7 @@
     assertResolvedNodeText(node, r'''
 AwaitExpression
   awaitKeyword: await
-  expression: SuperExpression
+  expression2: SuperExpression
     superKeyword: super
     staticType: A
   staticType: A
@@ -90,8 +90,8 @@
     assertResolvedNodeText(node, r'''
 AwaitExpression
   awaitKeyword: await
-  expression: PropertyAccess
-    target: SuperExpression
+  expression2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: A
     operator: .
@@ -117,7 +117,7 @@
     assertResolvedNodeText(node, r'''
 AwaitExpression
   awaitKeyword: await
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: unresolved
     element: <null>
     staticType: InvalidType
@@ -140,7 +140,7 @@
     assertResolvedNodeText(node, r'''
 AwaitExpression
   awaitKeyword: await
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -169,9 +169,9 @@
     assertResolvedNodeText(node, r'''
 AwaitExpression
   awaitKeyword: await
-  expression: PropertyAccess
-    target: PropertyAccess
-      target: IntegerLiteral
+  expression2: PropertyAccess
+    target2: PropertyAccess
+      target2: IntegerLiteral
         literal: 0
         staticType: int
       operator: .
diff --git a/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart
index 9ca304a..f9ea84b 100644
--- a/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/binary_expression_test.dart
@@ -33,12 +33,12 @@
     var node = result.findNode.binary('a == 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
   operator: ==
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@method::==::@formalParameter::_
     staticType: int
@@ -59,10 +59,10 @@
     var node = result.findNode.binary('== 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SwitchExpression
+  leftOperand2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -75,13 +75,13 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
           staticType: int
     rightBracket: }
     staticType: int
   operator: ==
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::==::@formalParameter::other
     staticType: int
@@ -102,14 +102,14 @@
     var node = result.findNode.binary('0 ==');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: IntegerLiteral
+  leftOperand2: IntegerLiteral
     literal: 0
     staticType: int
   operator: ==
-  rightOperand: SwitchExpression
+  rightOperand2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -122,7 +122,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
           staticType: int
     rightBracket: }
@@ -147,12 +147,12 @@
     var node = result.findNode.binary('+ 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: (String,)
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::#0::@method::+::@formalParameter::other
     staticType: int
@@ -173,12 +173,12 @@
     var node = result.findNode.binary('+ 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: (String,)
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -201,12 +201,12 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
   operator: >>>
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@class::A::@method::>>>::@formalParameter::amount
     staticType: int
@@ -226,14 +226,14 @@
     var node = result.findNode.binary('?? 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: MethodInvocation
+  leftOperand2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
       staticType: T Function<T>(T)
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         NullLiteral
           literal: null
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -246,7 +246,7 @@
     typeArgumentTypes
       int?
   operator: ??
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -274,12 +274,12 @@
     var node = result.findNode.binary('c1 ?? c2');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: c2
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c2
@@ -301,12 +301,12 @@
     var node = result.findNode.binary('x ?? y');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -327,12 +327,12 @@
     var node = result.findNode.binary('x ?? y');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: y
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::y
@@ -353,12 +353,12 @@
     var node = result.findNode.binary('x ?? x');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: x
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::x
@@ -385,12 +385,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Int
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <testLibrary>::@extensionType::Int::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -411,12 +411,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -441,12 +441,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Never
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -469,10 +469,10 @@
     var node = result.findNode.binary('+ 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SwitchExpression
+  leftOperand2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -485,13 +485,13 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
           staticType: int
     rightBracket: }
     staticType: int
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -513,14 +513,14 @@
     var node = result.findNode.binary('0 +');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: IntegerLiteral
+  leftOperand2: IntegerLiteral
     literal: 0
     staticType: int
   operator: +
-  rightOperand: SwitchExpression
+  rightOperand2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -533,7 +533,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 1
           staticType: int
     rightBracket: }
@@ -561,12 +561,12 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
     element: <null>
     staticType: InvalidType
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
     correspondingParameter: <null>
     element: <null>
@@ -591,12 +591,12 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: <empty> <synthetic>
     element: <null>
     staticType: InvalidType
   operator: *
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
@@ -620,11 +620,11 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: IntegerLiteral
+  leftOperand2: IntegerLiteral
     literal: 2
     staticType: int
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: <empty> <synthetic>
     correspondingParameter: dart:core::@class::num::@method::*::@formalParameter::other
     element: <null>
@@ -653,11 +653,11 @@
     var node = result.findNode.binary('+ 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
     staticType: B
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@method::+::@formalParameter::other
     staticType: int
@@ -681,11 +681,11 @@
     var node = result.findNode.binary('+ 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ThisExpression
+  leftOperand2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@method::+::@formalParameter::other
     staticType: int
@@ -707,12 +707,12 @@
     var node = result.findNode.binary('a != b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: !=
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::==::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -737,11 +737,11 @@
     var node = result.findNode.binary('!= 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -752,7 +752,7 @@
     extendedType: int
     staticType: null
   operator: !=
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -774,12 +774,12 @@
     var node = result.findNode.binary('a !== b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: !==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -800,12 +800,12 @@
     var node = result.findNode.binary('a == 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: dynamic
   operator: ==
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::Object::@method::==::@formalParameter::other
     staticType: int
@@ -829,11 +829,11 @@
     var node = result.findNode.binary('== 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -844,7 +844,7 @@
     extendedType: int
     staticType: null
   operator: ==
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -864,12 +864,12 @@
     var node = result.findNode.binary('a == b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: ==
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::==::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -892,12 +892,12 @@
     var node = result.findNode.binary('a == 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: InvalidType
   operator: ==
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::Object::@method::==::@formalParameter::other
     staticType: int
@@ -919,12 +919,12 @@
     var node = result.findNode.binary('a === b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: ===
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -945,12 +945,12 @@
     var node = result.findNode.binary('a ?? b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -971,12 +971,12 @@
     var node = result.findNode.binary('a && b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: bool
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -997,12 +997,12 @@
     var node = result.findNode.binary('a || b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: bool
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1050,12 +1050,12 @@
     var node = result.findNode.binary('a - b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: -
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::-::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1076,12 +1076,12 @@
     var node = result.findNode.binary('a - b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: -
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::-::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1129,12 +1129,12 @@
     var node = result.findNode.binary('a % b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: %
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::%::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1155,12 +1155,12 @@
     var node = result.findNode.binary('a % b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: %
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::%::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1260,12 +1260,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: double
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::double::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1419,12 +1419,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1444,12 +1444,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1469,12 +1469,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1494,8 +1494,8 @@
     var node = result.findNode.binary('a() + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  leftOperand2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function()
@@ -1506,7 +1506,7 @@
     staticInvokeType: int Function()
     staticType: int
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1529,11 +1529,11 @@
     var node = result.findNode.binary('E(a) + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -1544,7 +1544,7 @@
     extendedType: int
     staticType: null
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1564,12 +1564,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1593,11 +1593,11 @@
     var node = result.findNode.binary('this + 1');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ThisExpression
+  leftOperand2: ThisExpression
     thisKeyword: this
     staticType: F
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
     correspondingParameter: i@null
     staticType: int
@@ -1620,12 +1620,12 @@
     var node = result.findNode.binary('x + 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: InvalidType
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -1775,12 +1775,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <testLibrary>::@class::A::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1805,11 +1805,11 @@
     var node = result.findNode.binary('E(a) + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -1820,7 +1820,7 @@
     extendedType: A
     staticType: null
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1845,12 +1845,12 @@
     var node = result.findNode.binary('a + b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
   operator: +
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1871,12 +1871,12 @@
     var node = result.findNode.binary('a + 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: T
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -1896,12 +1896,12 @@
     var node = result.findNode.binary('a + 0');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: T
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1921,12 +1921,12 @@
     var node = result.findNode.binary('a / b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: /
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::/::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -1974,12 +1974,12 @@
     var node = result.findNode.binary('a * b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::*::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -2000,12 +2000,12 @@
     var node = result.findNode.binary('a * b');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
   operator: *
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: dart:core::@class::num::@method::*::@formalParameter::other
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -2034,12 +2034,12 @@
 
     var node = result.findNode.binary('c1 ?? c2');
     assertResolvedNodeText(node, r'''BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1<int>?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: c2
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c2
@@ -2069,12 +2069,12 @@
 
     var node = result.findNode.binary('b2 ?? c1');
     assertResolvedNodeText(node, r'''BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: b2
     element: <testLibrary>::@function::f::@formalParameter::b2
     staticType: B2?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: c1
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c1
@@ -2102,12 +2102,12 @@
 
     var node = result.findNode.binary('c1 ?? b2');
     assertResolvedNodeText(node, r'''BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b2
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b2
@@ -2132,12 +2132,12 @@
     var node = result.findNode.binary('c1 ?? c2');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1?
   operator: ??
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: c2
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::c2
diff --git a/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart
index 3e35f37..1b0c319 100644
--- a/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/cast_pattern_test.dart
@@ -57,7 +57,7 @@
     assertResolvedNodeText(node, r'''
 CastPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: a@20
       staticType: int
@@ -101,7 +101,7 @@
     rightParenthesis: )
     matchedValueType: dynamic
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: dynamic
diff --git a/pkg/analyzer/test/src/dart/resolution/class_test.dart b/pkg/analyzer/test/src/dart/resolution/class_test.dart
index f9f44ce..762532e 100644
--- a/pkg/analyzer/test/src/dart/resolution/class_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/class_test.dart
@@ -311,7 +311,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
                 staticType: int
             declaredFragment: <testLibraryFragment> a@19
@@ -677,7 +677,7 @@
             VariableDeclaration
               name: foo
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
                 staticType: int
               declaredFragment: <testLibraryFragment> foo@59
@@ -695,7 +695,7 @@
             VariableDeclaration
               name: bar
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 1
                 staticType: int
               declaredFragment: <testLibraryFragment> bar@87
@@ -1132,7 +1132,7 @@
           name: x
           defaultClause: FormalParameterDefaultClause
             separator: =
-            value: SimpleIdentifier
+            value2: SimpleIdentifier
               token: foo
               element: <testLibrary>::@class::A::@getter::foo
               staticType: int
@@ -1384,7 +1384,7 @@
           AssertInitializer
             assertKeyword: assert
             leftParenthesis: (
-            condition: SimpleIdentifier
+            condition2: SimpleIdentifier
               token: x
               element: <testLibrary>::@class::A::@constructor::new::@formalParameter::x
               staticType: bool
@@ -1394,7 +1394,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: y
                   element: <testLibrary>::@class::A::@constructor::new::@formalParameter::y
                   staticType: bool
@@ -1407,9 +1407,9 @@
           AssertInitializer
             assertKeyword: assert
             leftParenthesis: (
-            condition: PrefixExpression
+            condition2: PrefixExpression
               operator: !
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: x
                 element: <testLibrary>::@class::A::@constructor::new::@formalParameter::x
                 staticType: bool
@@ -1421,9 +1421,9 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: PrefixExpression
+                expression2: PrefixExpression
                   operator: !
-                  operand: SimpleIdentifier
+                  operand2: SimpleIdentifier
                     token: y
                     element: <testLibrary>::@class::A::@constructor::new::@formalParameter::y
                     staticType: bool
@@ -1512,7 +1512,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
         element: <null>
         staticType: InvalidType
@@ -1522,7 +1522,7 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: y
             element: <null>
             staticType: InvalidType
@@ -1547,7 +1547,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: a
         element: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
         staticType: bool
@@ -1567,7 +1567,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: A
     element: <testLibrary>::@class::A::@constructor::new::@formalParameter::A
     staticType: int Function()
@@ -1597,7 +1597,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: a
         element: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
         staticType: bool
@@ -1622,7 +1622,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: A
     element: <testLibrary>::@class::B::@constructor::new::@formalParameter::A
     staticType: int Function()
@@ -1651,7 +1651,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: a
         element: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
         staticType: bool
@@ -1678,7 +1678,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: a
         element: <testLibrary>::@class::B::@constructor::new::@formalParameter::a
         staticType: bool
@@ -1699,7 +1699,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: A
     element: <testLibrary>::@class::B::@constructor::new::@formalParameter::A
     staticType: int Function()
@@ -1732,13 +1732,13 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: <testLibrary>::@class::A::@getter::a
             staticType: int
           semicolon: ;
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: foo
             element: <testLibrary>::@class::A::@method::foo
             staticType: void Function()
@@ -1768,13 +1768,13 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: <testLibrary>::@class::A::@getter::a
             staticType: int
           semicolon: ;
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: foo
             element: <testLibrary>::@class::A::@method::foo
             staticType: void Function()
@@ -1804,19 +1804,19 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
             staticType: int
           semicolon: ;
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: foo
             element: <testLibrary>::@class::A::@method::foo
             staticType: void Function()
           semicolon: ;
         ExpressionStatement
-          expression: PatternAssignment
+          expression2: PatternAssignment
             pattern: RecordPattern
               leftParenthesis: (
               fields
@@ -1829,9 +1829,9 @@
               rightParenthesis: )
               matchedValueType: (int,)
             equals: =
-            expression: RecordLiteral
+            expression2: RecordLiteral
               leftParenthesis: (
-              fields
+              fields2
                 IntegerLiteral
                   literal: 0
                   staticType: int
@@ -1865,13 +1865,13 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: <testLibrary>::@class::A::@getter::a
             staticType: int
           semicolon: ;
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: foo
             element: <testLibrary>::@class::B::@method::foo
             staticType: void Function()
@@ -1896,7 +1896,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <testLibrary>::@class::A::@constructor::new::@formalParameter::foo
           staticType: int
@@ -1922,7 +1922,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <testLibrary>::@class::A::@constructor::new::@formalParameter::foo
           staticType: int
@@ -1951,7 +1951,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <null>
           staticType: InvalidType
@@ -1980,7 +1980,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <null>
           staticType: InvalidType
diff --git a/pkg/analyzer/test/src/dart/resolution/comment_test.dart b/pkg/analyzer/test/src/dart/resolution/comment_test.dart
index 1f152de..0d76861 100644
--- a/pkg/analyzer/test/src/dart/resolution/comment_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/comment_test.dart
@@ -35,7 +35,7 @@
     var node = result.findNode.commentReference('A.named]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -63,7 +63,7 @@
     var node = result.findNode.commentReference('A.new]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -91,7 +91,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -120,7 +120,7 @@
     var node = result.findNode.commentReference('B.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: B
       element: <testLibrary>::@typeAlias::B
@@ -148,7 +148,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -176,7 +176,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -208,7 +208,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <null>
     staticType: null
@@ -224,7 +224,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <null>
     staticType: null
@@ -244,7 +244,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -274,7 +274,7 @@
     var node = result.findNode.commentReference('B.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: B
       element: <testLibrary>::@typeAlias::B
@@ -302,7 +302,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -330,7 +330,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -362,7 +362,7 @@
     var node = result.findNode.commentReference('A.named]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -394,7 +394,7 @@
     var node = result.findNode.commentReference('A.new]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -426,7 +426,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -458,7 +458,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -490,7 +490,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -522,7 +522,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -554,7 +554,7 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -586,7 +586,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: package:test/foo.dart::@extension::E
@@ -618,7 +618,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: package:test/foo.dart::@extension::E
@@ -650,7 +650,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: package:test/foo.dart::@extension::E
@@ -682,7 +682,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: package:test/foo.dart::@extension::E
@@ -714,7 +714,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: package:test/foo.dart::@extension::E
@@ -746,7 +746,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: package:test/foo.dart::@extension::E
@@ -774,7 +774,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@extension::E
@@ -802,7 +802,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@extension::E
@@ -830,7 +830,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@extension::E
@@ -858,7 +858,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@extension::E
@@ -886,7 +886,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@extension::E
@@ -914,7 +914,7 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@extension::E
@@ -947,8 +947,8 @@
     var node = result.findNode.commentReference('A.named]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -983,8 +983,8 @@
     var node = result.findNode.commentReference('A.new]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1019,8 +1019,8 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1056,8 +1056,8 @@
     var node = result.findNode.commentReference('B.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1092,8 +1092,8 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1128,8 +1128,8 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1164,8 +1164,8 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1201,8 +1201,8 @@
     var node = result.findNode.commentReference('B.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1237,8 +1237,8 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1273,8 +1273,8 @@
     var node = result.findNode.commentReference('A.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1309,8 +1309,8 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1345,8 +1345,8 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1381,8 +1381,8 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1417,8 +1417,8 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1453,8 +1453,8 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1489,8 +1489,8 @@
     var node = result.findNode.commentReference('E.foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: self
         element: <testLibraryFragment>::@prefix::self
@@ -1527,7 +1527,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: null
@@ -1549,7 +1549,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@extension::E2::@setter::foo
     staticType: null
@@ -1567,7 +1567,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: null
@@ -1587,7 +1587,7 @@
     var node = result.findNode.commentReference('p]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p
     element: <testLibrary>::@class::A::@constructor::new::@formalParameter::p
     staticType: null
@@ -1604,7 +1604,7 @@
     var node = result.findNode.commentReference('p]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p
     element: <testLibrary>::@class::A::@constructor::new::@formalParameter::p
     staticType: null
@@ -1626,7 +1626,7 @@
     var node = result.findNode.commentReference('p]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p
     element: <testLibrary>::@class::B::@constructor::new::@formalParameter::p
     staticType: null
@@ -1646,7 +1646,7 @@
     var node1 = result.findNode.commentReference('Samurai]');
     assertResolvedNodeText(node1, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: Samurai
     element: <testLibrary>::@enum::Samurai
     staticType: null
@@ -1655,7 +1655,7 @@
     var node2 = result.findNode.commentReference('int]');
     assertResolvedNodeText(node2, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: int
     element: dart:core::@class::int
     staticType: null
@@ -1664,7 +1664,7 @@
     var node3 = result.findNode.commentReference('WITH_SWORD]');
     assertResolvedNodeText(node3, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: WITH_SWORD
     element: <testLibrary>::@enum::Samurai::@getter::WITH_SWORD
     staticType: null
@@ -1695,7 +1695,7 @@
     var node = result.findNode.commentReference('p]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p
     element: <testLibrary>::@function::foo::@formalParameter::p
     staticType: null
@@ -1711,7 +1711,7 @@
     var node = result.findNode.commentReference('p]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p
     element: p@24
     staticType: null
@@ -1727,7 +1727,7 @@
     var node1 = result.findNode.commentReference('T]');
     assertResolvedNodeText(node1, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: T
     element: #E0 T
     staticType: null
@@ -1736,7 +1736,7 @@
     var node2 = result.findNode.commentReference('S]');
     assertResolvedNodeText(node2, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: S
     element: #E0 S
     staticType: null
@@ -1745,7 +1745,7 @@
     var node3 = result.findNode.commentReference('p]');
     assertResolvedNodeText(node3, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p
     element: p@68
     staticType: null
@@ -1787,7 +1787,7 @@
     var node1 = result.findNode.commentReference('p1]');
     assertResolvedNodeText(node1, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p1
     element: <testLibrary>::@class::A::@method::ma::@formalParameter::p1
     staticType: null
@@ -1796,7 +1796,7 @@
     var node2 = result.findNode.commentReference('p2]');
     assertResolvedNodeText(node2, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p2
     element: <testLibrary>::@class::A::@method::mb::@formalParameter::p2
     staticType: null
@@ -1805,7 +1805,7 @@
     var node3 = result.findNode.commentReference('p3]');
     assertResolvedNodeText(node3, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p3
     element: <testLibrary>::@class::A::@method::mc::@formalParameter::p3
     staticType: null
@@ -1814,7 +1814,7 @@
     var node4 = result.findNode.commentReference('p4]');
     assertResolvedNodeText(node4, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p4
     element: <testLibrary>::@class::A::@method::mc::@formalParameter::p4
     staticType: null
@@ -1823,7 +1823,7 @@
     var node5 = result.findNode.commentReference('p5]');
     assertResolvedNodeText(node5, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p5
     element: <testLibrary>::@class::A::@method::md::@formalParameter::p5
     staticType: null
@@ -1832,7 +1832,7 @@
     var node6 = result.findNode.commentReference('p6]');
     assertResolvedNodeText(node6, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: p6
     element: <testLibrary>::@class::A::@method::md::@formalParameter::p6
     staticType: null
@@ -1856,7 +1856,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: package:test/foo.dart::@getter::foo
     staticType: null
@@ -1882,7 +1882,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@extension::E2::@setter::foo
     staticType: null
@@ -1907,7 +1907,7 @@
     var node = result.findNode.commentReference('C]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: C
     element: package:test/one.dart::@class::C
     staticType: null
@@ -1937,7 +1937,7 @@
     assertResolvedNodeText(node1, r'''
 CommentReference
   newKeyword: new
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: A
     element: package:test/foo.dart::@class::A::@constructor::new
     staticType: null
@@ -1947,7 +1947,7 @@
     assertResolvedNodeText(node2, r'''
 CommentReference
   newKeyword: new
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/foo.dart::@class::A
@@ -1980,7 +1980,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: package:test/foo.dart::@function::foo
     staticType: null
@@ -2002,7 +2002,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: package:test/foo.dart::@function::foo
     staticType: null
@@ -2025,7 +2025,7 @@
     var node = result.findNode.commentReference('A]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: A
     element: package:test/foo.dart::@class::A
     staticType: null
@@ -2046,7 +2046,7 @@
     var node = result.findNode.commentReference('A]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: A
     element: package:test/foo.dart::@class::A
     staticType: null
@@ -2068,7 +2068,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: package:test/foo.dart::@function::foo
     staticType: null
@@ -2089,7 +2089,7 @@
     var node = result.findNode.commentReference('A]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: A
     element: package:test/foo.dart::@class::A
     staticType: null
@@ -2111,7 +2111,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: package:test/foo.dart::@function::foo
     staticType: null
@@ -2137,7 +2137,7 @@
     assertResolvedNodeText(node1, r'''
 CommentReference
   newKeyword: new
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: A
     element: <testLibrary>::@class::A::@constructor::new
     staticType: null
@@ -2147,7 +2147,7 @@
     assertResolvedNodeText(node2, r'''
 CommentReference
   newKeyword: new
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -2177,7 +2177,7 @@
     var node = result.findNode.commentReference('int]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: int
     element: dart:core::@class::int
     staticType: null
@@ -2195,7 +2195,7 @@
     var node = result.findNode.commentReference('int]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: int
     element: dart:core::@class::int
     staticType: null
@@ -2212,7 +2212,7 @@
     var node = result.findNode.commentReference('bar]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: bar
     element: <testLibrary>::@function::f::@formalParameter::bar
     staticType: null
@@ -2230,7 +2230,7 @@
     var node = result.findNode.commentReference('int]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: int
     element: dart:core::@class::int
     staticType: null
@@ -2255,7 +2255,7 @@
     var node = result.findNode.commentReference('int]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: int
     element: dart:core::@class::int
     staticType: null
@@ -2279,7 +2279,7 @@
     var node1 = result.findNode.commentReference('x] in A');
     assertResolvedNodeText(node1, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@class::A::@setter::x
     staticType: null
@@ -2288,7 +2288,7 @@
     var node2 = result.findNode.commentReference('x] in B');
     assertResolvedNodeText(node2, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@class::A::@setter::x
     staticType: null
@@ -2308,7 +2308,7 @@
     var node = result.findNode.commentReference('foo]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: null
diff --git a/pkg/analyzer/test/src/dart/resolution/conditional_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/conditional_expression_test.dart
index 123ea08..7882e21 100644
--- a/pkg/analyzer/test/src/dart/resolution/conditional_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/conditional_expression_test.dart
@@ -31,15 +31,15 @@
     var node = result.findNode.singleConditionalExpression;
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SuperExpression
+  condition2: SuperExpression
     superKeyword: super
     staticType: A
   question: ?
-  thenExpression: IntegerLiteral
+  thenExpression2: IntegerLiteral
     literal: 0
     staticType: int
   colon: :
-  elseExpression: IntegerLiteral
+  elseExpression2: IntegerLiteral
     literal: 1
     staticType: int
   staticType: int
@@ -86,16 +86,16 @@
     var node = result.findNode.singleConditionalExpression;
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: c
     element: <testLibrary>::@class::A::@method::f::@formalParameter::c
     staticType: bool
   question: ?
-  thenExpression: IntegerLiteral
+  thenExpression2: IntegerLiteral
     literal: 0
     staticType: int
   colon: :
-  elseExpression: SuperExpression
+  elseExpression2: SuperExpression
     superKeyword: super
     staticType: A
   staticType: Object
@@ -120,17 +120,17 @@
     var node = result.findNode.conditionalExpression('b ? c1 : c2');
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: c2
     element: <testLibrary>::@function::f::@formalParameter::c2
     staticType: C2
@@ -156,17 +156,17 @@
     var node = result.findNode.conditionalExpression('b ?');
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: t
     element: <testLibrary>::@function::f::@formalParameter::t
     staticType: T & int
   colon: :
-  elseExpression: NullLiteral
+  elseExpression2: NullLiteral
     literal: null
     staticType: Null
   staticType: int?
@@ -183,17 +183,17 @@
     var node = result.findNode.conditionalExpression('b ?');
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: r1
     element: <testLibrary>::@function::f::@formalParameter::r1
     staticType: (int, String)
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: r2
     element: <testLibrary>::@function::f::@formalParameter::r2
     staticType: ({int a})
@@ -211,17 +211,17 @@
     var node = result.findNode.conditionalExpression('b ?');
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: r1
     element: <testLibrary>::@function::f::@formalParameter::r1
     staticType: ({int a})
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: r2
     element: <testLibrary>::@function::f::@formalParameter::r2
     staticType: ({double a})
@@ -243,16 +243,16 @@
     var node = result.findNode.singleConditionalExpression;
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: c
     element: <testLibrary>::@class::A::@method::f::@formalParameter::c
     staticType: bool
   question: ?
-  thenExpression: SuperExpression
+  thenExpression2: SuperExpression
     superKeyword: super
     staticType: A
   colon: :
-  elseExpression: IntegerLiteral
+  elseExpression2: IntegerLiteral
     literal: 0
     staticType: int
   staticType: Object
@@ -269,16 +269,16 @@
     var node = result.findNode.singleConditionalExpression;
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: IntegerLiteral
+  thenExpression2: IntegerLiteral
     literal: 0
     staticType: int
   colon: :
-  elseExpression: DoubleLiteral
+  elseExpression2: DoubleLiteral
     literal: 1.2
     staticType: double
   staticType: num
@@ -295,16 +295,16 @@
     var node = result.findNode.singleConditionalExpression;
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: IntegerLiteral
+  thenExpression2: IntegerLiteral
     literal: 42
     staticType: int
   colon: :
-  elseExpression: NullLiteral
+  elseExpression2: NullLiteral
     literal: null
     staticType: Null
   staticType: int?
@@ -339,17 +339,17 @@
 
     var node = result.findNode.conditionalExpression('b ? c1 : c2');
     assertResolvedNodeText(node, r'''ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1<int>
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: c2
     element: <testLibrary>::@function::f::@formalParameter::c2
     staticType: C2<double>
@@ -376,17 +376,17 @@
 
     var node = result.findNode.conditionalExpression('b ? b2 : c1');
     assertResolvedNodeText(node, r'''ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: b2
     element: <testLibrary>::@function::f::@formalParameter::b2
     staticType: B2
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1
@@ -411,17 +411,17 @@
 
     var node = result.findNode.conditionalExpression('b ? c1 : b2');
     assertResolvedNodeText(node, r'''ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: b2
     element: <testLibrary>::@function::f::@formalParameter::b2
     staticType: B2
@@ -443,17 +443,17 @@
     var node = result.findNode.conditionalExpression('b ? c1 : c2');
     assertResolvedNodeText(node, r'''
 ConditionalExpression
-  condition: SimpleIdentifier
+  condition2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool
   question: ?
-  thenExpression: SimpleIdentifier
+  thenExpression2: SimpleIdentifier
     token: c1
     element: <testLibrary>::@function::f::@formalParameter::c1
     staticType: C1
   colon: :
-  elseExpression: SimpleIdentifier
+  elseExpression2: SimpleIdentifier
     token: c2
     element: <testLibrary>::@function::f::@formalParameter::c2
     staticType: C2
diff --git a/pkg/analyzer/test/src/dart/resolution/constant_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/constant_pattern_test.dart
index 4c26da9..fc51d05 100644
--- a/pkg/analyzer/test/src/dart/resolution/constant_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constant_pattern_test.dart
@@ -30,7 +30,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -61,7 +61,7 @@
     assertResolvedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: InstanceCreationExpression
+  expression2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -85,7 +85,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   matchedValueType: dynamic
@@ -104,7 +104,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: double
   matchedValueType: double
@@ -121,9 +121,9 @@
     assertResolvedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: ListLiteral
+  expression2: ListLiteral
     leftBracket: [
-    elements
+    elements2
       IntegerLiteral
         literal: 0
         staticType: int
@@ -143,15 +143,15 @@
     assertResolvedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: SetOrMapLiteral
+  expression2: SetOrMapLiteral
     leftBracket: {
-    elements
+    elements2
       MapLiteralEntry
-        key: IntegerLiteral
+        key2: IntegerLiteral
           literal: 0
           staticType: int
         separator: :
-        value: IntegerLiteral
+        value2: IntegerLiteral
           literal: 1
           staticType: int
     rightBracket: }
@@ -179,8 +179,8 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -218,7 +218,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -244,9 +244,9 @@
     assertResolvedNodeText(node, r'''
 ConstantPattern
   constKeyword: const
-  expression: SetOrMapLiteral
+  expression2: SetOrMapLiteral
     leftBracket: {
-    elements
+    elements2
       IntegerLiteral
         literal: 0
         staticType: int
@@ -271,7 +271,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: int
@@ -288,7 +288,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       name: dynamic
       element: dynamic
@@ -307,7 +307,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       name: int
       element: dart:core::@class::int
@@ -329,12 +329,12 @@
   leftBracket: [
   elements
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: Object?
     ConstantPattern
-      expression: TypeLiteral
+      expression2: TypeLiteral
         type: NamedType
           name: int
           element: dart:core::@class::int
@@ -356,7 +356,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       name: Never
       element: Never
@@ -377,7 +377,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       name: A
       element: <testLibrary>::@typeAlias::A
@@ -399,7 +399,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       name: T
       element: #E0 T
@@ -420,7 +420,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       importPrefix: ImportPrefixReference
         name: core
@@ -445,7 +445,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       importPrefix: ImportPrefixReference
         name: core
@@ -470,7 +470,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       importPrefix: ImportPrefixReference
         name: core
@@ -500,7 +500,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: TypeLiteral
+  expression2: TypeLiteral
     type: NamedType
       importPrefix: ImportPrefixReference
         name: prefix
@@ -524,7 +524,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   matchedValueType: dynamic
@@ -543,7 +543,7 @@
     var node = result.findNode.singleGuardedPattern.pattern;
     assertResolvedNodeText(node, r'''
 ConstantPattern
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   matchedValueType: dynamic
diff --git a/pkg/analyzer/test/src/dart/resolution/constructor_field_initializer_test.dart b/pkg/analyzer/test/src/dart/resolution/constructor_field_initializer_test.dart
index b923b27..70d81ca 100644
--- a/pkg/analyzer/test/src/dart/resolution/constructor_field_initializer_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constructor_field_initializer_test.dart
@@ -40,7 +40,7 @@
     element: <testLibrary>::@class::A::@field::_foo
     staticType: null
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -62,7 +62,7 @@
     element: <testLibrary>::@class::A::@field::f
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
     staticType: int
@@ -85,10 +85,10 @@
     element: <testLibrary>::@class::A::@field::x
     staticType: null
   equals: =
-  expression: FunctionExpressionInvocation
-    function: ParenthesizedExpression
+  expression2: FunctionExpressionInvocation
+    function2: ParenthesizedExpression
       leftParenthesis: (
-      expression: FunctionExpression
+      expression2: FunctionExpression
         parameters: FormalParameterList
           leftParenthesis: (
           rightParenthesis: )
@@ -98,13 +98,13 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: BinaryExpression
-                  leftOperand: SimpleIdentifier
+                expression2: BinaryExpression
+                  leftOperand2: SimpleIdentifier
                     token: a
                     element: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
                     staticType: int
                   operator: +
-                  rightOperand: IntegerLiteral
+                  rightOperand2: IntegerLiteral
                     literal: 1
                     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
                     staticType: int
@@ -144,22 +144,22 @@
     element: <testLibrary>::@class::A::@field::x
     staticType: null
   equals: =
-  expression: FunctionExpressionInvocation
-    function: ParenthesizedExpression
+  expression2: FunctionExpressionInvocation
+    function2: ParenthesizedExpression
       leftParenthesis: (
-      expression: FunctionExpression
+      expression2: FunctionExpression
         parameters: FormalParameterList
           leftParenthesis: (
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
               staticType: int
             operator: +
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 1
               correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
               staticType: int
@@ -200,7 +200,7 @@
     element: <testLibrary>::@class::A::@field::x
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -226,7 +226,7 @@
     element: <null>
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -252,7 +252,7 @@
     element: <testLibrary>::@class::A::@field::x
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -280,7 +280,7 @@
     element: <null>
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -306,7 +306,7 @@
     element: <null>
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -332,7 +332,7 @@
     element: <testLibrary>::@class::A::@field::x
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -358,7 +358,7 @@
     element: <null>
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -384,7 +384,7 @@
     element: <null>
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -409,7 +409,7 @@
     element: <null>
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -434,7 +434,7 @@
     element: <null>
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/constructor_test.dart b/pkg/analyzer/test/src/dart/resolution/constructor_test.dart
index f8896c1..3748c48 100644
--- a/pkg/analyzer/test/src/dart/resolution/constructor_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/constructor_test.dart
@@ -66,7 +66,7 @@
     element: <testLibrary>::@class::A::@field::v
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: _
     element: <testLibrary>::@class::A::@getter::_
     staticType: dynamic
@@ -121,7 +121,7 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: <testLibrary>::@class::B::@constructor::new::@formalParameter::a
             staticType: a
@@ -154,7 +154,7 @@
     element: <testLibrary>::@class::C::@field::_y
     staticType: null
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: _x
     element: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
     staticType: int?
diff --git a/pkg/analyzer/test/src/dart/resolution/declared_variable_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/declared_variable_pattern_test.dart
index 5ce28ea..2b1ea90 100644
--- a/pkg/analyzer/test/src/dart/resolution/declared_variable_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/declared_variable_pattern_test.dart
@@ -129,7 +129,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
diff --git a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart
index e155b10..5e68efd 100644
--- a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_constructor_invocation_test.dart
@@ -95,7 +95,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: iter
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -220,7 +220,7 @@
     var node = result.findNode.methodInvocation('method();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: DotShorthandConstructorInvocation
+  target2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: new
@@ -228,7 +228,7 @@
       staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 1
           correspondingParameter: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
@@ -266,7 +266,7 @@
     var node = result.findNode.methodInvocation('method();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: DotShorthandConstructorInvocation
+  target2: DotShorthandConstructorInvocation
     constKeyword: const
     period: .
     constructorName: SimpleIdentifier
@@ -275,7 +275,7 @@
       staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 1
           correspondingParameter: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
@@ -313,7 +313,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: DotShorthandConstructorInvocation
+  target2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: new
@@ -321,7 +321,7 @@
       staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 1
           correspondingParameter: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
@@ -355,7 +355,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: DotShorthandConstructorInvocation
+  target2: DotShorthandConstructorInvocation
     constKeyword: const
     period: .
     constructorName: SimpleIdentifier
@@ -364,7 +364,7 @@
       staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 1
           correspondingParameter: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
@@ -403,7 +403,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::A::@constructor::value::@formalParameter::value
@@ -437,7 +437,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::A::@constructor::value::@formalParameter::val
@@ -505,7 +505,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::A::@constructor::value::@formalParameter::val
@@ -540,7 +540,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@constructor::named::@formalParameter::x
@@ -575,7 +575,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@constructor::named::@formalParameter::x
@@ -610,7 +610,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@constructor::named::@formalParameter::x
@@ -677,7 +677,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@constructor::named::@formalParameter::x
@@ -715,7 +715,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 2
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -769,7 +769,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@constructor::named::@formalParameter::x
@@ -801,7 +801,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 2
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -841,7 +841,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 2
         correspondingParameter: <testLibrary>::@class::C::@constructor::named::@formalParameter::x
@@ -981,7 +981,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandConstructorInvocation
+  function2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: new
@@ -1015,7 +1015,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandConstructorInvocation
+  function2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: new
@@ -1028,7 +1028,7 @@
     staticType: C
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@method::call::@formalParameter::x
@@ -1056,7 +1056,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandConstructorInvocation
+  function2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: new
@@ -1090,7 +1090,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandConstructorInvocation
+  function2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: new
@@ -1111,7 +1111,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1142,7 +1142,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandConstructorInvocation
+  function2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: named
@@ -1178,7 +1178,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandConstructorInvocation
+  function2: DotShorthandConstructorInvocation
     period: .
     constructorName: SimpleIdentifier
       token: new
@@ -1186,7 +1186,7 @@
       staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         DotShorthandConstructorInvocation
           period: .
           constructorName: SimpleIdentifier
@@ -1252,7 +1252,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       DotShorthandInvocation
         period: .
         memberName: SimpleIdentifier
@@ -1300,7 +1300,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       DotShorthandPropertyAccess
         period: .
         propertyName: SimpleIdentifier
@@ -1341,7 +1341,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
diff --git a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart
index 66d7e2e..f7beef6 100644
--- a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_invocation_test.dart
@@ -95,7 +95,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -135,7 +135,7 @@
     staticType: C Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@method::member::@formalParameter::x
@@ -236,7 +236,7 @@
     staticType: C Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@method::member::@formalParameter::x
@@ -404,7 +404,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandInvocation
+  function2: DotShorthandInvocation
     period: .
     memberName: SimpleIdentifier
       token: member
@@ -440,7 +440,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandInvocation
+  function2: DotShorthandInvocation
     period: .
     memberName: SimpleIdentifier
       token: member
@@ -454,7 +454,7 @@
     staticType: C
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@method::call::@formalParameter::a
@@ -484,7 +484,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandInvocation
+  function2: DotShorthandInvocation
     period: .
     memberName: SimpleIdentifier
       token: member
@@ -520,7 +520,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandInvocation
+  function2: DotShorthandInvocation
     period: .
     memberName: SimpleIdentifier
       token: member
@@ -542,7 +542,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -574,7 +574,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandInvocation
+  function2: DotShorthandInvocation
     period: .
     memberName: SimpleIdentifier
       token: member
@@ -582,7 +582,7 @@
       staticType: C Function(C)
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         DotShorthandInvocation
           period: .
           memberName: SimpleIdentifier
@@ -755,7 +755,7 @@
     staticType: C<U> Function<U, V>(U)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       DotShorthandConstructorInvocation
         period: .
         constructorName: SimpleIdentifier
@@ -766,7 +766,7 @@
           staticType: null
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             DotShorthandInvocation
               period: .
               memberName: SimpleIdentifier
@@ -1137,7 +1137,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@extensionType::_Private::@constructor::new::@formalParameter::i
@@ -1280,7 +1280,7 @@
     staticType: C<X> Function<X>(X)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: "String"
     rightParenthesis: )
diff --git a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart
index 7a9b4c2..27b8ce2 100644
--- a/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/dot_shorthand_property_access_test.dart
@@ -474,7 +474,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandPropertyAccess
+  function2: DotShorthandPropertyAccess
     period: .
     propertyName: SimpleIdentifier
       token: field
@@ -484,7 +484,7 @@
     staticType: C
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <testLibrary>::@class::C::@method::call::@formalParameter::a
@@ -514,7 +514,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandPropertyAccess
+  function2: DotShorthandPropertyAccess
     period: .
     propertyName: SimpleIdentifier
       token: field
@@ -549,7 +549,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandPropertyAccess
+  function2: DotShorthandPropertyAccess
     period: .
     propertyName: SimpleIdentifier
       token: getter
@@ -581,7 +581,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandPropertyAccess
+  function2: DotShorthandPropertyAccess
     period: .
     propertyName: SimpleIdentifier
       token: field
@@ -613,7 +613,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandPropertyAccess
+  function2: DotShorthandPropertyAccess
     period: .
     propertyName: SimpleIdentifier
       token: field
@@ -631,7 +631,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -662,7 +662,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: DotShorthandPropertyAccess
+  function2: DotShorthandPropertyAccess
     period: .
     propertyName: SimpleIdentifier
       token: getter
diff --git a/pkg/analyzer/test/src/dart/resolution/enum_test.dart b/pkg/analyzer/test/src/dart/resolution/enum_test.dart
index 570516e..8149beb 100644
--- a/pkg/analyzer/test/src/dart/resolution/enum_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/enum_test.dart
@@ -94,7 +94,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: PrefixedIdentifier
+                expression2: PrefixedIdentifier
                   prefix: SimpleIdentifier
                     token: A
                     element: <testLibrary>::@enum::A
@@ -174,7 +174,7 @@
             name: values
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
                 staticType: int
               semicolon: ;
@@ -212,7 +212,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: PrefixedIdentifier
+                expression2: PrefixedIdentifier
                   prefix: SimpleIdentifier
                     token: A
                     element: <testLibrary>::@enum::A
@@ -326,7 +326,7 @@
         staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 42
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -356,7 +356,7 @@
   arguments: EnumConstantArguments
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 42
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -400,7 +400,7 @@
         staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 42
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -483,7 +483,7 @@
         staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 42
           correspondingParameter: <testLibrary>::@enum::E::@constructor::named::@formalParameter::a
@@ -509,7 +509,7 @@
   arguments: EnumConstantArguments
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 42
           correspondingParameter: <testLibrary>::@enum::E::@constructor::new::@formalParameter::a
@@ -559,7 +559,7 @@
         staticType: null
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 42
           correspondingParameter: <null>
@@ -587,7 +587,7 @@
   arguments: EnumConstantArguments
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 42
           correspondingParameter: <null>
@@ -656,7 +656,7 @@
       VariableDeclaration
         name: foo
         equals: =
-        initializer: IntegerLiteral
+        initializer2: IntegerLiteral
           literal: 42
           staticType: int
         declaredFragment: <testLibraryFragment> foo@22
@@ -684,9 +684,9 @@
   name: foo
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       staticType: Never
@@ -811,7 +811,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     semicolon: ;
@@ -842,7 +842,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: SimpleStringLiteral
+    expression2: SimpleStringLiteral
       literal: 'E'
     semicolon: ;
   declaredFragment: <testLibraryFragment> toString@23
@@ -990,7 +990,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
                 staticType: int
             declaredFragment: <testLibraryFragment> a@18
@@ -1031,11 +1031,11 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               NamedArgument
                 name: a
                 colon: :
-                argumentExpression: IntegerLiteral
+                argumentExpression2: IntegerLiteral
                   literal: 1
                   staticType: int
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::new::@formalParameter::a
@@ -1105,11 +1105,11 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               NamedArgument
                 name: a
                 colon: :
-                argumentExpression: IntegerLiteral
+                argumentExpression2: IntegerLiteral
                   literal: 0
                   staticType: int
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::new::@formalParameter::a
@@ -1212,7 +1212,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: foo
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::new::@formalParameter::a
@@ -1277,7 +1277,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::new::@formalParameter::a
@@ -1346,7 +1346,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::new::@formalParameter::a
@@ -1543,7 +1543,7 @@
               staticType: null
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
                 correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1615,7 +1615,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
                 correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1688,7 +1688,7 @@
               staticType: null
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::named::@formalParameter::a
@@ -1748,7 +1748,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               IntegerLiteral
                 literal: 0
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::new::@formalParameter::a
@@ -1811,7 +1811,7 @@
           name: x
           defaultClause: FormalParameterDefaultClause
             separator: =
-            value: SimpleIdentifier
+            value2: SimpleIdentifier
               token: foo
               element: <testLibrary>::@enum::A::@getter::foo
               staticType: int
@@ -2013,7 +2013,7 @@
         arguments: EnumConstantArguments
           argumentList: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               BooleanLiteral
                 literal: true
                 correspondingParameter: <testLibrary>::@enum::A::@constructor::new::@formalParameter::x
@@ -2034,7 +2034,7 @@
           AssertInitializer
             assertKeyword: assert
             leftParenthesis: (
-            condition: SimpleIdentifier
+            condition2: SimpleIdentifier
               token: x
               element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::x
               staticType: bool
@@ -2044,7 +2044,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: y
                   element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::y
                   staticType: bool
@@ -2057,9 +2057,9 @@
           AssertInitializer
             assertKeyword: assert
             leftParenthesis: (
-            condition: PrefixExpression
+            condition2: PrefixExpression
               operator: !
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: x
                 element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::x
                 staticType: bool
@@ -2071,9 +2071,9 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: PrefixExpression
+                expression2: PrefixExpression
                   operator: !
-                  operand: SimpleIdentifier
+                  operand2: SimpleIdentifier
                     token: y
                     element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::y
                     staticType: bool
@@ -2165,7 +2165,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
         element: <null>
         staticType: InvalidType
@@ -2175,7 +2175,7 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: y
             element: <null>
             staticType: InvalidType
@@ -2201,7 +2201,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
         element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::x
         staticType: bool
@@ -2228,7 +2228,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: a
         element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::a
         staticType: bool
@@ -2256,7 +2256,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: x
         element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::x
         staticType: bool
@@ -2283,7 +2283,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::foo
           staticType: int
@@ -2310,7 +2310,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <testLibrary>::@enum::A::@constructor::new::@formalParameter::foo
           staticType: int
@@ -2344,7 +2344,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <null>
           staticType: InvalidType
@@ -2374,7 +2374,7 @@
       VariableDeclaration
         name: bar
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: foo
           element: <null>
           staticType: InvalidType
@@ -2444,7 +2444,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@enum::E
diff --git a/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart b/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart
index e2776fa..4ae6a3b 100644
--- a/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/extension_method_test.dart
@@ -701,13 +701,13 @@
     var node = result.findNode.functionExpressionInvocation('c(2)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 2
         correspondingParameter: <testLibrary>::@class::C::@method::call::@formalParameter::x
@@ -734,13 +734,13 @@
     var node = result.findNode.functionExpressionInvocation('c(2)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 2
         correspondingParameter: <testLibrary>::@extension::E::@method::call::@formalParameter::x
@@ -765,12 +765,12 @@
     var node = result.findNode.functionExpressionInvocation('1(2)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: IntegerLiteral
+  function2: IntegerLiteral
     literal: 1
     staticType: int
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 2
         correspondingParameter: <testLibrary>::@extension::E::@method::call::@formalParameter::x
@@ -797,12 +797,12 @@
     var node = result.findNode.assignment('+=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::C::@method::+::@formalParameter::i
     staticType: int
@@ -828,12 +828,12 @@
     var node = result.findNode.assignment('+=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::i
     staticType: int
@@ -1082,7 +1082,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
@@ -1110,8 +1110,8 @@
     var node = result.findNode.functionExpressionInvocation('c.a(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -1123,7 +1123,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -1180,8 +1180,8 @@
     var node = result.findNode.functionExpressionInvocation('f.a()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::g::@formalParameter::f
       staticType: int Function(int)
@@ -1318,7 +1318,7 @@
     var node = result.findNode.methodInvocation('f.a()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::g::@formalParameter::f
     staticType: int Function(int)
@@ -1350,7 +1350,7 @@
     var node = result.findNode.methodInvocation('b.a()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: B
@@ -1383,7 +1383,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -1426,7 +1426,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -1460,7 +1460,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Never
@@ -1490,7 +1490,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
@@ -1520,7 +1520,7 @@
     var node = result.findNode.methodInvocation('null.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
     staticType: Null
   operator: .
@@ -1549,7 +1549,7 @@
     var node = result.findNode.methodInvocation('a?.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
@@ -1579,7 +1579,7 @@
     var node = result.findNode.methodInvocation('null.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
     staticType: Null
   operator: .
@@ -1608,7 +1608,7 @@
     var node = result.findNode.methodInvocation('_foo();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -1644,7 +1644,7 @@
     var node = result.findNode.methodInvocation('_foo();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -1680,7 +1680,7 @@
     var node = result.findNode.methodInvocation('b.a()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: B
@@ -1720,7 +1720,7 @@
     var node = result.findNode.methodInvocation('x.f(o)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: B<C>
@@ -1733,7 +1733,7 @@
     staticType: void Function(C)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: o
         correspondingParameter: x@null
@@ -1760,12 +1760,12 @@
     var node = result.findNode.binary('+ ');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::C::@method::+::@formalParameter::i
     staticType: int
@@ -1787,12 +1787,12 @@
     var node = result.findNode.binary('+ ');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::g::@formalParameter::f
     staticType: int Function(int)
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::i
     staticType: int
@@ -1815,12 +1815,12 @@
     var node = result.findNode.binary('+ ');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::i
     staticType: int
@@ -1845,12 +1845,12 @@
     var node = result.findNode.binary('a + 1');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::_
     staticType: int
@@ -1887,12 +1887,12 @@
     var node = result.findNode.index('c[2]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::C::@method::[]::@formalParameter::index
     staticType: int
@@ -1914,12 +1914,12 @@
     var node = result.findNode.index('f[2]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::g::@formalParameter::f
     staticType: int Function(int)
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -1942,12 +1942,12 @@
     var node = result.findNode.index('c[2]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -1970,12 +1970,12 @@
     var node = result.findNode.index('a[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -1998,13 +1998,13 @@
     var node = result.findNode.index('a?[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
   question: ?
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -2029,13 +2029,13 @@
     var node = result.findNode.assignment('[2] =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 2
       correspondingParameter: <testLibrary>::@class::C::@method::[]=::@formalParameter::index
       staticType: int
@@ -2043,7 +2043,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::C::@method::[]=::@formalParameter::value
     staticType: int
@@ -2068,13 +2068,13 @@
     var node = result.findNode.assignment('f[2]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::g::@formalParameter::f
       staticType: int Function(int)
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 2
       correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::index
       staticType: int
@@ -2082,7 +2082,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::value
     staticType: int
@@ -2108,13 +2108,13 @@
     var node = result.findNode.assignment('c[2]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 2
       correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::index
       staticType: int
@@ -2122,7 +2122,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::value
     staticType: int
@@ -2150,7 +2150,7 @@
     var node = result.findNode.postfix('++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: null
@@ -2176,7 +2176,7 @@
     var node = result.findNode.postfix('++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::g::@formalParameter::f
     staticType: null
@@ -2203,7 +2203,7 @@
     var node = result.findNode.postfix('++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: null
@@ -2232,7 +2232,7 @@
     var node = result.findNode.postfix('a++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: null
@@ -2262,7 +2262,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: null
@@ -2288,7 +2288,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::g::@formalParameter::f
     staticType: null
@@ -2315,7 +2315,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: null
@@ -2344,7 +2344,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: null
@@ -2373,7 +2373,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -2395,7 +2395,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::g::@formalParameter::f
     staticType: int Function(int)
@@ -2418,7 +2418,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -2443,7 +2443,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -2464,7 +2464,7 @@
     var node = result.findNode.assignment('a = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::g::@formalParameter::f
@@ -2477,7 +2477,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@setter::a::@formalParameter::x
     staticType: int
@@ -2506,7 +2506,7 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -2519,7 +2519,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -2545,7 +2545,7 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -2558,7 +2558,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -2584,8 +2584,8 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SimpleIdentifier
+  leftHandSide2: PropertyAccess
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int?
@@ -2596,7 +2596,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -2624,7 +2624,7 @@
     var node = result.findNode.assignment('a = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
@@ -2637,7 +2637,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@setter::a::@formalParameter::x
     staticType: int
@@ -2719,7 +2719,7 @@
     var node = result.findNode.propertyAccess('p.E.a;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: p
       element: <testLibraryFragment>::@prefix::p
@@ -2845,7 +2845,7 @@
     var node = result.findNode.propertyAccess('p.E.a;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: p
       element: <testLibraryFragment>::@prefix::p
@@ -3274,7 +3274,7 @@
     var node = result.findNode.methodInvocation('E.a()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: p
       element: <testLibraryFragment>::@prefix::p
@@ -3314,7 +3314,7 @@
     var node = result.findNode.methodInvocation('E.a()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: E
     element: <testLibrary>::@extension::E
     staticType: null
@@ -3407,8 +3407,8 @@
     var node = result.findNode.assignment('a = 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: p
         element: <testLibraryFragment>::@prefix::p
@@ -3427,7 +3427,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: package:test/lib.dart::@extension::E::@setter::a::@formalParameter::x
     staticType: int
@@ -3455,7 +3455,7 @@
     var node = result.findNode.assignment('a = 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: E
       element: <testLibrary>::@extension::E
@@ -3468,7 +3468,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@setter::a::@formalParameter::x
     staticType: int
@@ -3496,7 +3496,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -3509,7 +3509,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3537,7 +3537,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -3550,7 +3550,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3581,7 +3581,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -3594,7 +3594,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3625,7 +3625,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -3638,7 +3638,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3666,7 +3666,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@enum::A
@@ -3679,7 +3679,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3707,7 +3707,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@enum::A
@@ -3720,7 +3720,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3748,7 +3748,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@extensionType::A
@@ -3761,7 +3761,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3789,7 +3789,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@extensionType::A
@@ -3802,7 +3802,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3831,7 +3831,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@mixin::A
@@ -3844,7 +3844,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3873,7 +3873,7 @@
     var node = result.findNode.assignment('A.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@mixin::A
@@ -3886,7 +3886,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3917,7 +3917,7 @@
     var node = result.findNode.assignment('T.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: T
       element: <testLibrary>::@typeAlias::T
@@ -3930,7 +3930,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -3961,7 +3961,7 @@
     var node = result.findNode.assignment('T.foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: T
       element: <testLibrary>::@typeAlias::T
@@ -3974,7 +3974,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
     staticType: int
@@ -4058,12 +4058,12 @@
     var node = result.findNode.functionExpressionInvocation('this(2)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ThisExpression
+  function2: ThisExpression
     thisKeyword: this
     staticType: C
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 2
         correspondingParameter: <testLibrary>::@extension::E::@method::call::@formalParameter::x
@@ -4093,12 +4093,12 @@
     var node = result.findNode.assignment('foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: foo
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -4145,7 +4145,7 @@
     var node = result.findNode.propertyAccess('this.a');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: C
   operator: .
@@ -4170,7 +4170,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: C
   operator: .
@@ -4220,7 +4220,7 @@
     var node = result.findNode.methodInvocation('this.a');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: C
   operator: .
@@ -4247,7 +4247,7 @@
     var node = result.findNode.methodInvocation('this.a');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: C
   operator: .
@@ -4276,11 +4276,11 @@
     var node = result.findNode.binary('+ ');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ThisExpression
+  leftOperand2: ThisExpression
     thisKeyword: this
     staticType: C
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::C::@method::+::@formalParameter::i
     staticType: int
@@ -4301,11 +4301,11 @@
     var node = result.findNode.binary('+ ');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ThisExpression
+  leftOperand2: ThisExpression
     thisKeyword: this
     staticType: C
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::i
     staticType: int
@@ -4328,11 +4328,11 @@
     var node = result.findNode.index('this[2]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: C
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::C::@method::[]::@formalParameter::index
     staticType: int
@@ -4353,11 +4353,11 @@
     var node = result.findNode.index('this[2]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: C
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -4380,12 +4380,12 @@
     var node = result.findNode.assignment('this[2]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: ThisExpression
+  leftHandSide2: IndexExpression
+    target2: ThisExpression
       thisKeyword: this
       staticType: C
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 2
       correspondingParameter: <testLibrary>::@class::C::@method::[]=::@formalParameter::index
       staticType: int
@@ -4393,7 +4393,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::C::@method::[]=::@formalParameter::value
     staticType: int
@@ -4417,12 +4417,12 @@
     var node = result.findNode.assignment('this[2]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: ThisExpression
+  leftHandSide2: IndexExpression
+    target2: ThisExpression
       thisKeyword: this
       staticType: C
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 2
       correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::index
       staticType: int
@@ -4430,7 +4430,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::value
     staticType: int
@@ -4457,7 +4457,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: ThisExpression
+  operand2: ThisExpression
     thisKeyword: this
     staticType: C
   element: <testLibrary>::@class::C::@method::unary-
@@ -4477,7 +4477,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: ThisExpression
+  operand2: ThisExpression
     thisKeyword: this
     staticType: C
   element: <testLibrary>::@extension::E::@method::unary-
@@ -4525,12 +4525,12 @@
     var node = result.findNode.assignment('a = 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@setter::a::@formalParameter::_
     staticType: int
@@ -4559,8 +4559,8 @@
     var node = result.findNode.assignment('a = 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ThisExpression
+  leftHandSide2: PropertyAccess
+    target2: ThisExpression
       thisKeyword: this
       staticType: C
     operator: .
@@ -4570,7 +4570,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@class::C::@setter::a::@formalParameter::_
     staticType: int
@@ -4597,8 +4597,8 @@
     var node = result.findNode.assignment('a = 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ThisExpression
+  leftHandSide2: PropertyAccess
+    target2: ThisExpression
       thisKeyword: this
       staticType: C
     operator: .
@@ -4608,7 +4608,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@setter::a::@formalParameter::_
     staticType: int
@@ -4651,7 +4651,7 @@
     var node = result.findNode.propertyAccess('this.a;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: C
   operator: .
@@ -4795,12 +4795,12 @@
     var node = result.findNode.assignment('a = 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@setter::a::@formalParameter::x
     staticType: int
@@ -4827,12 +4827,12 @@
     var node = result.findNode.assignment('a = 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <testLibrary>::@extension::E::@setter::a::@formalParameter::x
     staticType: int
@@ -5002,12 +5002,12 @@
     var node = result.findNode.assignment('a = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@setter::a::@formalParameter::_
     staticType: int
@@ -5037,12 +5037,12 @@
     var node = result.findNode.assignment('a = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: a
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@setter::a::@formalParameter::_
     staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/extension_override_test.dart b/pkg/analyzer/test/src/dart/resolution/extension_override_test.dart
index 6dd412e..e74bd39 100644
--- a/pkg/analyzer/test/src/dart/resolution/extension_override_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/extension_override_test.dart
@@ -30,11 +30,11 @@
     var node = result.findNode.functionExpressionInvocation('E(a)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ExtensionOverride
+  function2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -46,7 +46,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: ''
     rightParenthesis: )
@@ -71,7 +71,7 @@
     var node = result.findNode.functionExpressionInvocation('(a)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ExtensionOverride
+  function2: ExtensionOverride
     name: E
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -83,7 +83,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -97,7 +97,7 @@
       String
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: ''
     rightParenthesis: )
@@ -126,7 +126,7 @@
     var node = result.findNode.functionExpressionInvocation('E(a)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ExtensionOverride
+  function2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -134,7 +134,7 @@
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -146,7 +146,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: ''
     rightParenthesis: )
@@ -174,7 +174,7 @@
     var node = result.findNode.functionExpressionInvocation('(a)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ExtensionOverride
+  function2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -190,7 +190,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -204,7 +204,7 @@
       String
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: ''
     rightParenthesis: )
@@ -230,11 +230,11 @@
     var node = result.findNode.propertyAccess('E(a)');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -269,12 +269,12 @@
     var node = result.findNode.functionExpressionInvocation('E(a)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: ExtensionOverride
+  function2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -292,7 +292,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -318,7 +318,7 @@
     var node = result.findNode.propertyAccess('(a)');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -330,7 +330,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -368,7 +368,7 @@
     var node = result.findNode.propertyAccess('E(a)');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -376,7 +376,7 @@
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -412,7 +412,7 @@
     var node = result.findNode.propertyAccess('(a)');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -428,7 +428,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -463,11 +463,11 @@
     var node = result.findNode.index('[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -479,7 +479,7 @@
     staticType: null
   question: ?
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -503,12 +503,12 @@
     var node = result.findNode.assignment('[0] =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: ExtensionOverride
+  leftHandSide2: IndexExpression
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -520,7 +520,7 @@
       staticType: null
     question: ?
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::index
       staticType: int
@@ -528,7 +528,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::value
     staticType: int
@@ -555,11 +555,11 @@
     var node = result.findNode.methodInvocation('E(a)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -596,7 +596,7 @@
     var node = result.findNode.methodInvocation('(a)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -608,7 +608,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -650,7 +650,7 @@
     var node = result.findNode.methodInvocation('E(a)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -658,7 +658,7 @@
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -698,7 +698,7 @@
     var node = result.findNode.methodInvocation('(a)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -714,7 +714,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -753,11 +753,11 @@
     var node = result.findNode.methodInvocation('foo();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -794,11 +794,11 @@
     var node = result.findNode.binary('(a)');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -809,7 +809,7 @@
     extendedType: A
     staticType: null
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::offset
     staticType: int
@@ -833,7 +833,7 @@
     var node = result.findNode.binary('(a)');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     name: E
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -845,7 +845,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -858,7 +858,7 @@
     typeArgumentTypes
       int
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@method::+::@formalParameter::offset
     staticType: int
@@ -885,12 +885,12 @@
     var node = result.findNode.postfix('++;');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PropertyAccess
-    target: ExtensionOverride
+  operand2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
             correspondingParameter: <null>
@@ -932,7 +932,7 @@
     var node = result.findNode.binary('(a)');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -940,7 +940,7 @@
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -951,7 +951,7 @@
     extendedType: A
     staticType: null
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
     correspondingParameter: package:test/lib.dart::@extension::E::@method::+::@formalParameter::offset
     staticType: int
@@ -978,7 +978,7 @@
     var node = result.findNode.binary('(a)');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     importPrefix: ImportPrefixReference
       name: p
       period: .
@@ -994,7 +994,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -1007,7 +1007,7 @@
     typeArgumentTypes
       int
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
     correspondingParameter: package:test/lib.dart::@extension::E::@method::+::@formalParameter::offset
     staticType: int
@@ -1055,11 +1055,11 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -1104,12 +1104,12 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1126,7 +1126,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::s::@formalParameter::x
     staticType: int
@@ -1153,8 +1153,8 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       typeArguments: TypeArgumentList
         leftBracket: <
@@ -1166,7 +1166,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1185,7 +1185,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::s::@formalParameter::x
     staticType: int
@@ -1215,8 +1215,8 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       importPrefix: ImportPrefixReference
         name: p
         period: .
@@ -1224,7 +1224,7 @@
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1241,7 +1241,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: package:test/lib.dart::@extension::E::@setter::s::@formalParameter::x
     staticType: int
@@ -1271,8 +1271,8 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       importPrefix: ImportPrefixReference
         name: p
         period: .
@@ -1288,7 +1288,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1307,7 +1307,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: package:test/lib.dart::@extension::E::@setter::s::@formalParameter::x
     staticType: int
@@ -1335,12 +1335,12 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1357,7 +1357,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1385,8 +1385,8 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       typeArguments: TypeArgumentList
         leftBracket: <
@@ -1398,7 +1398,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1417,7 +1417,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1448,8 +1448,8 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       importPrefix: ImportPrefixReference
         name: p
         period: .
@@ -1457,7 +1457,7 @@
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1474,7 +1474,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1505,8 +1505,8 @@
     var node = result.findNode.assignment('(a)');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       importPrefix: ImportPrefixReference
         name: p
         period: .
@@ -1522,7 +1522,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -1541,7 +1541,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1568,11 +1568,11 @@
     var node = result.findNode.propertyAccess('E(c)');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: c
           correspondingParameter: <null>
diff --git a/pkg/analyzer/test/src/dart/resolution/extension_test.dart b/pkg/analyzer/test/src/dart/resolution/extension_test.dart
index e8b74ff..310b4a8 100644
--- a/pkg/analyzer/test/src/dart/resolution/extension_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/extension_test.dart
@@ -71,7 +71,7 @@
             VariableDeclaration
               name: f
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
                 staticType: int
               declaredFragment: <testLibraryFragment> f@34
@@ -112,7 +112,7 @@
         name: g
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
             staticType: int
           semicolon: ;
diff --git a/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart b/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart
index c3a6b5b..43af40f 100644
--- a/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/extension_type_test.dart
@@ -87,7 +87,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: InstanceCreationExpression
+    expression2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -96,7 +96,7 @@
         element: <testLibrary>::@extensionType::A::@constructor::new
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
             correspondingParameter: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
@@ -179,7 +179,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: InstanceCreationExpression
+    expression2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -193,7 +193,7 @@
         element: <testLibrary>::@extensionType::A::@constructor::named
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
             correspondingParameter: <testLibrary>::@extensionType::A::@constructor::named::@formalParameter::it
@@ -293,7 +293,7 @@
         element: <testLibrary>::@extensionType::A::@field::it
         staticType: null
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   body: EmptyFunctionBody
@@ -330,7 +330,7 @@
         element: <testLibrary>::@extensionType::A::@field::it
         staticType: null
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   body: EmptyFunctionBody
@@ -365,7 +365,7 @@
         element: <testLibrary>::@extensionType::A::@field::it
         staticType: null
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   body: EmptyFunctionBody
@@ -401,7 +401,7 @@
         element: <testLibrary>::@extensionType::A::@field::it
         staticType: null
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   body: EmptyFunctionBody
@@ -434,7 +434,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: InstanceCreationExpression
+    expression2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -443,7 +443,7 @@
         element: <testLibrary>::@extensionType::A::@constructor::new
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
             correspondingParameter: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
@@ -477,7 +477,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: InstanceCreationExpression
+    expression2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -491,7 +491,7 @@
         element: <testLibrary>::@extensionType::A::@constructor::named
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           IntegerLiteral
             literal: 0
             correspondingParameter: <testLibrary>::@extensionType::A::@constructor::named::@formalParameter::it
@@ -534,7 +534,7 @@
         element: <testLibrary>::@extensionType::A::@field::it
         staticType: null
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   body: EmptyFunctionBody
@@ -572,7 +572,7 @@
         element: <testLibrary>::@extensionType::A::@field::it
         staticType: null
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   body: EmptyFunctionBody
@@ -643,7 +643,7 @@
             VariableDeclaration
               name: foo
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
                 staticType: int
               declaredFragment: <testLibraryFragment> foo@49
@@ -661,7 +661,7 @@
             VariableDeclaration
               name: bar
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 1
                 staticType: int
               declaredFragment: <testLibraryFragment> bar@77
@@ -802,7 +802,7 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: TypeLiteral
+          expression2: TypeLiteral
             type: NamedType
               name: T
               element: #E0 T
@@ -810,7 +810,7 @@
             staticType: Type
           semicolon: ;
         ExpressionStatement
-          expression: TypeLiteral
+          expression2: TypeLiteral
             type: NamedType
               name: U
               element: #E1 U
@@ -849,7 +849,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
                 staticType: int
             declaredFragment: <testLibraryFragment> a@22
@@ -913,7 +913,7 @@
             name: a
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: IntegerLiteral
+              value2: IntegerLiteral
                 literal: 0
                 staticType: int
             declaredFragment: <testLibraryFragment> a@22
@@ -3698,7 +3698,7 @@
             VariableDeclaration
               name: int
               equals: =
-              initializer: SimpleStringLiteral
+              initializer2: SimpleStringLiteral
                 literal: 'not a type'
               declaredFragment: <testLibraryFragment> int@49
         semicolon: ;
@@ -3768,7 +3768,7 @@
             VariableDeclaration
               name: int
               equals: =
-              initializer: SimpleStringLiteral
+              initializer2: SimpleStringLiteral
                 literal: 'not a type'
               declaredFragment: <testLibraryFragment> int@65
         semicolon: ;
@@ -4100,7 +4100,7 @@
           name: it
           defaultClause: FormalParameterDefaultClause
             separator: =
-            value: SimpleIdentifier
+            value2: SimpleIdentifier
               token: foo
               element: <testLibrary>::@extensionType::E::@getter::foo
               staticType: int
@@ -4243,7 +4243,7 @@
             name: it
             defaultClause: FormalParameterDefaultClause
               separator: =
-              value: BooleanLiteral
+              value2: BooleanLiteral
                 literal: false
                 staticType: bool
             declaredFragment: <testLibraryFragment> it@23
@@ -4285,7 +4285,7 @@
           AssertInitializer
             assertKeyword: assert
             leftParenthesis: (
-            condition: SimpleIdentifier
+            condition2: SimpleIdentifier
               token: it
               element: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
               staticType: bool
@@ -4295,7 +4295,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: it
                   element: <testLibrary>::@extensionType::A::@getter::it
                   staticType: bool
@@ -4308,9 +4308,9 @@
           AssertInitializer
             assertKeyword: assert
             leftParenthesis: (
-            condition: PrefixExpression
+            condition2: PrefixExpression
               operator: !
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: it
                 element: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
                 staticType: bool
@@ -4322,7 +4322,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: it
                   element: <testLibrary>::@extensionType::A::@getter::it
                   staticType: bool
@@ -4374,7 +4374,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: it
         element: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
         staticType: bool
@@ -4400,7 +4400,7 @@
     AssertInitializer
       assertKeyword: assert
       leftParenthesis: (
-      condition: SimpleIdentifier
+      condition2: SimpleIdentifier
         token: it
         element: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
         staticType: bool
@@ -4430,13 +4430,13 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: it
             element: <testLibrary>::@extensionType::A::@getter::it
             staticType: int
           semicolon: ;
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: foo
             element: <testLibrary>::@extensionType::A::@method::foo
             staticType: void Function()
@@ -4620,7 +4620,7 @@
               element: <testLibrary>::@extensionType::A::@field::it
               staticType: null
             equals: =
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: a
               element: <testLibrary>::@extensionType::A::@constructor::named::@formalParameter::a
               staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/field_promotion_test.dart b/pkg/analyzer/test/src/dart/resolution/field_promotion_test.dart
index 35b1f44..b6fcb25 100644
--- a/pkg/analyzer/test/src/dart/resolution/field_promotion_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/field_promotion_test.dart
@@ -30,7 +30,7 @@
     var node = result.findNode.functionExpressionInvocation('_field()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
+  function2: PropertyAccess
     operator: ..
     propertyName: SimpleIdentifier
       token: _field
@@ -60,7 +60,7 @@
     var node = result.findNode.methodInvocation('_field.toString');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: PropertyAccess
+  target2: PropertyAccess
     operator: ..
     propertyName: SimpleIdentifier
       token: _field
@@ -107,7 +107,7 @@
     var node = result.findNode.propertyAccess('c?._field');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C?
@@ -179,8 +179,8 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -215,8 +215,8 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -251,10 +251,10 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: ParenthesizedExpression
+  function2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: c
         element: <testLibrary>::@function::f::@formalParameter::c
         staticType: C
@@ -291,10 +291,10 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: ParenthesizedExpression
+  function2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: c
         element: <testLibrary>::@function::f::@formalParameter::c
         staticType: C
@@ -335,7 +335,7 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: _foo
     element: <testLibrary>::@class::C::@getter::_foo
     staticType: void Function()
@@ -368,7 +368,7 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: _foo
     element: <testLibrary>::@class::C::@getter::_foo
     staticType: int Function()
@@ -401,8 +401,8 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: D
     operator: .
@@ -440,8 +440,8 @@
     var node = result.findNode.functionExpressionInvocation('_foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: D
     operator: .
@@ -565,9 +565,9 @@
     var node = result.findNode.propertyAccess('._foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -602,7 +602,7 @@
     var node = result.findNode.propertyAccess('._foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: D
   operator: .
@@ -888,9 +888,9 @@
     var node = result.findNode.propertyAccess('._foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -972,14 +972,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: _i
         element: <testLibrary>::@class::C::@getter::_i
         staticType: int
       semicolon: ;
     ExpressionStatement
-      expression: PropertyAccess
-        target: SuperExpression
+      expression2: PropertyAccess
+        target2: SuperExpression
           superKeyword: super
           staticType: C
         operator: .
@@ -997,14 +997,14 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: _i
         element: <testLibrary>::@class::C::@getter::_i
         staticType: int?
       semicolon: ;
     ExpressionStatement
-      expression: PropertyAccess
-        target: SuperExpression
+      expression2: PropertyAccess
+        target2: SuperExpression
           superKeyword: super
           staticType: C
         operator: .
@@ -1046,7 +1046,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: _t
         element: SubstitutedGetterElementImpl
           baseElement: <testLibrary>::@class::C::@getter::_t
@@ -1054,8 +1054,8 @@
         staticType: T
       semicolon: ;
     ExpressionStatement
-      expression: PropertyAccess
-        target: SuperExpression
+      expression2: PropertyAccess
+        target2: SuperExpression
           superKeyword: super
           staticType: C<T>
         operator: .
@@ -1075,7 +1075,7 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: _t
         element: SubstitutedGetterElementImpl
           baseElement: <testLibrary>::@class::C::@getter::_t
@@ -1083,8 +1083,8 @@
         staticType: T?
       semicolon: ;
     ExpressionStatement
-      expression: PropertyAccess
-        target: SuperExpression
+      expression2: PropertyAccess
+        target2: SuperExpression
           superKeyword: super
           staticType: C<T>
         operator: .
@@ -1128,8 +1128,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: SimpleIdentifier
           token: _f
           element: <testLibrary>::@class::C::@getter::_f
           staticType: int Function()
@@ -1141,9 +1141,9 @@
         staticType: int
       semicolon: ;
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PropertyAccess
-          target: SuperExpression
+      expression2: FunctionExpressionInvocation
+        function2: PropertyAccess
+          target2: SuperExpression
             superKeyword: super
             staticType: C
           operator: .
@@ -1167,8 +1167,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: SimpleIdentifier
           token: _f
           element: <testLibrary>::@class::C::@getter::_f
           staticType: int? Function()
@@ -1180,9 +1180,9 @@
         staticType: int?
       semicolon: ;
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PropertyAccess
-          target: SuperExpression
+      expression2: FunctionExpressionInvocation
+        function2: PropertyAccess
+          target2: SuperExpression
             superKeyword: super
             staticType: C
           operator: .
@@ -1230,8 +1230,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: SimpleIdentifier
           token: _f
           element: SubstitutedGetterElementImpl
             baseElement: <testLibrary>::@class::C::@getter::_f
@@ -1245,9 +1245,9 @@
         staticType: T
       semicolon: ;
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PropertyAccess
-          target: SuperExpression
+      expression2: FunctionExpressionInvocation
+        function2: PropertyAccess
+          target2: SuperExpression
             superKeyword: super
             staticType: C<T>
           operator: .
@@ -1273,8 +1273,8 @@
   leftBracket: {
   statements
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: SimpleIdentifier
           token: _f
           element: SubstitutedGetterElementImpl
             baseElement: <testLibrary>::@class::C::@getter::_f
@@ -1288,9 +1288,9 @@
         staticType: T?
       semicolon: ;
     ExpressionStatement
-      expression: FunctionExpressionInvocation
-        function: PropertyAccess
-          target: SuperExpression
+      expression2: FunctionExpressionInvocation
+        function2: PropertyAccess
+          target2: SuperExpression
             superKeyword: super
             staticType: C<T>
           operator: .
diff --git a/pkg/analyzer/test/src/dart/resolution/field_test.dart b/pkg/analyzer/test/src/dart/resolution/field_test.dart
index 3a1ae8e..0ba9f22 100644
--- a/pkg/analyzer/test/src/dart/resolution/field_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/field_test.dart
@@ -39,7 +39,7 @@
       VariableDeclaration
         name: f
         equals: =
-        initializer: SuperExpression
+        initializer2: SuperExpression
           superKeyword: super
           staticType: A
         declaredFragment: <testLibraryFragment> f@24
@@ -68,7 +68,7 @@
       VariableDeclaration
         name: f
         equals: =
-        initializer: ThisExpression
+        initializer2: ThisExpression
           thisKeyword: this
           staticType: A
         declaredFragment: <testLibraryFragment> f@24
@@ -100,7 +100,7 @@
       VariableDeclaration
         name: b
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: a
           element: <testLibrary>::@class::A::@getter::a
           staticType: int
@@ -133,7 +133,7 @@
       VariableDeclaration
         name: b
         equals: =
-        initializer: SimpleIdentifier
+        initializer2: SimpleIdentifier
           token: a
           element: <testLibrary>::@class::A::@getter::a
           staticType: int
@@ -166,7 +166,7 @@
       VariableDeclaration
         name: b
         equals: =
-        initializer: MethodInvocation
+        initializer2: MethodInvocation
           methodName: SimpleIdentifier
             token: a
             element: <testLibrary>::@class::A::@method::a
@@ -200,7 +200,7 @@
       VariableDeclaration
         name: a
         equals: =
-        initializer: ThisExpression
+        initializer2: ThisExpression
           thisKeyword: this
           staticType: A
         declaredFragment: <testLibraryFragment> a@18
@@ -274,7 +274,7 @@
       VariableDeclaration
         name: f
         equals: =
-        initializer: ListLiteral
+        initializer2: ListLiteral
           typeArguments: TypeArgumentList
             leftBracket: <
             arguments
diff --git a/pkg/analyzer/test/src/dart/resolution/for_element_test.dart b/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
index a638c37..35d9533 100644
--- a/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/for_element_test.dart
@@ -51,7 +51,7 @@
       element: <testLibrary>::@function::f::@formalParameter::values
       staticType: Stream<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: v
     element: v@58
     staticType: int
@@ -110,7 +110,7 @@
       element: <testLibrary>::@function::f::@formalParameter::values
       staticType: Stream<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: v
     element: <testLibrary>::@function::f::@formalParameter::v
     staticType: dynamic
@@ -154,7 +154,7 @@
       typeArgumentTypes
         Iterable<int>
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -195,7 +195,7 @@
       typeArgumentTypes
         Iterable<int>
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -223,7 +223,7 @@
       element: <testLibrary>::@function::f::@formalParameter::values
       staticType: List<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: v
     element: <testLibrary>::@function::f::@formalParameter::v
     staticType: dynamic
@@ -255,7 +255,7 @@
       superKeyword: super
       staticType: A
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -282,7 +282,7 @@
     inKeyword: in
     iterable: ListLiteral
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 1
           staticType: int
@@ -295,7 +295,7 @@
       rightBracket: ]
       staticType: List<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: v
     element: <testLibrary>::@getter::v
     staticType: int
@@ -325,7 +325,7 @@
       element: <testLibrary>::@function::f::@formalParameter::v
       staticType: dynamic
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -378,7 +378,7 @@
       typeArgumentTypes
         Iterable<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@28
     staticType: int
@@ -424,7 +424,7 @@
       typeArgumentTypes
         Iterable<Object?>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@24
     staticType: Object?
@@ -460,7 +460,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: dynamic
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@25
     staticType: dynamic
@@ -496,7 +496,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: List<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@35
     staticType: int
@@ -534,7 +534,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@32
     staticType: InvalidType
@@ -570,7 +570,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: List<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@37
     staticType: int
@@ -610,7 +610,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: List<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@39
     staticType: num
@@ -645,7 +645,7 @@
       element: <testLibrary>::@getter::x
       staticType: List<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: x
     element: x@43
     staticType: int
@@ -680,7 +680,7 @@
       element: <testLibrary>::@getter::x
       staticType: List<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@43
     staticType: int
@@ -735,7 +735,7 @@
       typeArgumentTypes
         Stream<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@40
     staticType: int
@@ -782,7 +782,7 @@
       typeArgumentTypes
         Stream<Object?>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@36
     staticType: Object?
@@ -819,7 +819,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: dynamic
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@37
     staticType: dynamic
@@ -858,7 +858,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@44
     staticType: InvalidType
@@ -895,7 +895,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Stream<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@49
     staticType: int
@@ -932,7 +932,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Stream<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@51
     staticType: int
@@ -973,7 +973,7 @@
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Stream<int>
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@53
     staticType: num
@@ -994,7 +994,7 @@
     var node = result.findNode.functionExpressionInvocation('b()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: bool Function()
@@ -1055,7 +1055,7 @@
         VariableDeclaration
           name: i
           equals: =
-          initializer: SimpleIdentifier
+          initializer2: SimpleIdentifier
             token: i
             element: i@28
             staticType: dynamic
@@ -1064,12 +1064,12 @@
               type: dynamic
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: i
         element: i@28
         staticType: dynamic
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 1
         correspondingParameter: <null>
         staticType: int
@@ -1077,9 +1077,9 @@
       staticInvokeType: null
       staticType: dynamic
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: i
           element: i@28
           staticType: null
@@ -1091,7 +1091,7 @@
         element: <null>
         staticType: dynamic
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: i
     element: i@28
     staticType: dynamic
@@ -1117,7 +1117,7 @@
         VariableDeclaration
           name: i2
           equals: =
-          initializer: SimpleIdentifier
+          initializer2: SimpleIdentifier
             token: i
             element: <testLibrary>::@function::f::@formalParameter::i
             staticType: int
@@ -1126,12 +1126,12 @@
               type: int
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: i2
         element: i2@28
         staticType: int
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 10
         correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
         staticType: int
@@ -1139,10 +1139,10 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PrefixExpression
         operator: ++
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: i2
           element: i2@28
           staticType: null
@@ -1153,7 +1153,7 @@
         element: dart:core::@class::num::@method::+
         staticType: int
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: i2
     element: i2@28
     staticType: int
@@ -1179,7 +1179,7 @@
         VariableDeclaration
           name: i
           equals: =
-          initializer: IntegerLiteral
+          initializer2: IntegerLiteral
             literal: 0
             staticType: int
           declaredFragment: isPublic i@23
@@ -1188,7 +1188,7 @@
         VariableDeclaration
           name: j
           equals: =
-          initializer: SimpleIdentifier
+          initializer2: SimpleIdentifier
             token: i
             element: i@23
             staticType: int
@@ -1197,12 +1197,12 @@
               type: int
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: j
         element: j@30
         staticType: int
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 1
         correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
         staticType: int
@@ -1210,9 +1210,9 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: j
           element: j@30
           staticType: null
@@ -1224,7 +1224,7 @@
         element: dart:core::@class::num::@method::+
         staticType: int
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: j
     element: j@30
     staticType: int
@@ -1249,7 +1249,7 @@
   forKeyword: for
   leftParenthesis: (
   forLoopParts: ForPartsWithExpression
-    initialization: PatternAssignment
+    initialization2: PatternAssignment
       pattern: ParenthesizedPattern
         leftParenthesis: (
         pattern: AssignedVariablePattern
@@ -1259,7 +1259,7 @@
         rightParenthesis: )
         matchedValueType: int
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       patternTypeSchema: int
@@ -1267,7 +1267,7 @@
     leftSeparator: ;
     rightSeparator: ;
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: a
     element: a@17
     staticType: int
@@ -1293,12 +1293,12 @@
   forLoopParts: ForPartsWithExpression
     leftSeparator: ;
     rightSeparator: ;
-    updaters
+    updaters2
       SuperExpression
         superKeyword: super
         staticType: A
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -1345,7 +1345,7 @@
         rightParenthesis: )
         matchedValueType: (int, bool)
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
         element: <testLibrary>::@function::f::@formalParameter::x
         staticType: (int, bool)
@@ -1356,9 +1356,9 @@
       element: b@40
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@37
           staticType: null
@@ -1370,7 +1370,7 @@
         element: dart:core::@class::num::@method::-
         staticType: int
   rightParenthesis: )
-  body: SimpleIdentifier
+  body2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: (int, bool)
@@ -1414,7 +1414,7 @@
         rightParenthesis: )
         matchedValueType: (int, bool)
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
         element: <testLibrary>::@function::f::@formalParameter::x
         staticType: (int, bool)
@@ -1425,9 +1425,9 @@
       element: b@40
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@37
           staticType: null
@@ -1439,7 +1439,7 @@
         element: dart:core::@class::num::@method::-
         staticType: int
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -1482,7 +1482,7 @@
         rightParenthesis: )
         matchedValueType: InvalidType
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: a@37
         staticType: InvalidType
@@ -1493,9 +1493,9 @@
       element: b@40
       staticType: InvalidType
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@37
           staticType: null
@@ -1507,7 +1507,7 @@
         element: <null>
         staticType: InvalidType
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -1550,7 +1550,7 @@
         rightParenthesis: )
         matchedValueType: (int, bool)
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: (int, bool)
@@ -1561,9 +1561,9 @@
       element: b@41
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a2
           element: a2@37
           staticType: null
@@ -1575,7 +1575,7 @@
         element: dart:core::@class::num::@method::-
         staticType: int
   rightParenthesis: )
-  body: IntegerLiteral
+  body2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
diff --git a/pkg/analyzer/test/src/dart/resolution/for_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/for_statement_test.dart
index c270f22..e810aff 100644
--- a/pkg/analyzer/test/src/dart/resolution/for_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/for_statement_test.dart
@@ -57,7 +57,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@52
           staticType: int
@@ -104,7 +104,7 @@
           leftBracket: {
           rightBracket: }
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: <testLibrary>::@function::f::@formalParameter::i
           staticType: int
@@ -145,7 +145,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: num
           element: num@52
           staticType: int
@@ -265,7 +265,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@22
           staticType: InvalidType
@@ -307,7 +307,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@43
           staticType: int
@@ -349,7 +349,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@35
           staticType: InvalidType
@@ -426,7 +426,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@42
           staticType: dynamic
@@ -507,7 +507,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@42
           staticType: int
@@ -546,7 +546,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@38
           staticType: int
@@ -591,7 +591,7 @@
           leftBracket: {
           rightBracket: }
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: <testLibrary>::@function::f::@formalParameter::i
           staticType: int
@@ -640,14 +640,14 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: SimpleStringLiteral
+              initializer2: SimpleStringLiteral
                 literal: 'a'
               declaredFragment: isPublic i@61
                 element: hasImplicitType isPublic
                   type: String
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: i@61
           staticType: String
@@ -687,7 +687,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: i@33
           staticType: int
@@ -727,7 +727,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: num
           element: num@38
           staticType: int
@@ -779,7 +779,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: <testLibrary>::@function::f::@formalParameter::v
           staticType: dynamic
@@ -900,7 +900,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: <testLibrary>::@function::f::@formalParameter::v
           staticType: dynamic
@@ -974,14 +974,14 @@
           leftBracket: {
           statements
             ExpressionStatement
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: v
                 element: <testLibrary>::@function::f::@formalParameter::v
                 staticType: dynamic
               semicolon: ;
           rightBracket: }
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: <testLibrary>::@function::f::@formalParameter::v
           staticType: dynamic
@@ -1026,7 +1026,7 @@
             VariableDeclaration
               name: v
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 0
                 staticType: int
               declaredFragment: isPublic v@68
@@ -1034,7 +1034,7 @@
                   type: int
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: v
           element: v@68
           staticType: int
@@ -1126,7 +1126,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@39
           staticType: int
@@ -1181,7 +1181,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@35
           staticType: Object?
@@ -1226,7 +1226,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@36
           staticType: dynamic
@@ -1273,7 +1273,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@43
           staticType: InvalidType
@@ -1318,7 +1318,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@48
           staticType: int
@@ -1396,7 +1396,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@50
           staticType: int
@@ -1445,7 +1445,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@52
           staticType: num
@@ -1497,7 +1497,7 @@
           leftBracket: {
           rightBracket: }
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::f::@formalParameter::a
           staticType: int
@@ -1552,7 +1552,7 @@
             VariableDeclaration
               name: a
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 1
                 staticType: int
               declaredFragment: isPublic a@67
@@ -1560,7 +1560,7 @@
                   type: int
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@67
           staticType: int
@@ -1606,7 +1606,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: x
           element: x@48
           staticType: int
@@ -1661,7 +1661,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@39
           staticType: int
@@ -1717,7 +1717,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@51
           staticType: int
@@ -1859,7 +1859,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@24
           staticType: dynamic
@@ -1903,7 +1903,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@34
           staticType: int
@@ -1981,7 +1981,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@31
           staticType: InvalidType
@@ -2065,7 +2065,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@36
           staticType: int
@@ -2113,7 +2113,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@38
           staticType: num
@@ -2163,7 +2163,7 @@
           leftBracket: {
           rightBracket: }
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::f::@formalParameter::a
           staticType: int
@@ -2217,7 +2217,7 @@
             VariableDeclaration
               name: a
               equals: =
-              initializer: IntegerLiteral
+              initializer2: IntegerLiteral
                 literal: 1
                 staticType: int
               declaredFragment: isPublic a@53
@@ -2225,7 +2225,7 @@
                   type: int
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@53
           staticType: int
@@ -2270,7 +2270,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: x
           element: x@34
           staticType: int
@@ -2307,7 +2307,7 @@
               VariableDeclaration
                 name: i
                 equals: =
-                initializer: IntegerLiteral
+                initializer2: IntegerLiteral
                   literal: 0
                   staticType: int
                 declaredFragment: isPublic i@27
@@ -2315,12 +2315,12 @@
                     type: int
           leftSeparator: ;
           condition: BinaryExpression
-            leftOperand: SimpleIdentifier
+            leftOperand2: SimpleIdentifier
               token: i
               element: i@27
               staticType: int
             operator: <
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 1
               correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
               staticType: int
@@ -2328,9 +2328,9 @@
             staticInvokeType: bool Function(num)
             staticType: bool
           rightSeparator: ;
-          updaters
+          updaters2
             PostfixExpression
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: i
                 element: i@27
                 staticType: null
@@ -2346,7 +2346,7 @@
           leftBracket: {
           rightBracket: }
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: <testLibrary>::@function::f::@formalParameter::i
           staticType: int
@@ -2377,7 +2377,7 @@
         VariableDeclaration
           name: i
           equals: =
-          initializer: IntegerLiteral
+          initializer2: IntegerLiteral
             literal: 0
             staticType: int
           declaredFragment: isPublic i@33
@@ -2385,12 +2385,12 @@
               type: int
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: i
         element: i@33
         staticType: int
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 10
         correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
         staticType: int
@@ -2398,10 +2398,10 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PrefixExpression
         operator: ++
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: i
           element: i@33
           staticType: null
@@ -2422,14 +2422,14 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: SimpleStringLiteral
+              initializer2: SimpleStringLiteral
                 literal: 'a'
               declaredFragment: isPublic i@63
                 element: hasImplicitType isPublic
                   type: String
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: i@63
           staticType: String
@@ -2459,7 +2459,7 @@
         VariableDeclaration
           name: i
           equals: =
-          initializer: IntegerLiteral
+          initializer2: IntegerLiteral
             literal: 0
             staticType: int
           declaredFragment: isPublic i@22
@@ -2467,12 +2467,12 @@
               type: int
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: i
         element: i@22
         staticType: int
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 10
         correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
         staticType: int
@@ -2480,9 +2480,9 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: i
           element: i@22
           staticType: null
@@ -2498,7 +2498,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: i@22
           staticType: int
@@ -2530,7 +2530,7 @@
         VariableDeclaration
           name: i
           equals: =
-          initializer: SimpleIdentifier
+          initializer2: SimpleIdentifier
             token: i
             element: i@27
             staticType: dynamic
@@ -2539,12 +2539,12 @@
               type: dynamic
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: i
         element: i@27
         staticType: dynamic
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 1
         correspondingParameter: <null>
         staticType: int
@@ -2552,9 +2552,9 @@
       staticInvokeType: null
       staticType: dynamic
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: i
           element: i@27
           staticType: null
@@ -2591,7 +2591,7 @@
         VariableDeclaration
           name: i2
           equals: =
-          initializer: SimpleIdentifier
+          initializer2: SimpleIdentifier
             token: i
             element: <testLibrary>::@function::f::@formalParameter::i
             staticType: int
@@ -2600,12 +2600,12 @@
               type: int
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: i2
         element: i2@27
         staticType: int
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 10
         correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
         staticType: int
@@ -2613,10 +2613,10 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PrefixExpression
         operator: ++
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: i2
           element: i2@27
           staticType: null
@@ -2652,7 +2652,7 @@
         VariableDeclaration
           name: i
           equals: =
-          initializer: IntegerLiteral
+          initializer2: IntegerLiteral
             literal: 0
             staticType: int
           declaredFragment: isPublic i@22
@@ -2661,7 +2661,7 @@
         VariableDeclaration
           name: j
           equals: =
-          initializer: SimpleIdentifier
+          initializer2: SimpleIdentifier
             token: i
             element: i@22
             staticType: int
@@ -2670,12 +2670,12 @@
               type: int
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: j
         element: j@29
         staticType: int
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 1
         correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
         staticType: int
@@ -2683,9 +2683,9 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: j
           element: j@29
           staticType: null
@@ -2722,7 +2722,7 @@
   forLoopParts: ForPartsWithExpression
     leftSeparator: ;
     condition: FunctionExpressionInvocation
-      function: SimpleIdentifier
+      function2: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::f::@formalParameter::b
         staticType: bool Function()
@@ -2756,7 +2756,7 @@
   forKeyword: for
   leftParenthesis: (
   forLoopParts: ForPartsWithExpression
-    initialization: PatternAssignment
+    initialization2: PatternAssignment
       pattern: ParenthesizedPattern
         leftParenthesis: (
         pattern: AssignedVariablePattern
@@ -2766,7 +2766,7 @@
         rightParenthesis: )
         matchedValueType: int
       equals: =
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       patternTypeSchema: int
@@ -2778,7 +2778,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@17
           staticType: int
@@ -2806,12 +2806,12 @@
   forLoopParts: ForPartsWithExpression
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: i
         element: i@17
         staticType: int
       operator: <
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 10
         correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
         staticType: int
@@ -2819,9 +2819,9 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: i
           element: i@17
           staticType: null
@@ -2843,14 +2843,14 @@
             VariableDeclaration
               name: i
               equals: =
-              initializer: SimpleStringLiteral
+              initializer2: SimpleStringLiteral
                 literal: 'a'
               declaredFragment: isPublic i@56
                 element: hasImplicitType isPublic
                   type: String
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: i
           element: i@56
           staticType: String
@@ -2878,7 +2878,7 @@
   forLoopParts: ForPartsWithExpression
     leftSeparator: ;
     rightSeparator: ;
-    updaters
+    updaters2
       SuperExpression
         superKeyword: super
         staticType: A
@@ -2929,9 +2929,9 @@
         rightParenthesis: )
         matchedValueType: int
       equals: =
-      expression: ParenthesizedExpression
+      expression2: ParenthesizedExpression
         leftParenthesis: (
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         rightParenthesis: )
@@ -2939,12 +2939,12 @@
       patternTypeSchema: _
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: a
         element: a@35
         staticType: int
       operator: <=
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 2
         correspondingParameter: dart:core::@class::num::@method::<=::@formalParameter::other
         staticType: int
@@ -2952,9 +2952,9 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@35
           staticType: null
@@ -2970,7 +2970,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@35
           staticType: int
@@ -3018,9 +3018,9 @@
         rightParenthesis: )
         matchedValueType: int
       equals: =
-      expression: ParenthesizedExpression
+      expression2: ParenthesizedExpression
         leftParenthesis: (
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         rightParenthesis: )
@@ -3028,12 +3028,12 @@
       patternTypeSchema: _
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: a
         element: a@40
         staticType: int
       operator: <=
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 2
         correspondingParameter: dart:core::@class::num::@method::<=::@formalParameter::other
         staticType: int
@@ -3041,9 +3041,9 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@40
           staticType: null
@@ -3059,7 +3059,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@40
           staticType: int
@@ -3110,7 +3110,7 @@
               rightParenthesis: )
               matchedValueType: (int, bool)
             equals: =
-            expression: SimpleIdentifier
+            expression2: SimpleIdentifier
               token: x
               element: <testLibrary>::@function::f::@formalParameter::x
               staticType: (int, bool)
@@ -3121,9 +3121,9 @@
             element: b@46
             staticType: bool
           rightSeparator: ;
-          updaters
+          updaters2
             PostfixExpression
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a
                 element: a@43
                 staticType: null
@@ -3139,7 +3139,7 @@
           leftBracket: {
           rightBracket: }
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::f::@formalParameter::a
           staticType: int
@@ -3188,7 +3188,7 @@
         rightParenthesis: )
         matchedValueType: (int, bool)
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: i
         element: <testLibrary>::@function::f::@formalParameter::i
         staticType: (int, bool)
@@ -3199,9 +3199,9 @@
       element: b@39
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@36
           staticType: null
@@ -3223,14 +3223,14 @@
             VariableDeclaration
               name: a
               equals: =
-              initializer: SimpleStringLiteral
+              initializer2: SimpleStringLiteral
                 literal: 'a'
               declaredFragment: isPublic a@65
                 element: hasImplicitType isPublic
                   type: String
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@65
           staticType: String
@@ -3278,7 +3278,7 @@
         rightParenthesis: )
         matchedValueType: (int, bool)
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
         element: <testLibrary>::@function::f::@formalParameter::x
         staticType: (int, bool)
@@ -3289,9 +3289,9 @@
       element: b@39
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@36
           staticType: null
@@ -3307,7 +3307,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: x
           element: <testLibrary>::@function::f::@formalParameter::x
           staticType: (int, bool)
@@ -3356,7 +3356,7 @@
         rightParenthesis: )
         matchedValueType: (int, bool)
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
         element: <testLibrary>::@function::f::@formalParameter::x
         staticType: (int, bool)
@@ -3367,9 +3367,9 @@
       element: b@39
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@36
           staticType: null
@@ -3385,13 +3385,13 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@36
           staticType: int
         semicolon: ;
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: b
           element: b@39
           staticType: bool
@@ -3438,7 +3438,7 @@
         rightParenthesis: )
         matchedValueType: InvalidType
       equals: =
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: a@36
         staticType: InvalidType
@@ -3449,9 +3449,9 @@
       element: b@39
       staticType: InvalidType
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@36
           staticType: null
@@ -3496,9 +3496,9 @@
         rightParenthesis: )
         matchedValueType: int
       equals: =
-      expression: ParenthesizedExpression
+      expression2: ParenthesizedExpression
         leftParenthesis: (
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         rightParenthesis: )
@@ -3506,12 +3506,12 @@
       patternTypeSchema: _
     leftSeparator: ;
     condition: BinaryExpression
-      leftOperand: SimpleIdentifier
+      leftOperand2: SimpleIdentifier
         token: a
         element: a@23
         staticType: int
       operator: <=
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 2
         correspondingParameter: dart:core::@class::num::@method::<=::@formalParameter::other
         staticType: int
@@ -3519,9 +3519,9 @@
       staticInvokeType: bool Function(num)
       staticType: bool
     rightSeparator: ;
-    updaters
+    updaters2
       PostfixExpression
-        operand: SimpleIdentifier
+        operand2: SimpleIdentifier
           token: a
           element: a@23
           staticType: null
@@ -3537,7 +3537,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@23
           staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/function_declaration_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/function_declaration_statement_test.dart
index 86075e7..15665ec 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_declaration_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_declaration_statement_test.dart
@@ -93,7 +93,7 @@
         rightParenthesis: )
       body: ExpressionFunctionBody
         functionDefinition: =>
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@25
           staticType: T
@@ -567,7 +567,7 @@
         rightParenthesis: )
       body: ExpressionFunctionBody
         functionDefinition: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         semicolon: ;
diff --git a/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart b/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart
index 99aa215..a57a826 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_declaration_test.dart
@@ -55,7 +55,7 @@
         statements
           ReturnStatement
             returnKeyword: return
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
               staticType: int
             semicolon: ;
@@ -103,7 +103,7 @@
       keyword: async
       star: *
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       semicolon: ;
@@ -406,7 +406,7 @@
       rightParenthesis: )
     body: ExpressionFunctionBody
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       semicolon: ;
@@ -457,7 +457,7 @@
         statements
           ReturnStatement
             returnKeyword: return
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
               staticType: int
             semicolon: ;
@@ -503,7 +503,7 @@
       keyword: sync
       star: *
       functionDefinition: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       semicolon: ;
diff --git a/pkg/analyzer/test/src/dart/resolution/function_expression_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/function_expression_invocation_test.dart
index 064c2b7..15508d9 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_expression_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_expression_invocation_test.dart
@@ -30,13 +30,13 @@
     var node = result.findNode.functionExpressionInvocation('a(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -70,16 +70,16 @@
     var node = result.findNode.functionExpressionInvocation('a([');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::main::@formalParameter::a
     staticType: A
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 0
             staticType: int
@@ -113,7 +113,7 @@
     var node = result.findNode.functionExpressionInvocation('a()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -144,7 +144,7 @@
     var node = result.findNode.functionExpressionInvocation('a<int>()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -177,10 +177,10 @@
     var node = result.findNode.functionExpressionInvocation('(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ParenthesizedExpression
+  function2: ParenthesizedExpression
     leftParenthesis: (
-    expression: AsExpression
-      expression: SimpleIdentifier
+    expression2: AsExpression
+      expression2: SimpleIdentifier
         token: main
         element: <testLibrary>::@function::main
         staticType: dynamic Function()
@@ -194,7 +194,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -216,10 +216,10 @@
     var node = result.findNode.functionExpressionInvocation('(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ParenthesizedExpression
+  function2: ParenthesizedExpression
     leftParenthesis: (
-    expression: AsExpression
-      expression: SimpleIdentifier
+    expression2: AsExpression
+      expression2: SimpleIdentifier
         token: main
         element: <testLibrary>::@function::main
         staticType: dynamic Function()
@@ -245,7 +245,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -273,7 +273,7 @@
     var node = result.findNode.functionExpressionInvocation('();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
@@ -299,7 +299,7 @@
     var node = result.findNode.functionExpressionInvocation('();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: (String,)
@@ -324,7 +324,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: r
     element: r@17
     staticType: ({int Function() call})
@@ -348,7 +348,7 @@
     var node = result.findNode.functionExpressionInvocation('();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: (String,)
@@ -371,13 +371,13 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: g
     element: <testLibrary>::@function::f::@formalParameter::g
     staticType: T Function<T>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -405,7 +405,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int Function<T>(T)
@@ -422,7 +422,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: 'hello'
     rightParenthesis: )
@@ -446,13 +446,13 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: g
     element: <testLibrary>::@function::f::@formalParameter::g
     staticType: int Function()
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: a
         correspondingParameter: <null>
@@ -481,14 +481,14 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: String Function(int, {int b})
       alias: <testLibrary>::@typeAlias::F
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: a@null
@@ -496,7 +496,7 @@
       NamedArgument
         name: b
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 2
           staticType: int
         correspondingParameter: b@null
@@ -525,7 +525,7 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: Function
@@ -551,13 +551,13 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: id
     element: <testLibrary>::@getter::id
     staticType: bool Function(Object?, Object?)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: a
         correspondingParameter: dart:core::@function::identical::@formalParameter::a
@@ -589,7 +589,7 @@
     var node = result.findNode.functionExpressionInvocation('x<int>(1 + 2)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never
@@ -603,13 +603,13 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: IntegerLiteral
+        leftOperand2: IntegerLiteral
           literal: 1
           staticType: int
         operator: +
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 2
           correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
           staticType: int
@@ -638,7 +638,7 @@
     var node = result.findNode.functionExpressionInvocation('x<int>(1 + 2)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never?
@@ -652,13 +652,13 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: IntegerLiteral
+        leftOperand2: IntegerLiteral
           literal: 1
           staticType: int
         operator: +
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 2
           correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
           staticType: int
@@ -691,8 +691,8 @@
     var node = result.findNode.functionExpressionInvocation('a?.foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@class::B::@method::bar::@formalParameter::a
       staticType: A?
@@ -722,8 +722,8 @@
     var node = result.findNode.functionExpressionInvocation('a?.f()()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: MethodInvocation
-    target: SimpleIdentifier
+  function2: MethodInvocation
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::test::@formalParameter::a
       staticType: A?
@@ -762,9 +762,9 @@
     var node = result.findNode.propertyAccess('isEven');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: FunctionExpressionInvocation
-    function: PropertyAccess
-      target: SimpleIdentifier
+  target2: FunctionExpressionInvocation
+    function2: PropertyAccess
+      target2: SimpleIdentifier
         token: a
         element: <testLibrary>::@class::B::@method::bar::@formalParameter::a
         staticType: A?
@@ -803,10 +803,10 @@
     var node = result.findNode.functionExpressionInvocation('}()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SwitchExpression
+  function2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -819,7 +819,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: foo
           element: <testLibrary>::@function::foo
           staticType: void Function()
@@ -844,8 +844,8 @@
     var node = result.findNode.functionExpressionInvocation('(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({void Function(int) foo})
@@ -857,7 +857,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -879,8 +879,8 @@
     var node = result.findNode.functionExpressionInvocation('(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (void Function(int),)
@@ -892,7 +892,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -914,10 +914,10 @@
     var node = result.findNode.functionExpressionInvocation('(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ParenthesizedExpression
+  function2: ParenthesizedExpression
     leftParenthesis: (
-    expression: PropertyAccess
-      target: SimpleIdentifier
+    expression2: PropertyAccess
+      target2: SimpleIdentifier
         token: r
         element: <testLibrary>::@function::f::@formalParameter::r
         staticType: (void Function(int),)
@@ -931,7 +931,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
diff --git a/pkg/analyzer/test/src/dart/resolution/function_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/function_expression_test.dart
index db5c99f..cf59498 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_expression_test.dart
@@ -120,7 +120,7 @@
         name: x
         defaultClause: FormalParameterDefaultClause
           separator: =
-          value: SimpleIdentifier
+          value2: SimpleIdentifier
             token: x
             element: <null>
             staticType: InvalidType
diff --git a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
index 17836a5..413aed5 100644
--- a/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/function_reference_test.dart
@@ -34,9 +34,9 @@
     var node = result.findNode.functionReference('(A.foo)<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: ParenthesizedExpression
+  function2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ConstructorReference
+    expression2: ConstructorReference
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -77,9 +77,9 @@
     var node = result.findNode.functionReference('(A.new)<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: ParenthesizedExpression
+  function2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ConstructorReference
+    expression2: ConstructorReference
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -122,7 +122,7 @@
     var node = result.findNode.functionReference('A.foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: ConstructorReference
+  function2: ConstructorReference
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -157,7 +157,7 @@
     var node = result.findNode.functionReference('a.Future.delayed<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: ConstructorReference
+  function2: ConstructorReference
     constructorName: ConstructorName
       type: NamedType
         importPrefix: ImportPrefixReference
@@ -200,7 +200,7 @@
     var node = result.findNode.functionReference('i<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: i
     element: <testLibrary>::@getter::i
     staticType: dynamic
@@ -230,7 +230,7 @@
     var node = result.findNode.functionReference('i<int>.foo();');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: i
     element: <testLibrary>::@getter::i
     staticType: dynamic
@@ -260,8 +260,8 @@
     var node = result.findNode.functionReference('f().instanceMethod<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: MethodInvocation
+  function2: PropertyAccess
+    target2: MethodInvocation
       methodName: SimpleIdentifier
         token: f
         element: <testLibrary>::@function::f
@@ -301,7 +301,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <null>
@@ -337,8 +337,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
         element: <null>
@@ -382,7 +382,7 @@
     var node = result.findNode.functionReference('E<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: E
     element: <testLibrary>::@extension::E
     staticType: InvalidType
@@ -415,7 +415,7 @@
     var node = result.findNode.functionReference('E<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibraryFragment>::@prefix::a
@@ -457,12 +457,12 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ExtensionOverride
+  function2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -506,7 +506,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@extension::E::@method::foo
     staticType: void Function<T>(T)
@@ -540,8 +540,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ThisExpression
+  function2: PropertyAccess
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     operator: .
@@ -582,12 +582,12 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ExtensionOverride
+  function2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -637,7 +637,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
+  function2: PropertyAccess
     operator: ..
     propertyName: SimpleIdentifier
       token: foo
@@ -676,12 +676,12 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ExtensionOverride
+  function2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -727,12 +727,12 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ExtensionOverride
+  function2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -776,7 +776,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@extension::E::@method::foo
     staticType: void Function<T>(T)
@@ -810,7 +810,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <null>
     staticType: InvalidType
@@ -838,7 +838,7 @@
     var node = result.findNode.functionReference('foo.call<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -878,7 +878,7 @@
     var node = result.findNode.functionReference('foo.call<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -919,7 +919,7 @@
     var node = result.findNode.functionReference('foo.call<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -957,7 +957,7 @@
     var node = result.findNode.functionReference('foo.call<String>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -1001,7 +1001,7 @@
     var node = result.findNode.functionReference('foo.m<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -1045,7 +1045,7 @@
     var node = result.findNode.functionReference('foo.m<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -1083,7 +1083,7 @@
     var node = result.findNode.implicitCallReference('C()<int>');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: InstanceCreationExpression
+  expression2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: C
@@ -1125,7 +1125,7 @@
     var node = result.findNode.implicitCallReference('C.v<int>');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: C
       element: <testLibrary>::@class::C
@@ -1167,7 +1167,7 @@
     var node = result.findNode.implicitCallReference('v<int, String>;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: v
     element: <testLibrary>::@getter::v
     staticType: Object?
@@ -1207,7 +1207,7 @@
     var node = result.findNode.implicitCallReference('a);');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -1237,8 +1237,8 @@
     var node = result.findNode.implicitCallReference('C.v<int>');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: PropertyAccess
-    target: PrefixedIdentifier
+  expression2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -1289,7 +1289,7 @@
     var node = result.findNode.implicitCallReference('c<int>');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -1332,7 +1332,7 @@
     var node = result.findNode.implicitCallReference('C()<int>;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: InstanceCreationExpression
+  expression2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: C
@@ -1375,7 +1375,7 @@
     var node = result.findNode.implicitCallReference('C()<int>;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: InstanceCreationExpression
+  expression2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: C
@@ -1413,7 +1413,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::bar::@formalParameter::a
@@ -1457,7 +1457,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::B::@getter::foo
     staticType: void Function<T>(T)
@@ -1491,7 +1491,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: void Function<T>(T)
@@ -1524,7 +1524,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: void Function<T>(T)
@@ -1558,7 +1558,7 @@
     var node = result.findNode.functionReference('f<String>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::foo::@formalParameter::a
@@ -1598,10 +1598,10 @@
     var node = result.findNode.functionReference('f<String>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ParenthesizedExpression
+  function2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::foo::@formalParameter::a
         staticType: A
@@ -1639,7 +1639,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function<T>(T)
@@ -1674,7 +1674,7 @@
     // policy over there.
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@class::C::@method::foo
@@ -1717,8 +1717,8 @@
     // policy over there.
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: c
         element: <testLibrary>::@function::bar::@formalParameter::c
@@ -1768,7 +1768,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@class::B::@getter::a
@@ -1811,10 +1811,10 @@
     var node = result.findNode.functionReference('foo<double>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ParenthesizedExpression
+  function2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: A
@@ -1852,16 +1852,16 @@
     var node = result.findNode.functionReference('(a ?? b).foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ParenthesizedExpression
+  function2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: BinaryExpression
-        leftOperand: SimpleIdentifier
+      expression2: BinaryExpression
+        leftOperand2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::f::@formalParameter::a
           staticType: A?
         operator: ??
-        rightOperand: SimpleIdentifier
+        rightOperand2: SimpleIdentifier
           token: b
           correspondingParameter: <null>
           element: <testLibrary>::@function::f::@formalParameter::b
@@ -1912,7 +1912,7 @@
     );
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
@@ -1971,9 +1971,9 @@
     // policy over there.
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PropertyAccess
-      target: ListLiteral
+  function2: PropertyAccess
+    target2: PropertyAccess
+      target2: ListLiteral
         leftBracket: [
         rightBracket: ]
         staticType: List<dynamic>
@@ -2018,8 +2018,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -2056,8 +2056,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: A
     operator: .
@@ -2090,8 +2090,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: InvalidType
     operator: .
@@ -2129,7 +2129,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::bar::@formalParameter::a
@@ -2169,8 +2169,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ThisExpression
+  function2: PropertyAccess
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     operator: .
@@ -2208,7 +2208,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@getter::a
@@ -2252,8 +2252,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -2303,8 +2303,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -2346,7 +2346,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: T
       element: #E0 T
@@ -2384,7 +2384,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::bar::@formalParameter::a
@@ -2424,7 +2424,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
+  function2: PropertyAccess
     operator: ..
     propertyName: SimpleIdentifier
       token: foo
@@ -2467,7 +2467,7 @@
     );
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: x
       element: x@22
@@ -2527,7 +2527,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function<T>(T)
@@ -2565,7 +2565,7 @@
     var node = result.findNode.singleFunctionReference;
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@extension::#0::@getter::foo
@@ -2611,7 +2611,7 @@
     var node = result.findNode.singleFunctionReference;
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@class::B::@getter::foo
@@ -2654,7 +2654,7 @@
     var node = result.findNode.singleFunctionReference;
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: foo
       element: <testLibrary>::@class::B::@getter::foo
@@ -2697,7 +2697,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function<T>(T)
@@ -2733,8 +2733,8 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: FunctionReference
-    function: SimpleIdentifier
+  target2: FunctionReference
+    function2: SimpleIdentifier
       token: foo
       element: <testLibrary>::@class::A::@method::foo
       staticType: void Function<T>(T)
@@ -2781,7 +2781,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@mixin::A::@method::foo
     staticType: void Function<T>(T)
@@ -2816,7 +2816,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@enum::A::@method::foo
     staticType: void Function<T>(T)
@@ -2850,7 +2850,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@extension::E::@method::foo
     staticType: void Function<T>(T)
@@ -2884,7 +2884,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@extensionType::A::@method::foo
     staticType: void Function<T>(T)
@@ -2920,7 +2920,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function<T>(T)
@@ -2954,7 +2954,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@mixin::M::@method::foo
     staticType: void Function<T>(T)
@@ -2986,7 +2986,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <null>
     staticType: InvalidType
@@ -3018,7 +3018,7 @@
     var node = result.findNode.expressionStatement('prefix.loadLibrary');
     assertResolvedNodeText(node, r'''
 ExpressionStatement
-  expression: PrefixedIdentifier
+  expression2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -3046,7 +3046,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: foo@20
     staticType: void Function<T>(T)
@@ -3074,7 +3074,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::bar::@formalParameter::foo
     staticType: void Function<T>(T)
@@ -3108,7 +3108,7 @@
     // policy over there.
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: fn
       element: fn@40
@@ -3152,7 +3152,7 @@
     // policy over there.
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: fn
       element: fn@55
@@ -3188,7 +3188,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::bar::@formalParameter::foo
     staticType: T
@@ -3214,7 +3214,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::bar::@formalParameter::foo
     staticType: T
@@ -3244,7 +3244,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::bar::@formalParameter::foo
     staticType: T
@@ -3274,7 +3274,7 @@
     var node = result.findNode.functionReference('i<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: i
     element: <testLibrary>::@getter::i
     staticType: Never
@@ -3306,7 +3306,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function()
@@ -3364,7 +3364,7 @@
     var node = result.findNode.functionReference('a.foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::bar::@formalParameter::a
@@ -3400,8 +3400,8 @@
     var node = result.findNode.functionReference(r'.f1;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: ({T Function<T>(T) f1, String f2})
@@ -3429,8 +3429,8 @@
     var node = result.findNode.functionReference(r'.$1;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: r
       element: <testLibrary>::@function::f::@formalParameter::r
       staticType: (T Function<T>(T), String)
@@ -3460,7 +3460,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function<T>(T)
@@ -3492,7 +3492,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -3535,8 +3535,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: a
         element: <testLibraryFragment>::@prefix::a
@@ -3585,8 +3585,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -3636,8 +3636,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -3684,7 +3684,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: TA
       element: <testLibrary>::@typeAlias::TA
@@ -3728,7 +3728,7 @@
     var node = result.findNode.singleImplicitCallReference;
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SuperExpression
+  expression2: SuperExpression
     superKeyword: super
     staticType: B
   typeArguments: TypeArgumentList
@@ -3762,7 +3762,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function<T, U>(T, U)
@@ -3797,7 +3797,7 @@
     var node = result.findNode.functionReference('foo<int, int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@method::foo
     staticType: void Function<T>(T)
@@ -3831,7 +3831,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::foo
     staticType: void Function<T>(T)
@@ -3864,7 +3864,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibraryFragment>::@prefix::a
@@ -3908,7 +3908,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibraryFragment>::@prefix::a
@@ -3946,7 +3946,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <null>
@@ -3982,8 +3982,8 @@
     var node = result.findNode.propertyAccess('.call');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: FunctionReference
-    function: SimpleIdentifier
+  target2: FunctionReference
+    function2: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
       staticType: void Function<T>(T)
@@ -4022,7 +4022,7 @@
     var node = result.findNode.functionReference('foo<int>');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::foo
     staticType: void Function<T>(T)
@@ -4055,7 +4055,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -4096,8 +4096,8 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -4139,7 +4139,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: Cb
       element: <testLibrary>::@typeAlias::Cb
@@ -4175,7 +4175,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: T
       element: <testLibrary>::@typeAlias::T
@@ -4211,7 +4211,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <null>
     staticType: InvalidType
@@ -4243,7 +4243,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@class::B::@method::bar::@formalParameter::a
@@ -4282,7 +4282,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibraryFragment>::@prefix::a
@@ -4320,11 +4320,11 @@
     var node = result.findNode.functionReference('as void Function<T>(T);');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: AsExpression
-    expression: ParenthesizedExpression
+  function2: AsExpression
+    expression2: ParenthesizedExpression
       leftParenthesis: (
-      expression: AsExpression
-        expression: SimpleIdentifier
+      expression2: AsExpression
+        expression2: SimpleIdentifier
           token: f
           element: <testLibrary>::@function::foo::@formalParameter::f
           staticType: void Function<T>(T)
@@ -4401,13 +4401,13 @@
     var node = result.findNode.functionReference('g = f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  function2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: g
       element: <null>
       staticType: null
     operator: =
-    rightHandSide: SimpleIdentifier
+    rightHandSide2: SimpleIdentifier
       token: f
       correspondingParameter: <testLibrary>::@setter::g::@formalParameter::value
       element: <testLibrary>::@function::foo::@formalParameter::f
@@ -4440,13 +4440,13 @@
     var node = result.findNode.functionReference('f += 1');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: AssignmentExpression
-    leftHandSide: SimpleIdentifier
+  function2: AssignmentExpression
+    leftHandSide2: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::foo::@formalParameter::f
       staticType: null
     operator: +=
-    rightHandSide: IntegerLiteral
+    rightHandSide2: IntegerLiteral
       literal: 1
       correspondingParameter: <testLibrary>::@extension::#0::@method::+::@formalParameter::i
       staticType: int
@@ -4472,9 +4472,9 @@
     var node = result.findNode.functionReference('await f');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: AwaitExpression
+  function2: AwaitExpression
     awaitKeyword: await
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::foo::@formalParameter::f
       staticType: Future<void Function<T>(T)>
@@ -4501,13 +4501,13 @@
     var node = result.findNode.functionReference('c + 1');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: BinaryExpression
-    leftOperand: SimpleIdentifier
+  function2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::foo::@formalParameter::c
       staticType: C
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 1
       correspondingParameter: <testLibrary>::@class::C::@method::+::@formalParameter::i
       staticType: int
@@ -4530,7 +4530,7 @@
     var node = result.findNode.functionReference('f..toString()');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::foo::@formalParameter::f
     staticType: void Function<T>(T)
@@ -4582,7 +4582,7 @@
     var node = result.findNode.functionReference('<T>(T a) {};');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: FunctionExpression
+  function2: FunctionExpression
     typeParameters: TypeParameterList
       leftBracket: <
       typeParameters
@@ -4640,10 +4640,10 @@
     var node = result.findNode.functionReference('(f)()');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: FunctionExpressionInvocation
-    function: ParenthesizedExpression
+  function2: FunctionExpressionInvocation
+    function2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: f
         element: <testLibrary>::@function::foo::@formalParameter::f
         staticType: void Function<T>(T) Function()
@@ -4673,7 +4673,7 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::foo::@formalParameter::f
     staticType: void Function<U>(U)
@@ -4698,7 +4698,7 @@
     var node = result.findNode.implicitCallReference('c;');
     assertResolvedNodeText(node, r'''
 ImplicitCallReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::foo::@formalParameter::c
     staticType: C
@@ -4719,13 +4719,13 @@
     var node = result.findNode.functionReference('f[0];');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: IndexExpression
-    target: SimpleIdentifier
+  function2: IndexExpression
+    target2: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::foo::@formalParameter::f
       staticType: List<void Function<T>(T)>
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: SubstitutedFormalParameterElementImpl
         baseElement: dart:core::@class::List::@method::[]::@formalParameter::index
@@ -4757,8 +4757,8 @@
     var node = result.findNode.functionReference('c.m();');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: MethodInvocation
-    target: SimpleIdentifier
+  function2: MethodInvocation
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::foo::@formalParameter::c
       staticType: C
@@ -4794,8 +4794,8 @@
     var node = result.findNode.functionReference('f++');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PostfixExpression
-    operand: SimpleIdentifier
+  function2: PostfixExpression
+    operand2: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::foo::@formalParameter::f
       staticType: null
@@ -4826,7 +4826,7 @@
     var node = result.findNode.functionReference('c.f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::foo::@formalParameter::c
@@ -4860,9 +4860,9 @@
     var node = result.findNode.functionReference('++f');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixExpression
+  function2: PrefixExpression
     operator: ++
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::foo::@formalParameter::f
       staticType: null
@@ -4892,10 +4892,10 @@
     var node = result.findNode.functionReference('(c).f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: ParenthesizedExpression
+  function2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: c
         element: <testLibrary>::@function::foo::@formalParameter::c
         staticType: C
@@ -4923,7 +4923,7 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::foo::@formalParameter::f
     staticType: void Function<T>(T)
@@ -4953,7 +4953,7 @@
     var node = result.findNode.functionReference('foo<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::bar::@formalParameter::foo
     staticType: void Function<T>(T)
diff --git a/pkg/analyzer/test/src/dart/resolution/if_element_test.dart b/pkg/analyzer/test/src/dart/resolution/if_element_test.dart
index ae885f4..d275fd6 100644
--- a/pkg/analyzer/test/src/dart/resolution/if_element_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/if_element_test.dart
@@ -28,7 +28,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object
@@ -36,16 +36,16 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: Object
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
     staticType: int
   elseKeyword: else
-  elseElement: IntegerLiteral
+  elseElement2: IntegerLiteral
     literal: 2
     staticType: int
 ''');
@@ -62,7 +62,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@getter::x
     staticType: int
@@ -77,7 +77,7 @@
             type: int
         matchedValueType: int
   rightParenthesis: )
-  thenElement: SimpleIdentifier
+  thenElement2: SimpleIdentifier
     token: a
     element: a@40
     staticType: int
@@ -113,7 +113,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object
@@ -135,7 +135,7 @@
             matchedValueType: Object?
           RelationalPattern
             operator: ==
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: a
               element: a@56
               staticType: int
@@ -146,13 +146,13 @@
         requiredType: List<Object?>
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@56
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -160,12 +160,12 @@
           staticInvokeType: bool Function(num)
           staticType: bool
   rightParenthesis: )
-  thenElement: SimpleIdentifier
+  thenElement2: SimpleIdentifier
     token: a
     element: a@56
     staticType: int
   elseKeyword: else
-  elseElement: SimpleIdentifier
+  elseElement2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: int
@@ -191,7 +191,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object
@@ -210,13 +210,13 @@
         matchedValueType: Object
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@42
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -224,12 +224,12 @@
           staticInvokeType: bool Function(num)
           staticType: bool
   rightParenthesis: )
-  thenElement: SimpleIdentifier
+  thenElement2: SimpleIdentifier
     token: a
     element: a@42
     staticType: int
   elseKeyword: else
-  elseElement: SimpleIdentifier
+  elseElement2: SimpleIdentifier
     token: a
     element: <null>
     staticType: InvalidType
@@ -253,15 +253,15 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SuperExpression
+  expression2: SuperExpression
     superKeyword: super
     staticType: A
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 0
     staticType: int
   elseKeyword: else
-  elseElement: IntegerLiteral
+  elseElement2: IntegerLiteral
     literal: 1
     staticType: int
 ''');
@@ -283,7 +283,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object
@@ -292,7 +292,7 @@
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
         constKeyword: const
-        expression: InstanceCreationExpression
+        expression2: InstanceCreationExpression
           constructorName: ConstructorName
             type: NamedType
               name: A
@@ -305,7 +305,7 @@
           staticType: A
         matchedValueType: Object
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -323,8 +323,8 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  expression2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: bool Function()
@@ -335,7 +335,7 @@
     staticInvokeType: bool Function()
     staticType: bool
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -353,8 +353,8 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  expression2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function()
@@ -368,12 +368,12 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: int
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
     staticType: int
 ''');
@@ -391,7 +391,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object
@@ -399,14 +399,14 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: Object
       whenClause: WhenClause
         whenKeyword: when
-        expression: FunctionExpressionInvocation
-          function: SimpleIdentifier
+        expression2: FunctionExpressionInvocation
+          function2: SimpleIdentifier
             token: a
             element: <testLibrary>::@function::f::@formalParameter::a
             staticType: bool Function()
@@ -417,7 +417,7 @@
           staticInvokeType: bool Function()
           staticType: bool
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
     staticType: int
 ''');
@@ -435,7 +435,7 @@
 IfElement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object
@@ -443,21 +443,21 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: Object
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
           staticType: bool
   rightParenthesis: )
-  thenElement: IntegerLiteral
+  thenElement2: IntegerLiteral
     literal: 1
     staticType: int
   elseKeyword: else
-  elseElement: IntegerLiteral
+  elseElement2: IntegerLiteral
     literal: 2
     staticType: int
 ''');
diff --git a/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart
index 6537636..97f328c 100644
--- a/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/if_statement_test.dart
@@ -30,7 +30,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: dynamic
@@ -38,7 +38,7 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
@@ -63,7 +63,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -101,13 +101,13 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -119,7 +119,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -144,7 +144,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -184,13 +184,13 @@
         requiredType: List<int>
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -202,7 +202,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -227,7 +227,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -266,13 +266,13 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -284,7 +284,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -309,7 +309,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -347,13 +347,13 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: InvalidType
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: <null>
             staticType: int
@@ -365,7 +365,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: InvalidType
@@ -392,7 +392,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -413,27 +413,27 @@
             matchedValueType: Object?
           operator: ||
           rightOperand: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 2
               staticType: int
             matchedValueType: Object?
           matchedValueType: Object?
         operator: ||
         rightOperand: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 3
             staticType: int
           matchedValueType: Object?
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -445,7 +445,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -470,7 +470,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -503,20 +503,20 @@
           matchedValueType: Object?
         operator: ||
         rightOperand: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 3
             staticType: int
           matchedValueType: Object?
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -528,7 +528,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -551,7 +551,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -596,13 +596,13 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -614,7 +614,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -639,7 +639,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -660,7 +660,7 @@
             matchedValueType: Object?
           operator: ||
           rightOperand: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 2
               staticType: int
             matchedValueType: Object?
@@ -679,13 +679,13 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -697,7 +697,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -724,7 +724,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -734,7 +734,7 @@
       pattern: LogicalOrPattern
         leftOperand: LogicalOrPattern
           leftOperand: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 1
               staticType: int
             matchedValueType: Object?
@@ -752,20 +752,20 @@
           matchedValueType: Object?
         operator: ||
         rightOperand: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 3
             staticType: int
           matchedValueType: Object?
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -777,7 +777,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -802,7 +802,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -812,7 +812,7 @@
       pattern: LogicalOrPattern
         leftOperand: LogicalOrPattern
           leftOperand: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 1
               staticType: int
             matchedValueType: Object?
@@ -842,13 +842,13 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -860,7 +860,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: int
@@ -897,7 +897,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -919,7 +919,7 @@
             matchedValueType: Object?
           RelationalPattern
             operator: ==
-            operand: SimpleIdentifier
+            operand2: SimpleIdentifier
               token: a
               element: a@51
               staticType: int
@@ -930,13 +930,13 @@
         requiredType: List<Object?>
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@51
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -948,7 +948,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@51
           staticType: int
@@ -959,7 +959,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: <testLibrary>::@getter::a
           staticType: int
@@ -988,7 +988,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1008,7 +1008,7 @@
           matchedValueType: Object?
         operator: ||
         rightOperand: ConstantPattern
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: InvalidType
@@ -1016,7 +1016,7 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: bool
@@ -1025,7 +1025,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@null
           staticType: bool
@@ -1036,7 +1036,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: <testLibrary>::@getter::a
           staticType: int
@@ -1063,7 +1063,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1082,13 +1082,13 @@
         matchedValueType: Object?
       whenClause: WhenClause
         whenKeyword: when
-        expression: BinaryExpression
-          leftOperand: SimpleIdentifier
+        expression2: BinaryExpression
+          leftOperand2: SimpleIdentifier
             token: a
             element: a@37
             staticType: int
           operator: >
-          rightOperand: IntegerLiteral
+          rightOperand2: IntegerLiteral
             literal: 0
             correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
             staticType: int
@@ -1100,7 +1100,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@37
           staticType: int
@@ -1111,7 +1111,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: <null>
           staticType: InvalidType
@@ -1137,7 +1137,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SuperExpression
+  expression2: SuperExpression
     superKeyword: super
     staticType: A
   rightParenthesis: )
@@ -1163,7 +1163,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: dynamic
@@ -1172,7 +1172,7 @@
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
         constKeyword: const
-        expression: InstanceCreationExpression
+        expression2: InstanceCreationExpression
           constructorName: ConstructorName
             type: NamedType
               name: A
@@ -1203,8 +1203,8 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  expression2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: bool Function()
@@ -1233,8 +1233,8 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  expression2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function()
@@ -1248,7 +1248,7 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 42
           staticType: int
         matchedValueType: int
@@ -1271,7 +1271,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: dynamic
@@ -1279,14 +1279,14 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
       whenClause: WhenClause
         whenKeyword: when
-        expression: FunctionExpressionInvocation
-          function: SimpleIdentifier
+        expression2: FunctionExpressionInvocation
+          function2: SimpleIdentifier
             token: a
             element: <testLibrary>::@function::f::@formalParameter::a
             staticType: bool Function()
@@ -1315,7 +1315,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: dynamic
@@ -1323,13 +1323,13 @@
     caseKeyword: case
     guardedPattern: GuardedPattern
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
       whenClause: WhenClause
         whenKeyword: when
-        expression: BooleanLiteral
+        expression2: BooleanLiteral
           literal: true
           staticType: bool
   rightParenthesis: )
@@ -1367,8 +1367,8 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: IsExpression
-    expression: SimpleIdentifier
+  expression2: IsExpression
+    expression2: SimpleIdentifier
       token: x
       element: x@24
       staticType: num
@@ -1383,13 +1383,13 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: FunctionExpression
+        expression2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: PrefixedIdentifier
+            expression2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: x
                 element: x@24
@@ -1430,8 +1430,8 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: IsExpression
-    expression: SimpleIdentifier
+  expression2: IsExpression
+    expression2: SimpleIdentifier
       token: x
       element: x@29
       staticType: num
@@ -1446,13 +1446,13 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: FunctionExpression
+        expression2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: PrefixedIdentifier
+            expression2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: x
                 element: x@29
@@ -1493,13 +1493,13 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: BinaryExpression
-    leftOperand: SimpleIdentifier
+  expression2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
       element: x@25
       staticType: int?
     operator: !=
-    rightOperand: NullLiteral
+    rightOperand2: NullLiteral
       literal: null
       correspondingParameter: dart:core::@class::num::@method::==::@formalParameter::other
       staticType: Null
@@ -1511,13 +1511,13 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: FunctionExpression
+        expression2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: PrefixedIdentifier
+            expression2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: x
                 element: x@25
@@ -1558,13 +1558,13 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: BinaryExpression
-    leftOperand: SimpleIdentifier
+  expression2: BinaryExpression
+    leftOperand2: SimpleIdentifier
       token: x
       element: x@30
       staticType: int?
     operator: !=
-    rightOperand: NullLiteral
+    rightOperand2: NullLiteral
       literal: null
       correspondingParameter: dart:core::@class::num::@method::==::@formalParameter::other
       staticType: Null
@@ -1576,13 +1576,13 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: FunctionExpression
+        expression2: FunctionExpression
           parameters: FormalParameterList
             leftParenthesis: (
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: PrefixedIdentifier
+            expression2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: x
                 element: x@30
diff --git a/pkg/analyzer/test/src/dart/resolution/index_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/index_expression_test.dart
index ae58f72..8c609d5 100644
--- a/pkg/analyzer/test/src/dart/resolution/index_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/index_expression_test.dart
@@ -157,13 +157,13 @@
     var node = result.findNode.index('[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <null>
     staticType: InvalidType
   question: ?
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -185,13 +185,13 @@
     var node = result.findNode.index('[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <null>
     staticType: InvalidType
   question: ?
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -215,12 +215,12 @@
     var node = result.findNode.index('a[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@method::[]::@formalParameter::index
     staticType: int
@@ -246,7 +246,7 @@
 IndexExpression
   period: ?..
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@method::[]::@formalParameter::index
     staticType: int
@@ -260,7 +260,7 @@
 IndexExpression
   period: ..
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::A::@method::[]::@formalParameter::index
     staticType: int
@@ -286,12 +286,12 @@
     var node = result.findNode.index('a[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A<double>
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: SubstitutedFormalParameterElementImpl
       baseElement: <testLibrary>::@class::A::@method::[]::@formalParameter::index
@@ -321,11 +321,11 @@
     var node = result.findNode.singleIndexExpression;
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   leftBracket: [
-  index: SuperExpression
+  index2: SuperExpression
     superKeyword: super
     staticType: A
   rightBracket: ]
@@ -346,12 +346,12 @@
     var node = result.findNode.singleIndexExpression;
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: List<int>
   leftBracket: [
-  index: SimpleIdentifier
+  index2: SimpleIdentifier
     token: b
     correspondingParameter: SubstitutedFormalParameterElementImpl
       baseElement: dart:core::@class::List::@method::[]::@formalParameter::index
@@ -380,13 +380,13 @@
     var node = result.findNode.index('a?[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
   question: ?
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@method::[]::@formalParameter::index
     staticType: int
@@ -410,11 +410,11 @@
     var node = result.findNode.singleIndexExpression;
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -440,11 +440,11 @@
     var node = result.findNode.singleIndexExpression;
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@method::[]::@formalParameter::index
     staticType: int
@@ -470,10 +470,10 @@
     var node = result.findNode.index('[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SwitchExpression
+  target2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -486,7 +486,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: InstanceCreationExpression
+        expression2: InstanceCreationExpression
           constructorName: ConstructorName
             type: NamedType
               name: A
@@ -500,7 +500,7 @@
     rightBracket: }
     staticType: A
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@method::[]::@formalParameter::index
     staticType: int
@@ -520,12 +520,12 @@
     var node = result.findNode.singleIndexExpression;
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: dynamic
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -547,12 +547,12 @@
     var node = result.findNode.singleIndexExpression;
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <null>
     staticType: InvalidType
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -577,13 +577,13 @@
     var node = result.findNode.assignment('a[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -591,7 +591,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: double
@@ -619,13 +619,13 @@
     var node = result.findNode.assignment('a[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A<double>
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: SubstitutedFormalParameterElementImpl
         baseElement: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
@@ -635,7 +635,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: dart:core::@class::double::@method::+::@formalParameter::other
     staticType: double
@@ -667,14 +667,14 @@
     var node = result.findNode.assignment('a?[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A?
     question: ?
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -682,7 +682,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: double
@@ -708,9 +708,9 @@
 
     var node = result.findNode.functionReference('b?.a[0]');
     assertResolvedNodeText(node, r'''FunctionReference
-  function: IndexExpression
-    target: PropertyAccess
-      target: SimpleIdentifier
+  function2: IndexExpression
+    target2: PropertyAccess
+      target2: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::f::@formalParameter::b
         staticType: B?
@@ -721,7 +721,7 @@
         staticType: A
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]::@formalParameter::i
       staticType: int
@@ -748,13 +748,13 @@
     var node = result.findNode.assignment('a[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -762,7 +762,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::value
     staticType: double
@@ -789,16 +789,16 @@
     var node = result.findNode.cascade('a?..');
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
-  cascadeSections
+  cascadeSections2
     AssignmentExpression
-      leftHandSide: IndexExpression
+      leftHandSide2: IndexExpression
         period: ?..
         leftBracket: [
-        index: IntegerLiteral
+        index2: IntegerLiteral
           literal: 0
           correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
           staticType: int
@@ -806,7 +806,7 @@
         element: <null>
         staticType: null
       operator: =
-      rightHandSide: SimpleIdentifier
+      rightHandSide2: SimpleIdentifier
         token: a
         correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::a
         element: <testLibrary>::@function::f::@formalParameter::a
@@ -818,10 +818,10 @@
       element: <null>
       staticType: A
     AssignmentExpression
-      leftHandSide: IndexExpression
+      leftHandSide2: IndexExpression
         period: ..
         leftBracket: [
-        index: IntegerLiteral
+        index2: IntegerLiteral
           literal: 1
           correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
           staticType: int
@@ -829,7 +829,7 @@
         element: <null>
         staticType: null
       operator: =
-      rightHandSide: SimpleIdentifier
+      rightHandSide2: SimpleIdentifier
         token: a
         correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::a
         element: <testLibrary>::@function::f::@formalParameter::a
@@ -858,13 +858,13 @@
     var node = result.findNode.assignment('a[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A<double>
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: SubstitutedFormalParameterElementImpl
         baseElement: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
@@ -874,7 +874,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: SubstitutedFormalParameterElementImpl
       baseElement: <testLibrary>::@class::A::@method::[]=::@formalParameter::value
@@ -905,14 +905,14 @@
     var node = result.findNode.assignment('a?[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A?
     question: ?
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -920,7 +920,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::value
     staticType: double
@@ -947,12 +947,12 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: IntegerLiteral
+  leftHandSide2: IndexExpression
+    target2: IntegerLiteral
       literal: 0
       staticType: int
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 1
       correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::index
       staticType: int
@@ -960,7 +960,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 2.3
     correspondingParameter: <testLibrary>::@extension::E::@method::[]=::@formalParameter::value
     staticType: double
@@ -989,11 +989,11 @@
     var node = result.findNode.assignment('[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SwitchExpression
+  leftHandSide2: IndexExpression
+    target2: SwitchExpression
       switchKeyword: switch
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
         element: <testLibrary>::@function::f::@formalParameter::x
         staticType: Object?
@@ -1006,7 +1006,7 @@
               name: _
               matchedValueType: Object?
           arrow: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             constructorName: ConstructorName
               type: NamedType
                 name: A
@@ -1020,7 +1020,7 @@
       rightBracket: }
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -1028,7 +1028,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::value
     staticType: double
diff --git a/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart b/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart
index c56a0c8..2251591 100644
--- a/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/instance_creation_test.dart
@@ -58,7 +58,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -102,11 +102,11 @@
     element: <testLibrary>::@class::C::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: x
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 123
           staticType: int
         correspondingParameter: <null>
@@ -139,7 +139,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -147,14 +147,14 @@
       NamedArgument
         name: b
         colon: :
-        argumentExpression: BooleanLiteral
+        argumentExpression2: BooleanLiteral
           literal: true
           staticType: bool
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::b
       NamedArgument
         name: c
         colon: :
-        argumentExpression: DoubleLiteral
+        argumentExpression2: DoubleLiteral
           literal: 1.2
           staticType: double
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::c
@@ -194,7 +194,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -274,7 +274,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -348,7 +348,7 @@
     element: <testLibrary>::@class::A::@constructor::named
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::named::@formalParameter::a
@@ -381,7 +381,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -420,7 +420,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -457,7 +457,7 @@
       substitution: {T: S}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: s
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -774,7 +774,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -810,7 +810,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -847,7 +847,7 @@
     element: <testLibrary>::@extensionType::A::@constructor::named
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@extensionType::A::@constructor::named::@formalParameter::it
@@ -877,7 +877,7 @@
     element: <testLibrary>::@extensionType::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
@@ -914,7 +914,7 @@
     element: <testLibrary>::@extensionType::A::@constructor::named
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@extensionType::A::@constructor::named::@formalParameter::it
@@ -946,7 +946,7 @@
     element: <testLibrary>::@extensionType::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
@@ -984,7 +984,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -1018,7 +1018,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -1064,7 +1064,7 @@
     element: package:test/a.dart::@class::A::@constructor::named
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: package:test/a.dart::@class::A::@constructor::named::@formalParameter::a
@@ -1122,7 +1122,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1175,7 +1175,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1218,7 +1218,7 @@
     element: package:test/a.dart::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: package:test/a.dart::@class::A::@constructor::new::@formalParameter::a
@@ -1265,7 +1265,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -1308,7 +1308,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -1350,7 +1350,7 @@
     element: <testLibrary>::@class::X::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
         methodName: SimpleIdentifier
           token: g1
@@ -1367,7 +1367,7 @@
       NamedArgument
         name: c
         colon: :
-        argumentExpression: MethodInvocation
+        argumentExpression2: MethodInvocation
           methodName: SimpleIdentifier
             token: g3
             element: <testLibrary>::@function::g3
@@ -1396,7 +1396,7 @@
       NamedArgument
         name: d
         colon: :
-        argumentExpression: MethodInvocation
+        argumentExpression2: MethodInvocation
           methodName: SimpleIdentifier
             token: g4
             element: <testLibrary>::@function::g4
@@ -1441,11 +1441,11 @@
     element: <testLibrary>::@class::C::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: _x
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 123
           staticType: int
         correspondingParameter: <null>
@@ -1479,11 +1479,11 @@
     element: <testLibrary>::@class::C::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: x
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 123
           staticType: int
         correspondingParameter: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
@@ -1525,7 +1525,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1570,7 +1570,7 @@
       substitution: {T: int, U: String}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1610,7 +1610,7 @@
       substitution: {T: int}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1648,7 +1648,7 @@
       substitution: {T: int, U: String}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1697,7 +1697,7 @@
       substitution: {T: String}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1737,7 +1737,7 @@
       substitution: {T: String}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1772,7 +1772,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -1810,7 +1810,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -1848,7 +1848,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -1880,7 +1880,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -1916,7 +1916,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -1957,7 +1957,7 @@
     element: <null>
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
diff --git a/pkg/analyzer/test/src/dart/resolution/is_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/is_expression_test.dart
index 2218de3..7f7edff 100644
--- a/pkg/analyzer/test/src/dart/resolution/is_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/is_expression_test.dart
@@ -30,7 +30,7 @@
     var node = result.findNode.singleIsExpression;
     assertResolvedNodeText(node, r'''
 IsExpression
-  expression: SuperExpression
+  expression2: SuperExpression
     superKeyword: super
     staticType: A<T>
   isOperator: is
@@ -54,10 +54,10 @@
     var node = result.findNode.isExpression('is double');
     assertResolvedNodeText(node, r'''
 IsExpression
-  expression: SwitchExpression
+  expression2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -70,7 +70,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
     rightBracket: }
@@ -94,7 +94,7 @@
     var node = result.findNode.singleIsExpression;
     assertResolvedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Object?
@@ -117,7 +117,7 @@
     var node = result.findNode.singleIsExpression;
     assertResolvedNodeText(node, r'''
 IsExpression
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Object?
diff --git a/pkg/analyzer/test/src/dart/resolution/library_export_test.dart b/pkg/analyzer/test/src/dart/resolution/library_export_test.dart
index 6304f87..10d663a 100644
--- a/pkg/analyzer/test/src/dart/resolution/library_export_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/library_export_test.dart
@@ -420,7 +420,7 @@
         contents: '
       InterpolationExpression
         leftBracket: ${
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: 'foo'
         rightBracket: }
       InterpolationString
@@ -644,7 +644,7 @@
         contents: '
       InterpolationExpression
         leftBracket: ${
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: 'foo'
         rightBracket: }
       InterpolationString
diff --git a/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart b/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart
index 29259f4..42fc152 100644
--- a/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/library_import_prefix_test.dart
@@ -104,7 +104,7 @@
       substitution: {T: dynamic}
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: p
         correspondingParameter: SubstitutedFormalParameterElementImpl
diff --git a/pkg/analyzer/test/src/dart/resolution/library_import_test.dart b/pkg/analyzer/test/src/dart/resolution/library_import_test.dart
index 7500c84..49dcff9 100644
--- a/pkg/analyzer/test/src/dart/resolution/library_import_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/library_import_test.dart
@@ -201,7 +201,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               constructorName: ConstructorName
                 type: NamedType
                   name: A
@@ -287,7 +287,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               constructorName: ConstructorName
                 type: NamedType
                   name: A
@@ -353,7 +353,7 @@
         contents: '
       InterpolationExpression
         leftBracket: ${
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: 'foo'
         rightBracket: }
       InterpolationString
@@ -483,7 +483,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               constructorName: ConstructorName
                 type: NamedType
                   name: A
@@ -603,7 +603,7 @@
         contents: '
       InterpolationExpression
         leftBracket: ${
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: 'foo'
         rightBracket: }
       InterpolationString
@@ -830,7 +830,7 @@
         contents: '
       InterpolationExpression
         leftBracket: ${
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: 'foo'
         rightBracket: }
       InterpolationString
diff --git a/pkg/analyzer/test/src/dart/resolution/list_literal_test.dart b/pkg/analyzer/test/src/dart/resolution/list_literal_test.dart
index 5217f3e..89b47cc 100644
--- a/pkg/analyzer/test/src/dart/resolution/list_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/list_literal_test.dart
@@ -81,7 +81,7 @@
     assertResolvedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 0
       staticType: int
@@ -101,7 +101,7 @@
     assertResolvedNodeText(node, r'''
 ListLiteral
   leftBracket: [
-  elements
+  elements2
     IntegerLiteral
       literal: 0
       staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart
index b34a963..73b8143 100644
--- a/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart
@@ -126,7 +126,7 @@
   leftBracket: [
   elements
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: int
@@ -152,7 +152,7 @@
   leftBracket: [
   elements
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: int
@@ -252,7 +252,7 @@
   leftBracket: [
   elements
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: Object?
@@ -365,7 +365,7 @@
   leftBracket: [
   elements
     ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: int
@@ -477,7 +477,7 @@
     matchedValueType: List<int>
     requiredType: List<int>
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: List<int>
@@ -520,7 +520,7 @@
     matchedValueType: List<int>
     requiredType: List<int>
   equals: =
-  expression: MethodInvocation
+  expression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
       element: <testLibrary>::@function::g
@@ -567,7 +567,7 @@
     matchedValueType: List<int>
     requiredType: List<int>
   equals: =
-  expression: MethodInvocation
+  expression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
       element: <testLibrary>::@function::g
diff --git a/pkg/analyzer/test/src/dart/resolution/logical_and_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/logical_and_pattern_test.dart
index 8af512e..c209ab8 100644
--- a/pkg/analyzer/test/src/dart/resolution/logical_and_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/logical_and_pattern_test.dart
@@ -110,7 +110,7 @@
       rightParenthesis: )
       matchedValueType: int
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     patternTypeSchema: _
diff --git a/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart
index 5da9b5e..a6dc5c3 100644
--- a/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/map_pattern_test.dart
@@ -33,7 +33,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
@@ -70,7 +70,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
@@ -116,7 +116,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
@@ -167,12 +167,12 @@
     RestPatternElement
       operator: ...
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
       value: ConstantPattern
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: ''
         matchedValueType: String
   rightBracket: }
@@ -195,12 +195,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
       value: ConstantPattern
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: ''
         matchedValueType: String
     RestPatternElement
@@ -229,12 +229,12 @@
     RestPatternElement
       operator: ...
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
       value: ConstantPattern
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: ''
         matchedValueType: String
     RestPatternElement
@@ -261,12 +261,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
       value: ConstantPattern
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: ''
         matchedValueType: String
     RestPatternElement
@@ -298,7 +298,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
@@ -341,7 +341,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: BooleanLiteral
+      key2: BooleanLiteral
         literal: true
         staticType: bool
       separator: :
@@ -370,12 +370,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: BooleanLiteral
+      key2: BooleanLiteral
         literal: true
         staticType: bool
       separator: :
       value: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: Object?
@@ -417,7 +417,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: BooleanLiteral
+      key2: BooleanLiteral
         literal: true
         staticType: bool
       separator: :
@@ -451,7 +451,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: BooleanLiteral
+      key2: BooleanLiteral
         literal: true
         staticType: bool
       separator: :
@@ -492,12 +492,12 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: BooleanLiteral
+      key2: BooleanLiteral
         literal: true
         staticType: bool
       separator: :
       value: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: int
@@ -533,7 +533,7 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: BooleanLiteral
+      key2: BooleanLiteral
         literal: true
         staticType: bool
       separator: :
@@ -564,8 +564,8 @@
   leftBracket: {
   elements
     MapPatternEntry
-      key: FunctionExpressionInvocation
-        function: SimpleIdentifier
+      key2: FunctionExpressionInvocation
+        function2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::f::@formalParameter::a
           staticType: bool Function()
@@ -577,7 +577,7 @@
         staticType: bool
       separator: :
       value: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
@@ -603,7 +603,7 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: BooleanLiteral
+        key2: BooleanLiteral
           literal: true
           staticType: bool
         separator: :
@@ -617,7 +617,7 @@
     matchedValueType: Map<bool, int>
     requiredType: Map<bool, int>
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Map<bool, int>
@@ -655,7 +655,7 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: BooleanLiteral
+        key2: BooleanLiteral
           literal: true
           staticType: bool
         separator: :
@@ -669,7 +669,7 @@
     matchedValueType: Map<bool, int>
     requiredType: Map<bool, int>
   equals: =
-  expression: MethodInvocation
+  expression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
       element: <testLibrary>::@function::g
@@ -703,7 +703,7 @@
     leftBracket: {
     elements
       MapPatternEntry
-        key: BooleanLiteral
+        key2: BooleanLiteral
           literal: true
           staticType: bool
         separator: :
@@ -721,7 +721,7 @@
     matchedValueType: Map<Object?, int>
     requiredType: Map<Object?, int>
   equals: =
-  expression: MethodInvocation
+  expression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
       element: <testLibrary>::@function::g
diff --git a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
index 278943a..07c7780 100644
--- a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
@@ -151,7 +151,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       InstanceCreationExpression
         constructorName: ConstructorName
           type: NamedType
@@ -161,7 +161,7 @@
           element: <testLibrary>::@class::A::@constructor::new
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             IntegerLiteral
               literal: 0
               correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::f
@@ -277,7 +277,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 3
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -386,7 +386,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::f
@@ -423,7 +423,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::f
@@ -492,7 +492,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@class::A::@constructor::named::@formalParameter::f
@@ -539,7 +539,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@class::A::@constructor::named::@formalParameter::f
@@ -592,7 +592,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <null>
@@ -657,7 +657,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::f
@@ -701,7 +701,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       InstanceCreationExpression
         keyword: const
         constructorName: ConstructorName
@@ -759,7 +759,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@extensionType::A::@constructor::named::@formalParameter::it
@@ -792,7 +792,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::it
@@ -840,7 +840,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       ListLiteral
         leftBracket: [
         rightBracket: ]
@@ -886,7 +886,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       ListLiteral
         leftBracket: [
         rightBracket: ]
@@ -944,7 +944,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -989,7 +989,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -1079,7 +1079,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -1175,7 +1175,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -1228,7 +1228,7 @@
     rightBracket: >
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -1274,7 +1274,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -1323,7 +1323,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1382,7 +1382,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1438,7 +1438,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1493,7 +1493,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1549,7 +1549,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1607,7 +1607,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1671,7 +1671,7 @@
     rightBracket: >
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1850,7 +1850,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: package:test/a.dart::@class::A::@constructor::named::@formalParameter::f
@@ -1945,7 +1945,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: package:test/a.dart::@class::A::@constructor::new::@formalParameter::f
@@ -2086,7 +2086,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2144,7 +2144,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2217,7 +2217,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2283,7 +2283,7 @@
     rightBracket: >
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2393,7 +2393,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2457,7 +2457,7 @@
     rightBracket: >
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2524,7 +2524,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2571,7 +2571,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2633,7 +2633,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2688,7 +2688,7 @@
     rightBracket: >
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2747,7 +2747,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2794,7 +2794,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: SubstitutedFieldFormalParameterElementImpl
@@ -2849,7 +2849,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@class::A::@constructor::named::@formalParameter::f
@@ -2890,7 +2890,7 @@
     staticType: null
   arguments: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::f
diff --git a/pkg/analyzer/test/src/dart/resolution/method_declaration_test.dart b/pkg/analyzer/test/src/dart/resolution/method_declaration_test.dart
index 79597f4..440706fa 100644
--- a/pkg/analyzer/test/src/dart/resolution/method_declaration_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/method_declaration_test.dart
@@ -152,7 +152,7 @@
 VariableDeclaration
   name: _
   equals: =
-  initializer: SimpleIdentifier
+  initializer2: SimpleIdentifier
     token: _
     element: <testLibrary>::@class::C::@getter::_
     staticType: int
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 4f63725..ac3cb9e 100644
--- a/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/method_invocation_test.dart
@@ -40,7 +40,7 @@
     staticType: void Function(Object)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SuperExpression
         superKeyword: super
         staticType: A
@@ -72,7 +72,7 @@
     staticType: void Function(int, int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: <empty> <synthetic>
         correspondingParameter: <testLibrary>::@function::g::@formalParameter::a
@@ -104,11 +104,11 @@
     var node = result.findNode.singleCascadeExpression;
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
-  cascadeSections
+  cascadeSections2
     MethodInvocation
       operator: ..
       methodName: SimpleIdentifier
@@ -153,9 +153,9 @@
     staticType: dynamic Function(double)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
-        target: SimpleIdentifier
+        target2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::g::@formalParameter::a
           staticType: double
@@ -166,7 +166,7 @@
           staticType: num Function(num, num)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             MethodInvocation
               methodName: SimpleIdentifier
                 token: f
@@ -223,9 +223,9 @@
     staticType: dynamic Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
-        target: SimpleIdentifier
+        target2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::g::@formalParameter::a
           staticType: double
@@ -236,7 +236,7 @@
           staticType: num Function(num, num)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             MethodInvocation
               methodName: SimpleIdentifier
                 token: f
@@ -284,7 +284,7 @@
     var node = result.findNode.methodInvocation('a.clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::g::@formalParameter::a
     staticType: double
@@ -295,7 +295,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
         methodName: SimpleIdentifier
           token: f
@@ -338,7 +338,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: double
@@ -349,7 +349,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -376,7 +376,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: double
@@ -387,7 +387,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -414,7 +414,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: double
@@ -425,7 +425,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -452,7 +452,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: double
@@ -463,7 +463,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -500,9 +500,9 @@
     staticType: dynamic Function(double)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
-        target: SimpleIdentifier
+        target2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::g::@formalParameter::a
           staticType: int
@@ -513,7 +513,7 @@
           staticType: num Function(num, num)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             MethodInvocation
               methodName: SimpleIdentifier
                 token: f
@@ -568,9 +568,9 @@
     staticType: dynamic Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
-        target: SimpleIdentifier
+        target2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::g::@formalParameter::a
           staticType: int
@@ -581,7 +581,7 @@
           staticType: num Function(num, num)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             MethodInvocation
               methodName: SimpleIdentifier
                 token: f
@@ -629,7 +629,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::g::@formalParameter::a
     staticType: int
@@ -640,7 +640,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
         methodName: SimpleIdentifier
           token: f
@@ -683,7 +683,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -694,7 +694,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -721,7 +721,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -732,7 +732,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -759,7 +759,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -770,7 +770,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -797,7 +797,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -808,7 +808,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -835,7 +835,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -846,7 +846,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -873,7 +873,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -884,7 +884,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -911,7 +911,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -922,7 +922,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -949,7 +949,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -960,7 +960,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -994,7 +994,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -1024,11 +1024,11 @@
     var node = result.findNode.methodInvocation('clamp(b');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -1045,7 +1045,7 @@
     staticType: String Function(int, int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: <testLibrary>::@extension::E::@method::clamp::@formalParameter::x
@@ -1072,7 +1072,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -1083,7 +1083,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -1112,7 +1112,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -1123,7 +1123,7 @@
     staticType: num Function(num, num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::clamp::@formalParameter::lowerLimit
@@ -1154,7 +1154,7 @@
     var node = result.findNode.methodInvocation('clamp');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Never
@@ -1165,7 +1165,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: <null>
@@ -1205,9 +1205,9 @@
     staticType: dynamic Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
-        target: SimpleIdentifier
+        target2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::g::@formalParameter::a
           staticType: A
@@ -1218,7 +1218,7 @@
           staticType: num Function(String, String)
         argumentList: ArgumentList
           leftParenthesis: (
-          arguments
+          arguments2
             MethodInvocation
               methodName: SimpleIdentifier
                 token: f
@@ -1268,7 +1268,7 @@
     var node = result.findNode.methodInvocation('clamp(b');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -1279,7 +1279,7 @@
     staticType: String Function(int, int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: <testLibrary>::@class::A::@method::clamp::@formalParameter::x
@@ -1310,11 +1310,11 @@
     var node = result.findNode.methodInvocation('clamp(b');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -1331,7 +1331,7 @@
     staticType: String Function(int, int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: <testLibrary>::@extension::E::@method::clamp::@formalParameter::x
@@ -1362,7 +1362,7 @@
     var node = result.findNode.methodInvocation('clamp(b');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -1373,7 +1373,7 @@
     staticType: String Function(int, int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: <testLibrary>::@extension::E::@method::clamp::@formalParameter::x
@@ -1418,7 +1418,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -1455,7 +1455,7 @@
     staticType: void Function<T>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: s
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1501,7 +1501,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: package:test/a.dart::@function::foo::@formalParameter::_
@@ -1534,7 +1534,7 @@
     var node = result.findNode.methodInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: p
     element: <testLibraryFragment>::@prefix::p
     staticType: null
@@ -1547,7 +1547,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: package:test/a.dart::@function::foo::@formalParameter::_
@@ -1574,7 +1574,7 @@
     var node = result.findNode.methodInvocation('a.foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -1585,7 +1585,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -1612,7 +1612,7 @@
     var node = result.findNode.functionExpressionInvocation('c();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -1639,8 +1639,8 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -1675,7 +1675,7 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: dynamic
@@ -1702,7 +1702,7 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::C::@getter::foo
     staticType: dynamic
@@ -1725,13 +1725,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(1, 2);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::f::@formalParameter::foo
     staticType: Function
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <null>
@@ -1764,7 +1764,7 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: SubstitutedGetterElementImpl
       baseElement: <testLibrary>::@class::C::@getter::foo
@@ -1772,7 +1772,7 @@
     staticType: T
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: _@null
@@ -1797,7 +1797,7 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::main::@formalParameter::foo
     staticType: Object
@@ -1820,7 +1820,7 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::main::@formalParameter::foo
     staticType: dynamic
@@ -1849,8 +1849,8 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: C
       element: <testLibrary>::@class::C
       staticType: null
@@ -1885,7 +1885,7 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::C::@getter::foo
     staticType: int
@@ -1916,8 +1916,8 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -1953,7 +1953,7 @@
     var node = result.findNode.methodInvocation('foo();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: prefix
     element: <testLibraryFragment>::@prefix::prefix
     staticType: null
@@ -1984,7 +1984,7 @@
     var node = result.findNode.methodInvocation('loadLibrary()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: math
     element: <testLibraryFragment>::@prefix::math
     staticType: null
@@ -2045,7 +2045,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2070,7 +2070,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: math
     element: <testLibraryFragment>::@prefix::math
     staticType: null
@@ -2081,7 +2081,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2104,7 +2104,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: bar
     element: <null>
     staticType: InvalidType
@@ -2115,7 +2115,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2139,7 +2139,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: C
     element: <testLibrary>::@class::C
     staticType: null
@@ -2150,7 +2150,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2176,7 +2176,7 @@
     var node = result.findNode.methodInvocation('foo(x);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: C
     element: <testLibrary>::@class::C
     staticType: null
@@ -2187,7 +2187,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: x
         correspondingParameter: <null>
@@ -2217,7 +2217,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: C
     element: <testLibrary>::@class::C
     staticType: null
@@ -2228,7 +2228,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2253,7 +2253,7 @@
     var node = result.findNode.methodInvocation('foo<int>();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: C
     element: <testLibrary>::@class::C
     staticType: null
@@ -2292,7 +2292,7 @@
     var node = result.findNode.methodInvocation('C.T();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: C
     element: <testLibrary>::@class::C
     staticType: null
@@ -2321,7 +2321,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 42
     staticType: int
   operator: .
@@ -2331,7 +2331,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2355,7 +2355,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: v
     element: v@15
     staticType: Null Function()
@@ -2366,7 +2366,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2397,7 +2397,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2428,7 +2428,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2451,7 +2451,7 @@
     var node = result.findNode.methodInvocation('foo();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: NullLiteral
+  target2: NullLiteral
     literal: null
     staticType: Null
   operator: .
@@ -2504,7 +2504,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2568,7 +2568,7 @@
     staticType: void Function()
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -2597,7 +2597,7 @@
     var node = result.findNode.methodInvocation('foo(1);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: p
     element: <testLibraryFragment>::@prefix::p
     staticType: null
@@ -2608,7 +2608,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <null>
@@ -2643,7 +2643,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <null>
@@ -2671,8 +2671,8 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C<void>
@@ -2706,7 +2706,7 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: foo@16
     staticType: void
@@ -2759,7 +2759,7 @@
     var node = result.findNode.functionExpressionInvocation('foo();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: void
@@ -2785,7 +2785,7 @@
     var node = result.findNode.methodInvocation('toString()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: foo@16
     staticType: void
@@ -2841,7 +2841,7 @@
     var node = result.findNode.methodInvocation('toString()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: foo@16
     staticType: void
@@ -2939,7 +2939,7 @@
     var node = result.findNode.methodInvocation('call(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: g
     element: <testLibrary>::@function::f::@formalParameter::g
     staticType: double Function(int)
@@ -2950,7 +2950,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: p@27
@@ -2975,7 +2975,7 @@
     var node = result.findNode.methodInvocation('call(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -2986,7 +2986,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@method::call::@formalParameter::p
@@ -3011,7 +3011,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -3067,8 +3067,8 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: C
       element: <testLibrary>::@class::C
       staticType: null
@@ -3080,7 +3080,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -3106,7 +3106,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: C
     element: <testLibrary>::@class::C
     staticType: null
@@ -3117,7 +3117,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@method::foo::@formalParameter::_
@@ -3142,7 +3142,7 @@
     var node = result.findNode.methodInvocation('loadLibrary()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: math
     element: <testLibraryFragment>::@prefix::math
     staticType: null
@@ -3175,7 +3175,7 @@
     var node = result.findNode.methodInvocation('loadLibrary(1 + 2)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: math
     element: <testLibraryFragment>::@prefix::math
     staticType: null
@@ -3186,13 +3186,13 @@
     staticType: Future<dynamic> Function()
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: IntegerLiteral
+        leftOperand2: IntegerLiteral
           literal: 1
           staticType: int
         operator: +
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 2
           correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
           staticType: int
@@ -3216,7 +3216,7 @@
     var node = result.findNode.methodInvocation('hash(');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: dynamic
@@ -3227,7 +3227,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -3256,8 +3256,8 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: A
       element: <testLibrary>::@extension::A
       staticType: null
@@ -3269,7 +3269,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -3295,7 +3295,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: A
     element: <testLibrary>::@extension::A
     staticType: null
@@ -3306,7 +3306,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@extension::A::@method::foo::@formalParameter::_
@@ -3331,7 +3331,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: A
     element: <testLibrary>::@extensionType::A
     staticType: null
@@ -3360,7 +3360,7 @@
     var node = result.findNode.methodInvocation('call(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::foo
     staticType: void Function(int)
@@ -3371,7 +3371,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::_
@@ -3394,7 +3394,7 @@
     var node = result.findNode.methodInvocation('call(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::foo
     staticType: void Function<T>(T)
@@ -3405,7 +3405,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -3436,7 +3436,7 @@
     var node = result.findNode.methodInvocation('foo(1, 2)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: prefix
     element: <testLibraryFragment>::@prefix::prefix
     staticType: null
@@ -3447,7 +3447,7 @@
     staticType: T Function<T extends num>(T, T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -3484,7 +3484,7 @@
     var node = result.findNode.functionExpressionInvocation('foo(1, 2);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -3498,7 +3498,7 @@
     staticType: T Function<T>(T, T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -3532,7 +3532,7 @@
     var node = result.findNode.methodInvocation('call(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: foo@44
     staticType: Function
@@ -3543,7 +3543,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -3566,7 +3566,7 @@
     var node = result.findNode.methodInvocation('call(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: Function
@@ -3577,7 +3577,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -3602,8 +3602,8 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -3615,7 +3615,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -3648,7 +3648,7 @@
     var node = result.findNode.functionExpressionInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
+  function2: PropertyAccess
     operator: ..
     propertyName: SimpleIdentifier
       token: foo
@@ -3657,7 +3657,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -3686,8 +3686,8 @@
     var node = result.findNode.functionExpressionInvocation('foo()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C
@@ -3720,7 +3720,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -3731,7 +3731,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@method::foo::@formalParameter::_
@@ -3758,7 +3758,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -3769,7 +3769,7 @@
     staticType: T Function<T>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -3808,7 +3808,7 @@
     var node = result.findNode.methodInvocation("foo('hi')");
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -3819,7 +3819,7 @@
     staticType: void Function(Object)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: 'hi'
     rightParenthesis: )
@@ -3847,7 +3847,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: SubstitutedGetterElementImpl
       baseElement: <testLibrary>::@class::C::@getter::a
@@ -3860,7 +3860,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -3881,7 +3881,7 @@
     var node = result.findNode.methodInvocation('foo?.call()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::f::@formalParameter::foo
     staticType: Function?
@@ -3910,7 +3910,7 @@
     var node = result.findNode.methodInvocation('foo.call()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::f::@formalParameter::foo
     staticType: Function?
@@ -3942,8 +3942,8 @@
     var node = result.findNode.methodInvocation('bar();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: MethodInvocation
-    target: SimpleIdentifier
+  target2: MethodInvocation
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::testShort::@formalParameter::c
       staticType: C?
@@ -3984,8 +3984,8 @@
     var node = result.findNode.functionExpressionInvocation('foo(c);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
       staticType: C?
@@ -3997,7 +3997,7 @@
     staticType: void Function(C)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: c
         correspondingParameter: <null-name>@null
@@ -4025,7 +4025,7 @@
     var node = result.findNode.methodInvocation('e.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: e
     element: <testLibrary>::@function::f::@formalParameter::e
     staticType: E
@@ -4060,7 +4060,7 @@
     var node = result.findNode.methodInvocation('e.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: e
     element: <testLibrary>::@function::f::@formalParameter::e
     staticType: E
@@ -4091,7 +4091,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -4122,7 +4122,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
@@ -4155,7 +4155,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4186,7 +4186,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4221,7 +4221,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: X
@@ -4258,7 +4258,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: X
@@ -4293,7 +4293,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: X
@@ -4326,7 +4326,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: B
@@ -4361,7 +4361,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <testLibrary>::@function::f::@formalParameter::b
     staticType: B
@@ -4392,7 +4392,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -4420,10 +4420,10 @@
     var node = result.findNode.methodInvocation('toString()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SwitchExpression
+  target2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -4436,7 +4436,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
     rightBracket: }
@@ -4470,7 +4470,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4507,7 +4507,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4542,7 +4542,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4573,7 +4573,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int?
@@ -4606,7 +4606,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4641,7 +4641,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4674,7 +4674,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -4703,7 +4703,7 @@
     var node = result.findNode.methodInvocation('foo');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Never?
@@ -4738,8 +4738,8 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: PrefixedIdentifier
+  function2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: prefix
         element: <testLibraryFragment>::@prefix::prefix
@@ -4759,7 +4759,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -4789,7 +4789,7 @@
     var node = result.findNode.methodInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: PrefixedIdentifier
+  target2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: prefix
       element: <testLibraryFragment>::@prefix::prefix
@@ -4808,7 +4808,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: package:test/a.dart::@class::C::@method::foo::@formalParameter::_
@@ -4833,7 +4833,7 @@
     var node = result.findNode.methodInvocation('r.foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -4844,7 +4844,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@extension::E::@method::foo::@formalParameter::a
@@ -4869,7 +4869,7 @@
     var node = result.findNode.methodInvocation('r.foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)?
@@ -4880,7 +4880,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@extension::E::@method::foo::@formalParameter::a
@@ -4907,7 +4907,7 @@
     var node = result.findNode.methodInvocation('r.foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)?
@@ -4918,7 +4918,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -4943,7 +4943,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -4975,7 +4975,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -5020,7 +5020,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -5066,7 +5066,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -5076,7 +5076,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -5103,8 +5103,8 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -5115,7 +5115,7 @@
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -5143,7 +5143,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -5153,7 +5153,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -5178,7 +5178,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: M
   operator: .
@@ -5210,7 +5210,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: M
   operator: .
@@ -5242,7 +5242,7 @@
     var node = result.findNode.methodInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: B
     element: <testLibrary>::@typeAlias::B
     staticType: null
@@ -5253,7 +5253,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -5280,7 +5280,7 @@
     var node = result.findNode.methodInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: B
     element: <testLibrary>::@typeAlias::B
     staticType: null
@@ -5291,7 +5291,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -5314,7 +5314,7 @@
     var node = result.findNode.methodInvocation('t.abs()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: t
     element: <testLibrary>::@function::f::@formalParameter::t
     staticType: T & int
@@ -5349,7 +5349,7 @@
     var node = result.findNode.methodInvocation('a.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: T & U
@@ -5382,13 +5382,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: int
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -5414,13 +5414,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -5446,13 +5446,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -5474,13 +5474,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::f::@formalParameter::foo
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -5514,18 +5514,18 @@
     staticType: void Function({int? p})
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: p
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 0
           staticType: int
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::p
       NamedArgument
         name: p
         colon: :
-        argumentExpression: SimpleIdentifier
+        argumentExpression2: SimpleIdentifier
           token: a
           element: <testLibrary>::@getter::a
           staticType: int
@@ -5550,13 +5550,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: int
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -5580,13 +5580,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0)');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -5618,7 +5618,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::p
@@ -5649,7 +5649,7 @@
     staticType: E Function<E>(A<E>)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       ThisExpression
         thisKeyword: this
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -5682,7 +5682,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::a
@@ -5711,7 +5711,7 @@
     staticType: void Function<T>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -5736,7 +5736,7 @@
     var node = result.findNode.methodInvocation('?.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <null>
     staticType: InvalidType
@@ -5765,7 +5765,7 @@
     var node = result.findNode.methodInvocation('?.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <null>
     staticType: InvalidType
@@ -5797,7 +5797,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: A
     element: <testLibrary>::@class::A
     staticType: null
@@ -5808,7 +5808,7 @@
     staticType: int Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: a
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -5831,7 +5831,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleStringLiteral
+  target2: SimpleStringLiteral
     literal: 'abc'
   operator: .
   methodName: SimpleIdentifier
@@ -5840,7 +5840,7 @@
     staticType: int Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: a
         correspondingParameter: dart:core::@class::String::@method::codeUnitAt::@formalParameter::index
@@ -5869,7 +5869,7 @@
     staticType: double Function(int, String)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: a@26
@@ -5899,7 +5899,7 @@
     staticType: T Function<T, U>(T, U)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -5934,7 +5934,7 @@
     staticType: T Function<T>([T?])
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -5966,11 +5966,11 @@
     staticType: T Function<T>({required T a})
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: a
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 0
           staticType: int
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -6002,18 +6002,18 @@
     staticType: void Function({int? a, bool? b})
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: b
         colon: :
-        argumentExpression: BooleanLiteral
+        argumentExpression2: BooleanLiteral
           literal: false
           staticType: bool
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::b
       NamedArgument
         name: a
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 0
           staticType: int
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::a
@@ -6051,7 +6051,7 @@
     staticType: void Function(A, B, {C? c, D? d})
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       MethodInvocation
         methodName: SimpleIdentifier
           token: g1
@@ -6068,7 +6068,7 @@
       NamedArgument
         name: c
         colon: :
-        argumentExpression: MethodInvocation
+        argumentExpression2: MethodInvocation
           methodName: SimpleIdentifier
             token: g3
             element: <testLibrary>::@function::g3
@@ -6097,7 +6097,7 @@
       NamedArgument
         name: d
         colon: :
-        argumentExpression: MethodInvocation
+        argumentExpression2: MethodInvocation
           methodName: SimpleIdentifier
             token: g4
             element: <testLibrary>::@function::g4
@@ -6180,13 +6180,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::A::@getter::foo
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -6212,13 +6212,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@class::C::@getter::foo
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -6274,7 +6274,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: _@24
@@ -6299,13 +6299,13 @@
     var node = result.findNode.functionExpressionInvocation('c(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@method::call::@formalParameter::_
@@ -6330,13 +6330,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: foo@15
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -6370,7 +6370,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -6401,7 +6401,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@method::foo::@formalParameter::_
@@ -6422,13 +6422,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@function::f::@formalParameter::foo
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -6452,7 +6452,7 @@
     var node = result.findNode.methodInvocation('call(1)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: double Function(int)?
@@ -6463,7 +6463,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: <null-name>@null
@@ -6486,7 +6486,7 @@
     var node = result.findNode.functionExpressionInvocation('a();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: void Function()
@@ -6519,7 +6519,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::_
@@ -6542,13 +6542,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: double Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -6572,13 +6572,13 @@
     var node = result.findNode.functionExpressionInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: foo
     element: <testLibrary>::@getter::foo
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
@@ -6605,11 +6605,11 @@
     var node = result.findNode.cascade('a?..');
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
-  cascadeSections
+  cascadeSections2
     MethodInvocation
       operator: ?..
       methodName: SimpleIdentifier
@@ -6651,11 +6651,11 @@
     var node = result.findNode.cascade('a?..');
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
-  cascadeSections
+  cascadeSections2
     PropertyAccess
       operator: ?..
       propertyName: SimpleIdentifier
@@ -6693,7 +6693,7 @@
     var node = result.findNode.cascade('A()..');
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -6704,9 +6704,9 @@
       leftParenthesis: (
       rightParenthesis: )
     staticType: A
-  cascadeSections
+  cascadeSections2
     MethodInvocation
-      target: MethodInvocation
+      target2: MethodInvocation
         operator: ..
         methodName: SimpleIdentifier
           token: foo
@@ -6741,7 +6741,7 @@
     var node = result.findNode.methodInvocation('toString(b)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: dynamic
@@ -6752,7 +6752,7 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: <null>
@@ -6774,7 +6774,7 @@
     var node = result.findNode.methodInvocation('toString()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: dynamic
@@ -6803,7 +6803,7 @@
     var node = result.findNode.methodInvocation('toString();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::f
     staticType: void Function()
@@ -6986,7 +6986,7 @@
     var node = result.findNode.methodInvocation('remainder');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -6997,7 +6997,7 @@
     staticType: num Function(num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::remainder::@formalParameter::other
@@ -7019,7 +7019,7 @@
     var node = result.findNode.methodInvocation('remainder');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: int
@@ -7030,7 +7030,7 @@
     staticType: num Function(num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::remainder::@formalParameter::other
@@ -7052,8 +7052,8 @@
     var node = result.findNode.methodInvocation('remainder');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  target2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function()
@@ -7070,7 +7070,7 @@
     staticType: num Function(num)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: b
         correspondingParameter: dart:core::@class::num::@method::remainder::@formalParameter::other
@@ -7167,12 +7167,12 @@
     var node = result.findNode.functionExpressionInvocation('content()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: PropertyAccess
-      target: ParenthesizedExpression
+  function2: PropertyAccess
+    target2: PropertyAccess
+      target2: ParenthesizedExpression
         leftParenthesis: (
-        expression: AsExpression
-          expression: NullLiteral
+        expression2: AsExpression
+          expression2: NullLiteral
             literal: null
             staticType: Null
           asOperator: as
@@ -7215,8 +7215,8 @@
     var node = result.findNode.functionExpressionInvocation('x.first()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: PropertyAccess
-    target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::test::@formalParameter::x
       staticType: List<T>
@@ -7249,7 +7249,7 @@
     var node = result.findNode.functionExpressionInvocation('first()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: first
     element: SubstitutedGetterElementImpl
       baseElement: dart:core::@class::Iterable::@getter::first
@@ -7281,7 +7281,7 @@
     var node = result.findNode.methodInvocation('foo();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: E
   operator: .
@@ -7313,7 +7313,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -7323,7 +7323,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -7349,7 +7349,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: E
   operator: .
@@ -7359,7 +7359,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -7386,7 +7386,7 @@
     var node = result.findNode.methodInvocation('foo(0);');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: M
   operator: .
@@ -7396,7 +7396,7 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -7430,13 +7430,13 @@
     staticType: InvalidType
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: IntegerLiteral
+        leftOperand2: IntegerLiteral
           literal: 1
           staticType: int
         operator: +
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 2
           correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
           staticType: int
@@ -7446,7 +7446,7 @@
         staticType: int
       ListLiteral
         leftBracket: [
-        elements
+        elements2
           IntegerLiteral
             literal: 0
             staticType: int
@@ -7480,7 +7480,7 @@
     staticType: void Function(int, {required bool b})
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::a
@@ -7488,7 +7488,7 @@
       NamedArgument
         name: b
         colon: :
-        argumentExpression: BooleanLiteral
+        argumentExpression2: BooleanLiteral
           literal: true
           staticType: bool
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::b
@@ -7518,7 +7518,7 @@
     staticType: U Function<T, U>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -7552,7 +7552,7 @@
     staticType: void Function<T extends Object>(T?)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: o
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -7586,7 +7586,7 @@
     staticType: void Function<T extends Object>(List<T?>)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleIdentifier
         token: o
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -7722,7 +7722,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@function::foo::@formalParameter::a
diff --git a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
index 89d43f7..a980733 100644
--- a/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/mixin_test.dart
@@ -63,7 +63,7 @@
     var node = result.findNode.commentReference('a]');
     assertResolvedNodeText(node, r'''
 CommentReference
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: null
@@ -148,7 +148,7 @@
   name: foo
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     semicolon: ;
@@ -278,7 +278,7 @@
     var node = result.findNode.functionExpressionInvocation('f()');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::g::@formalParameter::f
     staticType: M<T> Function<T>()
@@ -386,7 +386,7 @@
     var node = result.findNode.propertyAccess('super.foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: M
   operator: .
@@ -416,7 +416,7 @@
     var node = result.findNode.methodInvocation('foo(42)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: M
   operator: .
@@ -426,7 +426,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 42
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::x
@@ -455,8 +455,8 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: M
     operator: .
@@ -466,7 +466,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::_
     staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart b/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart
index 9ea93ef..14b340d 100644
--- a/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart
+++ b/pkg/analyzer/test/src/dart/resolution/node_text_expectations.dart
@@ -406,10 +406,10 @@
 
   @override
   Expression get(ArgumentList argumentList, {String? intraInvocationId}) {
-    return argumentList.arguments
+    return argumentList.arguments2
         .whereNotType<NamedArgument>()
         .elementAt(index)
-        .argumentExpression;
+        .argumentExpression2;
   }
 }
 
@@ -434,7 +434,7 @@
       fail('Not a map literal: ${mapExpression.runtimeType}');
     }
 
-    var elements = mapExpression.elements;
+    var elements = mapExpression.elements2;
     if (elements.any((element) => element is! MapLiteralEntry)) {
       fail('Only plain map literal entries are supported.');
     }
@@ -443,7 +443,7 @@
       fail('Map entry index $index is out of range: ${elements.length}');
     }
 
-    return (elements[index] as MapLiteralEntry).value;
+    return (elements[index] as MapLiteralEntry).value2;
   }
 }
 
@@ -455,11 +455,11 @@
 
   @override
   Expression get(ArgumentList argumentList, {String? intraInvocationId}) {
-    return argumentList.arguments
+    return argumentList.arguments2
         .whereType<NamedArgument>()
         .where((argument) => argument.name.lexeme == name)
         .single
-        .argumentExpression;
+        .argumentExpression2;
   }
 }
 
diff --git a/pkg/analyzer/test/src/dart/resolution/non_nullable_test.dart b/pkg/analyzer/test/src/dart/resolution/non_nullable_test.dart
index e9ac902..7ac2028 100644
--- a/pkg/analyzer/test/src/dart/resolution/non_nullable_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/non_nullable_test.dart
@@ -227,7 +227,7 @@
 ''');
     // Do not assert no test errors. Deliberately invokes nullable type.
     var invocation = result.findNode.functionExpressionInvocation('first()');
-    assertType(invocation.function, 'T?');
+    assertType(invocation.function2, 'T?');
   }
 
   test_mixin_hierarchy() async {
diff --git a/pkg/analyzer/test/src/dart/resolution/null_assert_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/null_assert_pattern_test.dart
index b3d9b65..a1d77a3 100644
--- a/pkg/analyzer/test/src/dart/resolution/null_assert_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/null_assert_pattern_test.dart
@@ -91,7 +91,7 @@
     rightParenthesis: )
     matchedValueType: int?
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int?
diff --git a/pkg/analyzer/test/src/dart/resolution/null_check_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/null_check_pattern_test.dart
index 3ecdb7b..df9964f 100644
--- a/pkg/analyzer/test/src/dart/resolution/null_check_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/null_check_pattern_test.dart
@@ -93,7 +93,7 @@
     rightParenthesis: )
     matchedValueType: int?
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int?
diff --git a/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart
index 85e0c26..15c8470 100644
--- a/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/object_pattern_test.dart
@@ -220,7 +220,7 @@
         name: foo
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: int
@@ -259,7 +259,7 @@
         name: foo
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: int
@@ -422,7 +422,7 @@
       name: PatternFieldName
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
@@ -668,7 +668,7 @@
   fields
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
@@ -705,7 +705,7 @@
         name: foo
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
@@ -781,7 +781,7 @@
         name: foo
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: int
@@ -858,7 +858,7 @@
         name: foo
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
@@ -896,7 +896,7 @@
         name: foo
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: dynamic
@@ -1247,7 +1247,7 @@
     rightParenthesis: )
     matchedValueType: A<int>
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: A<int>
@@ -1303,7 +1303,7 @@
     rightParenthesis: )
     matchedValueType: A<int>
   equals: =
-  expression: InstanceCreationExpression
+  expression2: InstanceCreationExpression
     keyword: new
     constructorName: ConstructorName
       type: NamedType
@@ -1365,7 +1365,7 @@
     rightParenthesis: )
     matchedValueType: A<dynamic>
   equals: =
-  expression: InstanceCreationExpression
+  expression2: InstanceCreationExpression
     keyword: new
     constructorName: ConstructorName
       type: NamedType
diff --git a/pkg/analyzer/test/src/dart/resolution/parenthesized_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/parenthesized_expression_test.dart
index 4e0a97b..f9237ba 100644
--- a/pkg/analyzer/test/src/dart/resolution/parenthesized_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/parenthesized_expression_test.dart
@@ -31,7 +31,7 @@
     assertResolvedNodeText(node, r'''
 ParenthesizedExpression
   leftParenthesis: (
-  expression: SuperExpression
+  expression2: SuperExpression
     superKeyword: super
     staticType: A
   rightParenthesis: )
diff --git a/pkg/analyzer/test/src/dart/resolution/parenthesized_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/parenthesized_pattern_test.dart
index ab33a59..42b6be6 100644
--- a/pkg/analyzer/test/src/dart/resolution/parenthesized_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/parenthesized_pattern_test.dart
@@ -27,7 +27,7 @@
 ParenthesizedPattern
   leftParenthesis: (
   pattern: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     matchedValueType: dynamic
@@ -50,7 +50,7 @@
 ParenthesizedPattern
   leftParenthesis: (
   pattern: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     matchedValueType: dynamic
diff --git a/pkg/analyzer/test/src/dart/resolution/part_test.dart b/pkg/analyzer/test/src/dart/resolution/part_test.dart
index f07be1c..7d0ccf9 100644
--- a/pkg/analyzer/test/src/dart/resolution/part_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/part_test.dart
@@ -98,7 +98,7 @@
         contents: '
       InterpolationExpression
         leftBracket: ${
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: 'foo'
         rightBracket: }
       InterpolationString
@@ -400,7 +400,7 @@
         contents: '
       InterpolationExpression
         leftBracket: ${
-        expression: SimpleStringLiteral
+        expression2: SimpleStringLiteral
           literal: 'foo'
         rightBracket: }
       InterpolationString
diff --git a/pkg/analyzer/test/src/dart/resolution/pattern_assignment_test.dart b/pkg/analyzer/test/src/dart/resolution/pattern_assignment_test.dart
index f9748d9..b0027f4 100644
--- a/pkg/analyzer/test/src/dart/resolution/pattern_assignment_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/pattern_assignment_test.dart
@@ -110,7 +110,7 @@
     matchedValueType: List<int>
     requiredType: List<int>
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: List<int>
@@ -150,7 +150,7 @@
     rightParenthesis: )
     matchedValueType: A
   equals: =
-  expression: InstanceCreationExpression
+  expression2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -184,7 +184,7 @@
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int
@@ -213,7 +213,7 @@
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: MethodInvocation
+  expression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
       element: <testLibrary>::@function::g
@@ -254,7 +254,7 @@
     rightParenthesis: )
     matchedValueType: ({int foo})
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: ({int foo})
@@ -286,13 +286,13 @@
     rightParenthesis: )
     matchedValueType: ({int a})
   equals: =
-  expression: RecordLiteral
+  expression2: RecordLiteral
     leftParenthesis: (
-    fields
+    fields2
       RecordLiteralNamedField
         name: a
         colon: :
-        fieldExpression: IntegerLiteral
+        fieldExpression2: IntegerLiteral
           literal: 0
           staticType: int
     rightParenthesis: )
@@ -323,7 +323,7 @@
     rightParenthesis: )
     matchedValueType: (int,)
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: (int,)
@@ -349,7 +349,7 @@
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: int
@@ -376,7 +376,7 @@
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: int
@@ -406,7 +406,7 @@
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: int
diff --git a/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart
index 05db4e4..7163eb1 100644
--- a/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/pattern_variable_declaration_statement_test.dart
@@ -44,7 +44,7 @@
       rightParenthesis: )
       matchedValueType: int
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     patternTypeSchema: num
@@ -75,7 +75,7 @@
       rightParenthesis: )
       matchedValueType: int
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     patternTypeSchema: _
@@ -109,7 +109,7 @@
       rightParenthesis: )
       matchedValueType: A
     equals: =
-    expression: InstanceCreationExpression
+    expression2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -174,7 +174,7 @@
       rightParenthesis: )
       matchedValueType: List<InvalidType>
     equals: =
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -218,7 +218,7 @@
       rightParenthesis: )
       matchedValueType: int
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     patternTypeSchema: num
@@ -256,7 +256,7 @@
       rightParenthesis: )
       matchedValueType: int
     equals: =
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: g
         element: <testLibrary>::@function::g
@@ -296,7 +296,7 @@
       rightParenthesis: )
       matchedValueType: int
     equals: =
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     patternTypeSchema: _
@@ -341,7 +341,7 @@
       rightParenthesis: )
       matchedValueType: (int, String)
     equals: =
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: (int, String)
@@ -379,17 +379,17 @@
       rightParenthesis: )
       matchedValueType: (int,)
     equals: =
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: g
         element: <testLibrary>::@function::g
         staticType: T Function<T>(T)
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           RecordLiteral
             leftParenthesis: (
-            fields
+            fields2
               IntegerLiteral
                 literal: 0
                 staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart
index d3d30cc..9b79bd3 100644
--- a/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/postfix_expression_test.dart
@@ -50,7 +50,7 @@
     var node = result.findNode.postfix('x--');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -76,8 +76,8 @@
     var node = result.findNode.postfix('++;');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PostfixExpression
-    operand: SimpleIdentifier
+  operand2: PostfixExpression
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -112,7 +112,7 @@
     var node = result.findNode.postfix('++;');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: null
@@ -136,7 +136,7 @@
     var node = result.findNode.singlePostfixExpression;
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -163,8 +163,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PostfixExpression
-    operand: SimpleIdentifier
+  operand2: PostfixExpression
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -199,13 +199,13 @@
     var node = result.findNode.postfix('a[0]++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: IndexExpression
-    target: SimpleIdentifier
+  operand2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -239,12 +239,12 @@
     var node = result.findNode.postfix('[0]++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: IndexExpression
-    target: SuperExpression
+  operand2: IndexExpression
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -276,12 +276,12 @@
     var node = result.findNode.postfix('[0]++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: IndexExpression
-    target: ThisExpression
+  operand2: IndexExpression
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -310,9 +310,9 @@
     var node = result.findNode.postfix('(0)++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: ParenthesizedExpression
+  operand2: ParenthesizedExpression
     leftParenthesis: (
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     rightParenthesis: )
@@ -339,7 +339,7 @@
     var node = result.findNode.postfix('int++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: int
     element: <null>
     staticType: null
@@ -365,7 +365,7 @@
     var node = result.findNode.postfix('T++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: T
     element: <null>
     staticType: null
@@ -394,7 +394,7 @@
     var node = result.findNode.singlePostfixExpression;
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PrefixedIdentifier
+  operand2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -430,7 +430,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PrefixedIdentifier
+  operand2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -467,7 +467,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PrefixedIdentifier
+  operand2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: p
       element: <testLibraryFragment>::@prefix::p
@@ -503,8 +503,8 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PropertyAccess
-    target: InstanceCreationExpression
+  operand2: PropertyAccess
+    target2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -545,8 +545,8 @@
     var node = result.findNode.postfix('foo++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PropertyAccess
-    target: SimpleIdentifier
+  operand2: PropertyAccess
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A?
@@ -586,8 +586,8 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PropertyAccess
-    target: SuperExpression
+  operand2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -621,8 +621,8 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: PropertyAccess
-    target: ThisExpression
+  operand2: PropertyAccess
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     operator: .
@@ -658,7 +658,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -684,7 +684,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -708,7 +708,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -732,7 +732,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -763,7 +763,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -791,7 +791,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -821,7 +821,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -849,7 +849,7 @@
     var node = result.findNode.singlePostfixExpression;
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SuperExpression
+  operand2: SuperExpression
     superKeyword: super
     staticType: A
   operator: ++
@@ -876,10 +876,10 @@
     var node = result.findNode.postfix('++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SwitchExpression
+  operand2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -892,7 +892,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
     rightBracket: }
@@ -919,7 +919,7 @@
     var node = result.findNode.singlePostfixExpression;
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -943,7 +943,7 @@
     var node = result.findNode.postfix('x!');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int?
@@ -972,12 +972,12 @@
     var node1 = result.findNode.index('a[');
     assertResolvedNodeText(node1, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: Map<String, int>
   leftBracket: [
-  index: SimpleStringLiteral
+  index2: SimpleStringLiteral
     literal: 'foo'
   rightBracket: ]
   element: SubstitutedMethodElementImpl
@@ -989,13 +989,13 @@
     var node2 = result.findNode.postfix(']!');
     assertResolvedNodeText(node2, r'''
 PostfixExpression
-  operand: IndexExpression
-    target: SimpleIdentifier
+  operand2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: Map<String, int>
     leftBracket: [
-    index: SimpleStringLiteral
+    index2: SimpleStringLiteral
       literal: 'foo'
     rightBracket: ]
     element: SubstitutedMethodElementImpl
@@ -1020,7 +1020,7 @@
     var node = result.findNode.postfix('x!');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: String?
@@ -1055,14 +1055,14 @@
     var node = result.findNode.postfix('f(null)!');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: MethodInvocation
+  operand2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
       staticType: T Function<T>(T)
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         NullLiteral
           literal: null
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -1126,7 +1126,7 @@
     void assertTestType(int index, String expected) {
       var function = result.findNode.functionDeclaration('test$index(');
       var body = function.functionExpression.body as ExpressionFunctionBody;
-      assertType(body.expression, expected);
+      assertType(body.expression2, expected);
     }
 
     assertTestType(1, 'int?');
@@ -1154,7 +1154,7 @@
     var node = result.findNode.postfix('x!');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: (int,)?
@@ -1185,8 +1185,8 @@
     var node = result.findNode.methodInvocation('foo();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: PostfixExpression
-    operand: SuperExpression
+  target2: PostfixExpression
+    operand2: SuperExpression
       superKeyword: super
       staticType: dynamic
     operator: !
@@ -1215,7 +1215,7 @@
     var node = result.findNode.postfix('x!');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: T?
@@ -1237,7 +1237,7 @@
     var node = result.findNode.postfix('x!');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: (T & num?)?
diff --git a/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart
index a8adea7..f37d15f 100644
--- a/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/prefix_expression_test.dart
@@ -55,7 +55,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: !
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: bool
@@ -77,7 +77,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: !
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int
@@ -103,8 +103,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: !
-  operand: PropertyAccess
-    target: SimpleIdentifier
+  operand2: PropertyAccess
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A?
@@ -135,7 +135,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: !
-  operand: SuperExpression
+  operand2: SuperExpression
     superKeyword: super
     staticType: A
   element: <null>
@@ -156,9 +156,9 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PrefixExpression
+  operand2: PrefixExpression
     operator: ++
-    operand: SimpleIdentifier
+    operand2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: null
@@ -192,7 +192,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: null
@@ -221,13 +221,13 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: IndexExpression
-    target: SimpleIdentifier
+  operand2: IndexExpression
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -261,12 +261,12 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: IndexExpression
-    target: SuperExpression
+  operand2: IndexExpression
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -298,12 +298,12 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: IndexExpression
-    target: ThisExpression
+  operand2: IndexExpression
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <testLibrary>::@class::A::@method::[]=::@formalParameter::index
       staticType: int
@@ -332,7 +332,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -356,7 +356,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: dynamic
@@ -382,8 +382,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: PropertyAccess
-    target: SimpleIdentifier
+  operand2: PropertyAccess
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A?
@@ -409,7 +409,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: -
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int
@@ -435,7 +435,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -469,11 +469,11 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: ExtensionOverride
+  operand2: ExtensionOverride
     name: Ext
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: c
           correspondingParameter: <null>
@@ -505,7 +505,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: int
     element: <null>
     staticType: null
@@ -533,8 +533,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PropertyAccess
-    target: SimpleIdentifier
+  operand2: PropertyAccess
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A?
@@ -569,7 +569,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PrefixedIdentifier
+  operand2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -605,7 +605,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PrefixedIdentifier
+  operand2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -642,7 +642,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PrefixedIdentifier
+  operand2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: p
       element: <testLibraryFragment>::@prefix::p
@@ -678,8 +678,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PropertyAccess
-    target: InstanceCreationExpression
+  operand2: PropertyAccess
+    target2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -726,8 +726,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PropertyAccess
-    target: SuperExpression
+  operand2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -761,8 +761,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: PropertyAccess
-    target: ThisExpression
+  operand2: PropertyAccess
+    target2: ThisExpression
       thisKeyword: this
       staticType: A
     operator: .
@@ -791,7 +791,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -815,7 +815,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -839,7 +839,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -865,7 +865,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -896,7 +896,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -924,7 +924,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -952,7 +952,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -982,7 +982,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -1010,7 +1010,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SuperExpression
+  operand2: SuperExpression
     superKeyword: super
     staticType: A
   readElement: <null>
@@ -1037,10 +1037,10 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SwitchExpression
+  operand2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -1053,7 +1053,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
     rightBracket: }
@@ -1082,7 +1082,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <null>
     staticType: null
@@ -1112,8 +1112,8 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ~
-  operand: PropertyAccess
-    target: SimpleIdentifier
+  operand2: PropertyAccess
+    target2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A?
@@ -1139,7 +1139,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ~
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart b/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart
index a04ca14..f2d2f5e 100644
--- a/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/prefixed_identifier_test.dart
@@ -114,7 +114,7 @@
     var node = result.findNode.assignment('foo += 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -127,7 +127,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -154,7 +154,7 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -167,7 +167,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::value
     staticType: int
@@ -224,7 +224,7 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: e
       element: <testLibrary>::@function::f::@formalParameter::e
@@ -237,7 +237,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@enum::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -584,7 +584,7 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: <testLibrary>::@class::A
@@ -597,7 +597,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::_
     staticType: int
@@ -710,7 +710,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
@@ -737,7 +737,7 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -750,7 +750,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extensionType::A::@setter::foo::@formalParameter::_
     staticType: int
diff --git a/pkg/analyzer/test/src/dart/resolution/property_access_test.dart b/pkg/analyzer/test/src/dart/resolution/property_access_test.dart
index 8135aa0..cc7530d 100644
--- a/pkg/analyzer/test/src/dart/resolution/property_access_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/property_access_test.dart
@@ -32,11 +32,11 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -72,12 +72,12 @@
     var node = result.findNode.assignment('foo += 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -94,7 +94,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -123,12 +123,12 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -145,7 +145,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -168,9 +168,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function(String)
@@ -229,7 +229,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -259,7 +259,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -289,7 +289,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -317,7 +317,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: A
   operator: .
@@ -347,7 +347,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -377,7 +377,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -409,7 +409,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -435,7 +435,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -461,7 +461,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -487,7 +487,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: A
   operator: .
@@ -517,7 +517,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ThisExpression
+  target2: ThisExpression
     thisKeyword: this
     staticType: X
   operator: .
@@ -543,7 +543,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -577,8 +577,8 @@
     var node = result.findNode.assignment('foo += 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: InstanceCreationExpression
+  leftHandSide2: PropertyAccess
+    target2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -596,7 +596,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -623,8 +623,8 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: InstanceCreationExpression
+  leftHandSide2: PropertyAccess
+    target2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -642,7 +642,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::value
     staticType: int
@@ -665,7 +665,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <null>
     staticType: InvalidType
@@ -690,7 +690,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: b
     element: <null>
     staticType: InvalidType
@@ -716,12 +716,12 @@
   name: a
   defaultClause: FormalParameterDefaultClause
     separator: =
-    value: CascadeExpression
-      target: SimpleIdentifier
+    value2: CascadeExpression
+      target2: SimpleIdentifier
         token: b
         element: <null>
         staticType: InvalidType
-      cascadeSections
+      cascadeSections2
         PropertyAccess
           operator: ?..
           propertyName: SimpleIdentifier
@@ -751,11 +751,11 @@
     var node = result.findNode.singleCascadeExpression;
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A?
-  cascadeSections
+  cascadeSections2
     PropertyAccess
       operator: ?..
       propertyName: SimpleIdentifier
@@ -789,7 +789,7 @@
     var node = result.findNode.singleCascadeExpression;
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -800,9 +800,9 @@
       leftParenthesis: (
       rightParenthesis: )
     staticType: A
-  cascadeSections
+  cascadeSections2
     PropertyAccess
-      target: PropertyAccess
+      target2: PropertyAccess
         operator: ..
         propertyName: SimpleIdentifier
           token: foo
@@ -836,7 +836,7 @@
     var node = result.findNode.singleCascadeExpression;
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -847,10 +847,10 @@
       leftParenthesis: (
       rightParenthesis: )
     staticType: A
-  cascadeSections
+  cascadeSections2
     PropertyAccess
-      target: PropertyAccess
-        target: PropertyAccess
+      target2: PropertyAccess
+        target2: PropertyAccess
           operator: ..
           propertyName: SimpleIdentifier
             token: foo
@@ -891,8 +891,8 @@
     var node = result.findNode.singleCascadeExpression;
     assertResolvedNodeText(node, r'''
 CascadeExpression
-  target: PropertyAccess
-    target: SimpleIdentifier
+  target2: PropertyAccess
+    target2: SimpleIdentifier
       token: foo
       element: <testLibrary>::@getter::foo
       staticType: A?
@@ -902,9 +902,9 @@
       element: <testLibrary>::@class::A::@getter::bar
       staticType: A
     staticType: A?
-  cascadeSections
+  cascadeSections2
     PropertyAccess
-      target: PropertyAccess
+      target2: PropertyAccess
         operator: ?..
         propertyName: SimpleIdentifier
           token: baz
@@ -939,9 +939,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -972,9 +972,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1005,9 +1005,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: b
       element: <testLibrary>::@function::f::@formalParameter::b
       staticType: B
@@ -1040,9 +1040,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: b
       element: <testLibrary>::@function::f::@formalParameter::b
       staticType: B
@@ -1067,9 +1067,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: dynamic
@@ -1094,9 +1094,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: dynamic
@@ -1121,9 +1121,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: dynamic
@@ -1148,9 +1148,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: dynamic
@@ -1180,9 +1180,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: e
       element: <testLibrary>::@function::f::@formalParameter::e
       staticType: E
@@ -1215,9 +1215,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: e
       element: <testLibrary>::@function::f::@formalParameter::e
       staticType: E
@@ -1247,10 +1247,10 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: e
         element: <testLibrary>::@function::f::@formalParameter::e
         staticType: E
@@ -1263,7 +1263,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@enum::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -1294,9 +1294,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1329,10 +1329,10 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: A
@@ -1345,7 +1345,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -1376,9 +1376,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A<int>
@@ -1409,7 +1409,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -1436,7 +1436,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -1467,7 +1467,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: InstanceCreationExpression
+  target2: InstanceCreationExpression
     constructorName: ConstructorName
       type: NamedType
         name: A
@@ -1504,8 +1504,8 @@
     var node = result.findNode.assignment('foo += 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: InstanceCreationExpression
+  leftHandSide2: PropertyAccess
+    target2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -1523,7 +1523,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1552,8 +1552,8 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: InstanceCreationExpression
+  leftHandSide2: PropertyAccess
+    target2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -1571,7 +1571,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@extension::E::@setter::foo::@formalParameter::_
     staticType: int
@@ -1598,9 +1598,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1627,9 +1627,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1656,9 +1656,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1687,9 +1687,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1718,10 +1718,10 @@
     var node = result.findNode.singleAssignmentExpression;
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@function::f::@formalParameter::a
         staticType: A
@@ -1734,7 +1734,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@extensionType::A::@setter::foo::@formalParameter::_
     staticType: int
@@ -1765,9 +1765,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1798,9 +1798,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
@@ -1825,7 +1825,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: ({int foo})
@@ -1852,7 +1852,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: ({int foo})
@@ -1881,7 +1881,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: package:test/a.dart::@getter::r
     staticType: ({int foo})
@@ -1904,7 +1904,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: ({int foo})?
@@ -1927,7 +1927,7 @@
     var node = result.findNode.propertyAccess(r'foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: T
@@ -1950,7 +1950,7 @@
     var node = result.findNode.propertyAccess('hashCode;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: ({int foo})
@@ -1973,7 +1973,7 @@
     var node = result.findNode.propertyAccess(r'$1;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2000,7 +2000,7 @@
     var node = result.findNode.propertyAccess(r'$1;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2023,7 +2023,7 @@
     var node = result.findNode.propertyAccess(r'$2;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2050,7 +2050,7 @@
     var node = result.findNode.propertyAccess(r'$3;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2075,7 +2075,7 @@
     var node = result.findNode.propertyAccess(r'$3;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2100,7 +2100,7 @@
     var node = result.findNode.propertyAccess(r'$0a;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2125,7 +2125,7 @@
     var node = result.findNode.propertyAccess(r'$zero;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2154,7 +2154,7 @@
     var node = result.findNode.propertyAccess(r'$1;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: package:test/a.dart::@getter::r
     staticType: (int, String)
@@ -2179,7 +2179,7 @@
     var node = result.findNode.propertyAccess(r'a$0;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2202,7 +2202,7 @@
     var node = result.findNode.propertyAccess(r'$1;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: T
@@ -2227,7 +2227,7 @@
     var node = result.findNode.propertyAccess('bar;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: ({int foo})
@@ -2254,7 +2254,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: r
     element: <testLibrary>::@function::f::@formalParameter::r
     staticType: (int, String)
@@ -2279,10 +2279,10 @@
     var node = result.findNode.propertyAccess('.isEven');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SwitchExpression
+  target2: SwitchExpression
     switchKeyword: switch
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Object?
@@ -2295,7 +2295,7 @@
             name: _
             matchedValueType: Object?
         arrow: =>
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
     rightBracket: }
@@ -2322,9 +2322,9 @@
 
     var node = result.findNode.functionReference('b?.a.f');
     assertResolvedNodeText(node, r'''FunctionReference
-  function: PropertyAccess
-    target: PropertyAccess
-      target: SimpleIdentifier
+  function2: PropertyAccess
+    target2: PropertyAccess
+      target2: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::f::@formalParameter::b
         staticType: B?
@@ -2362,7 +2362,7 @@
     var node = result.findNode.propertyAccess('super.foo');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -2390,8 +2390,8 @@
     var node = result.findNode.assignment('foo += 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -2401,7 +2401,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -2430,8 +2430,8 @@
     var node = result.findNode.assignment('foo = 1');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -2441,7 +2441,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::value
     staticType: int
@@ -2466,9 +2466,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: t
       element: <testLibrary>::@class::A::@method::f::@formalParameter::t
       staticType: T
@@ -2497,9 +2497,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: t
       element: <testLibrary>::@class::C::@method::f::@formalParameter::t
       staticType: T
@@ -2546,9 +2546,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <null>
       staticType: InvalidType
diff --git a/pkg/analyzer/test/src/dart/resolution/record_literal_test.dart b/pkg/analyzer/test/src/dart/resolution/record_literal_test.dart
index 98b6889..0f290c2 100644
--- a/pkg/analyzer/test/src/dart/resolution/record_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/record_literal_test.dart
@@ -27,12 +27,12 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: PropertyAccess
-        target: SimpleIdentifier
+      fieldExpression2: PropertyAccess
+        target2: SimpleIdentifier
           token: r
           element: <testLibrary>::@function::f::@formalParameter::r
           staticType: (int, String)
@@ -58,9 +58,9 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     PropertyAccess
-      target: SimpleIdentifier
+      target2: SimpleIdentifier
         token: r
         element: <testLibrary>::@function::f::@formalParameter::r
         staticType: (int, String)
@@ -85,12 +85,12 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: FunctionReference
-        function: SimpleIdentifier
+      fieldExpression2: FunctionReference
+        function2: SimpleIdentifier
           token: f
           element: <testLibrary>::@function::f
           staticType: void Function<T>()
@@ -112,9 +112,9 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     FunctionReference
-      function: SimpleIdentifier
+      function2: SimpleIdentifier
         token: f
         element: <testLibrary>::@function::f
         staticType: void Function<T>()
@@ -137,7 +137,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     SimpleIdentifier
       token: d
       element: <testLibrary>::@function::test::@formalParameter::d
@@ -165,12 +165,12 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: ImplicitCallReference
-        expression: SimpleIdentifier
+      fieldExpression2: ImplicitCallReference
+        expression2: SimpleIdentifier
           token: a
           element: <testLibrary>::@getter::a
           staticType: A
@@ -195,9 +195,9 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     ImplicitCallReference
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@getter::a
         staticType: A
@@ -218,11 +218,11 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: SimpleIdentifier
+      fieldExpression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@getter::a
         staticType: dynamic
@@ -241,7 +241,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     SimpleIdentifier
       token: a
       element: <testLibrary>::@getter::a
@@ -264,7 +264,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     SimpleStringLiteral
       literal: ''
   rightParenthesis: )
@@ -289,7 +289,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: g
@@ -305,7 +305,7 @@
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -332,7 +332,7 @@
     RecordLiteralNamedField
       name: f2
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -376,11 +376,11 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -412,7 +412,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: g
@@ -428,7 +428,7 @@
     RecordLiteralNamedField
       name: f2
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -460,7 +460,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: g
@@ -489,11 +489,11 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -508,7 +508,7 @@
     RecordLiteralNamedField
       name: f2
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -536,11 +536,11 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f2
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -555,7 +555,7 @@
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -587,11 +587,11 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -623,11 +623,11 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -642,7 +642,7 @@
     RecordLiteralNamedField
       name: f2
       colon: :
-      fieldExpression: MethodInvocation
+      fieldExpression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -669,11 +669,11 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: SimpleIdentifier
+      fieldExpression2: SimpleIdentifier
         token: a
         element: <testLibrary>::@getter::a
         staticType: dynamic
@@ -692,7 +692,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     SimpleIdentifier
       token: a
       element: <testLibrary>::@getter::a
@@ -713,7 +713,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: g
@@ -754,7 +754,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: g
@@ -799,7 +799,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: g
@@ -832,7 +832,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: g
@@ -873,7 +873,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     SimpleIdentifier
       token: d
       element: <testLibrary>::@function::test::@formalParameter::d
@@ -898,9 +898,9 @@
 VariableDeclaration
   name: x
   equals: =
-  initializer: ParenthesizedExpression
+  initializer2: ParenthesizedExpression
     leftParenthesis: (
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     rightParenthesis: )
@@ -924,9 +924,9 @@
 VariableDeclaration
   name: x
   equals: =
-  initializer: ParenthesizedExpression
+  initializer2: ParenthesizedExpression
     leftParenthesis: (
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     rightParenthesis: )
@@ -948,9 +948,9 @@
 VariableDeclaration
   name: x
   equals: =
-  initializer: ParenthesizedExpression
+  initializer2: ParenthesizedExpression
     leftParenthesis: (
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     rightParenthesis: )
@@ -972,9 +972,9 @@
 VariableDeclaration
   name: x
   equals: =
-  initializer: ParenthesizedExpression
+  initializer2: ParenthesizedExpression
     leftParenthesis: (
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     rightParenthesis: )
@@ -996,9 +996,9 @@
 VariableDeclaration
   name: x
   equals: =
-  initializer: ParenthesizedExpression
+  initializer2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: <empty> <synthetic>
       element: <null>
       staticType: InvalidType
@@ -1031,14 +1031,14 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     IntegerLiteral
       literal: 0
       staticType: int
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: IntegerLiteral
+      fieldExpression2: IntegerLiteral
         literal: 1
         staticType: int
     IntegerLiteral
@@ -1047,7 +1047,7 @@
     RecordLiteralNamedField
       name: f2
       colon: :
-      fieldExpression: IntegerLiteral
+      fieldExpression2: IntegerLiteral
         literal: 3
         staticType: int
     IntegerLiteral
@@ -1067,17 +1067,17 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     RecordLiteralNamedField
       name: f1
       colon: :
-      fieldExpression: IntegerLiteral
+      fieldExpression2: IntegerLiteral
         literal: 0
         staticType: int
     RecordLiteralNamedField
       name: f2
       colon: :
-      fieldExpression: BooleanLiteral
+      fieldExpression2: BooleanLiteral
         literal: true
         staticType: bool
   rightParenthesis: )
@@ -1094,7 +1094,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     IntegerLiteral
       literal: 0
       staticType: int
@@ -1119,7 +1119,7 @@
     assertResolvedNodeText(node, r'''
 RecordLiteral
   leftParenthesis: (
-  fields
+  fields2
     MethodInvocation
       methodName: SimpleIdentifier
         token: f
diff --git a/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart
index 385ddad..779ed11 100644
--- a/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/record_pattern_test.dart
@@ -134,7 +134,7 @@
         name: foo
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: Object?
@@ -229,7 +229,7 @@
   fields
     PatternField
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: Object?
@@ -673,7 +673,7 @@
       name: PatternFieldName
         colon: :
       pattern: ConstantPattern
-        expression: IntegerLiteral
+        expression2: IntegerLiteral
           literal: 0
           staticType: int
         matchedValueType: Object?
@@ -890,7 +890,7 @@
     rightParenthesis: )
     matchedValueType: (int, String)
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: (int, String)
@@ -944,7 +944,7 @@
     rightParenthesis: )
     matchedValueType: (int, String)
   equals: =
-  expression: MethodInvocation
+  expression2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
       element: <testLibrary>::@function::g
diff --git a/pkg/analyzer/test/src/dart/resolution/redirecting_constructor_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/redirecting_constructor_invocation_test.dart
index 4c170f2..9e4a33b 100644
--- a/pkg/analyzer/test/src/dart/resolution/redirecting_constructor_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/redirecting_constructor_invocation_test.dart
@@ -36,7 +36,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@constructor::named::@formalParameter::a
@@ -66,7 +66,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -95,7 +95,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -119,7 +119,7 @@
   thisKeyword: this
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::C::@constructor::new::@formalParameter::a
@@ -145,7 +145,7 @@
   thisKeyword: this
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
diff --git a/pkg/analyzer/test/src/dart/resolution/relational_pattern_test.dart b/pkg/analyzer/test/src/dart/resolution/relational_pattern_test.dart
index 04a1232..c270279 100644
--- a/pkg/analyzer/test/src/dart/resolution/relational_pattern_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/relational_pattern_test.dart
@@ -33,7 +33,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: ==
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::==
@@ -56,7 +56,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: ==
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: dart:core::@class::Object::@method::==
@@ -81,7 +81,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: >
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::>
@@ -108,7 +108,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: >
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@extension::E::@method::>
@@ -133,7 +133,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: >
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <null>
@@ -158,7 +158,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: >=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::>=
@@ -185,7 +185,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: >=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@extension::E::@method::>=
@@ -210,7 +210,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: >=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <null>
@@ -232,7 +232,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: ==
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::==
@@ -257,7 +257,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: <
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::<
@@ -284,7 +284,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: <
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@extension::E::@method::<
@@ -309,7 +309,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: <
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <null>
@@ -334,7 +334,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: <=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::<=
@@ -361,7 +361,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: <=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@extension::E::@method::<=
@@ -386,7 +386,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: <=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <null>
@@ -411,7 +411,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: !=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::==
@@ -434,7 +434,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: !=
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: dart:core::@class::Object::@method::==
@@ -457,8 +457,8 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: ==
-  operand: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  operand2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function()
@@ -490,7 +490,7 @@
     assertResolvedNodeText(node, r'''
 RelationalPattern
   operator: ==
-  operand: IntegerLiteral
+  operand2: IntegerLiteral
     literal: 0
     staticType: int
   element: <testLibrary>::@class::A::@method::==
diff --git a/pkg/analyzer/test/src/dart/resolution/resolution.dart b/pkg/analyzer/test/src/dart/resolution/resolution.dart
index 12c9ef2..c061a85 100644
--- a/pkg/analyzer/test/src/dart/resolution/resolution.dart
+++ b/pkg/analyzer/test/src/dart/resolution/resolution.dart
@@ -254,7 +254,7 @@
     } else if (node is FunctionExpressionInvocation) {
       return node.element;
     } else if (node is FunctionReference) {
-      var function = node.function.unParenthesized;
+      var function = node.function2.unParenthesized;
       if (function is Identifier) {
         return function.element;
       } else if (function is PropertyAccess) {
diff --git a/pkg/analyzer/test/src/dart/resolution/set_or_map_literal_test.dart b/pkg/analyzer/test/src/dart/resolution/set_or_map_literal_test.dart
index f7e115b..c2951f5 100644
--- a/pkg/analyzer/test/src/dart/resolution/set_or_map_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/set_or_map_literal_test.dart
@@ -83,7 +83,7 @@
     assertResolvedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IntegerLiteral
       literal: 0
       staticType: int
@@ -106,13 +106,13 @@
     assertResolvedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MapLiteralEntry
-      key: IntegerLiteral
+      key2: IntegerLiteral
         literal: 0
         staticType: int
       separator: :
-      value: SimpleStringLiteral
+      value2: SimpleStringLiteral
         literal: ''
   rightBracket: }
   isMap: true
diff --git a/pkg/analyzer/test/src/dart/resolution/super_constructor_invocation_test.dart b/pkg/analyzer/test/src/dart/resolution/super_constructor_invocation_test.dart
index f66233e..b53b825 100644
--- a/pkg/analyzer/test/src/dart/resolution/super_constructor_invocation_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/super_constructor_invocation_test.dart
@@ -39,7 +39,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::named::@formalParameter::a
@@ -73,7 +73,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -107,7 +107,7 @@
     staticType: null
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -137,7 +137,7 @@
   superKeyword: super
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 5
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -164,7 +164,7 @@
   superKeyword: super
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -193,7 +193,7 @@
   superKeyword: super
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
diff --git a/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart
index f4a6a0e..c35535f 100644
--- a/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/switch_expression_test.dart
@@ -33,7 +33,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -43,12 +43,12 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
             staticType: int
           matchedValueType: Object?
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
     SwitchExpressionCase
@@ -57,7 +57,7 @@
           name: _
           matchedValueType: Object?
       arrow: =>
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: g
           element: <testLibrary>::@function::g
@@ -84,7 +84,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   rightParenthesis: )
@@ -112,7 +112,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@class::A::@method::bar::@formalParameter::x
     staticType: Object?
@@ -125,7 +125,7 @@
           name: _
           matchedValueType: Object?
       arrow: =>
-      expression: MethodInvocation
+      expression2: MethodInvocation
         methodName: SimpleIdentifier
           token: foo
           element: <testLibrary>::@class::A::@method::foo
@@ -158,7 +158,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: void
@@ -171,7 +171,7 @@
           name: _
           matchedValueType: void
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   rightBracket: }
@@ -221,7 +221,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: a
     element: <testLibrary>::@getter::a
     staticType: num
@@ -252,12 +252,12 @@
           matchedValueType: num
         whenClause: WhenClause
           whenKeyword: when
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: isEven
             element: isEven@46
             staticType: bool
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
         staticType: int
     SwitchExpressionCase
@@ -266,7 +266,7 @@
           name: _
           matchedValueType: num
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   rightBracket: }
@@ -291,8 +291,8 @@
       name: _
       matchedValueType: Object?
   arrow: =>
-  expression: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  expression2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function()
@@ -325,7 +325,7 @@
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
       constKeyword: const
-      expression: InstanceCreationExpression
+      expression2: InstanceCreationExpression
         constructorName: ConstructorName
           type: NamedType
             name: A
@@ -338,7 +338,7 @@
         staticType: A
       matchedValueType: Object?
   arrow: =>
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
 ''');
@@ -359,14 +359,14 @@
 SwitchExpressionCase
   guardedPattern: GuardedPattern
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: Object?
     whenClause: WhenClause
       whenKeyword: when
-      expression: FunctionExpressionInvocation
-        function: SimpleIdentifier
+      expression2: FunctionExpressionInvocation
+        function2: SimpleIdentifier
           token: a
           element: <testLibrary>::@function::f::@formalParameter::a
           staticType: bool Function()
@@ -377,7 +377,7 @@
         staticInvokeType: bool Function()
         staticType: bool
   arrow: =>
-  expression: BooleanLiteral
+  expression2: BooleanLiteral
     literal: true
     staticType: bool
 ''');
@@ -397,8 +397,8 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  expression2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: int Function()
@@ -417,7 +417,7 @@
           name: _
           matchedValueType: int
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   rightBracket: }
@@ -440,7 +440,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -450,12 +450,12 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: BooleanLiteral
+          expression2: BooleanLiteral
             literal: true
             staticType: bool
           matchedValueType: Object?
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
     SwitchExpressionCase
@@ -464,7 +464,7 @@
           name: _
           matchedValueType: Object?
       arrow: =>
-      expression: NullLiteral
+      expression2: NullLiteral
         literal: null
         staticType: Null
   rightBracket: }
@@ -487,7 +487,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -497,12 +497,12 @@
     SwitchExpressionCase
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: BooleanLiteral
+          expression2: BooleanLiteral
             literal: true
             staticType: bool
           matchedValueType: Object?
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
     SwitchExpressionCase
@@ -511,7 +511,7 @@
           name: _
           matchedValueType: Object?
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
         staticType: int
   rightBracket: }
@@ -536,7 +536,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -577,7 +577,7 @@
           matchedValueType: Object?
           requiredType: List<int>
       arrow: =>
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: a@null
         staticType: int
@@ -587,7 +587,7 @@
           name: _
           matchedValueType: Object?
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   rightBracket: }
@@ -616,7 +616,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -640,7 +640,7 @@
               matchedValueType: Object?
             RelationalPattern
               operator: ==
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a
                 element: a@58
                 staticType: int
@@ -651,13 +651,13 @@
           requiredType: List<Object?>
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@58
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -665,7 +665,7 @@
             staticInvokeType: bool Function(num)
             staticType: bool
       arrow: =>
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: a@58
         staticType: int
@@ -675,7 +675,7 @@
           name: _
           matchedValueType: Object?
       arrow: =>
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
   rightBracket: }
@@ -700,7 +700,7 @@
 SwitchExpression
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -721,13 +721,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@44
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -735,7 +735,7 @@
             staticInvokeType: bool Function(num)
             staticType: bool
       arrow: =>
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: a@44
         staticType: int
@@ -745,7 +745,7 @@
           name: _
           matchedValueType: Object?
       arrow: =>
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: <null>
         staticType: InvalidType
diff --git a/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart
index 945ab8c..22e908b 100644
--- a/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/switch_statement_test.dart
@@ -34,7 +34,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -46,7 +46,7 @@
       guardedPattern: GuardedPattern
         pattern: NullCheckPattern
           pattern: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
               staticType: int
             matchedValueType: Object
@@ -114,7 +114,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -126,7 +126,7 @@
       guardedPattern: GuardedPattern
         pattern: NullCheckPattern
           pattern: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 0
               staticType: int
             matchedValueType: Object
@@ -138,7 +138,7 @@
       guardedPattern: GuardedPattern
         pattern: NullCheckPattern
           pattern: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 1
               staticType: int
             matchedValueType: Object
@@ -154,7 +154,7 @@
       guardedPattern: GuardedPattern
         pattern: NullCheckPattern
           pattern: ConstantPattern
-            expression: IntegerLiteral
+            expression2: IntegerLiteral
               literal: 2
               staticType: int
             matchedValueType: Object
@@ -188,7 +188,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -200,7 +200,7 @@
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
           constKeyword: const
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             constructorName: ConstructorName
               type: NamedType
                 name: A
@@ -236,7 +236,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -247,14 +247,14 @@
       keyword: case
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
             staticType: int
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: FunctionExpressionInvocation
-            function: SimpleIdentifier
+          expression2: FunctionExpressionInvocation
+            function2: SimpleIdentifier
               token: a
               element: <testLibrary>::@function::f::@formalParameter::a
               staticType: bool Function()
@@ -289,7 +289,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -311,13 +311,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@48
               staticType: int
             operator: <
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
               staticType: int
@@ -340,13 +340,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@75
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -356,7 +356,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -381,7 +381,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -404,13 +404,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@54
               staticType: int
             operator: <
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
               staticType: int
@@ -434,13 +434,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@87
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -450,7 +450,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -475,7 +475,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -516,13 +516,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@null
               staticType: int
             operator: <
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
               staticType: int
@@ -564,13 +564,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@null
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -580,7 +580,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -607,7 +607,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -630,13 +630,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@54
               staticType: int
             operator: <
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
               staticType: int
@@ -659,13 +659,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@81
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -675,7 +675,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -702,7 +702,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -725,13 +725,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@54
               staticType: int
             operator: <
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
               staticType: int
@@ -754,13 +754,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@81
               staticType: num
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -770,7 +770,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: InvalidType
@@ -797,7 +797,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -819,13 +819,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@48
               staticType: int
             operator: <
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::<::@formalParameter::other
               staticType: int
@@ -848,13 +848,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@75
               staticType: num
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -864,7 +864,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: InvalidType
@@ -891,7 +891,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -902,7 +902,7 @@
       keyword: case
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
             staticType: int
           matchedValueType: Object?
@@ -922,13 +922,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@60
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -938,7 +938,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -965,7 +965,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -987,13 +987,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@48
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -1005,14 +1005,14 @@
       keyword: case
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
             staticType: int
           matchedValueType: Object?
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -1039,7 +1039,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1061,13 +1061,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@48
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -1080,7 +1080,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -1113,7 +1113,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1147,7 +1147,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: Object?
@@ -1176,7 +1176,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1203,13 +1203,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@61
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -1219,7 +1219,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -1253,7 +1253,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1304,19 +1304,19 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
           semicolon: ;
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: b
             element: b@null
             staticType: double
           semicolon: ;
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: c
             element: c@null
             staticType: String
@@ -1342,7 +1342,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1386,7 +1386,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@null
             staticType: int
@@ -1416,7 +1416,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1441,7 +1441,7 @@
               matchedValueType: Object?
             RelationalPattern
               operator: ==
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a
                 element: a@62
                 staticType: int
@@ -1452,13 +1452,13 @@
           requiredType: List<Object?>
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@62
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -1468,7 +1468,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@62
             staticType: int
@@ -1492,7 +1492,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1514,13 +1514,13 @@
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: a
               element: a@48
               staticType: int
             operator: >
-            rightOperand: IntegerLiteral
+            rightOperand2: IntegerLiteral
               literal: 0
               correspondingParameter: dart:core::@class::num::@method::>::@formalParameter::other
               staticType: int
@@ -1530,7 +1530,7 @@
       colon: :
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: a
             element: a@48
             staticType: int
@@ -1554,7 +1554,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1565,13 +1565,13 @@
       keyword: case
       guardedPattern: GuardedPattern
         pattern: ConstantPattern
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
             staticType: int
           matchedValueType: Object?
         whenClause: WhenClause
           whenKeyword: when
-          expression: BooleanLiteral
+          expression2: BooleanLiteral
             literal: true
             staticType: bool
       colon: :
@@ -1604,7 +1604,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1613,7 +1613,7 @@
   members
     SwitchCase
       keyword: case
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       colon: :
@@ -1650,7 +1650,7 @@
 SwitchStatement
   switchKeyword: switch
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Object?
@@ -1659,13 +1659,13 @@
   members
     SwitchCase
       keyword: case
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       colon: :
     SwitchCase
       keyword: case
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
         staticType: int
       colon: :
@@ -1675,7 +1675,7 @@
           semicolon: ;
     SwitchCase
       keyword: case
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
         staticType: int
       colon: :
diff --git a/pkg/analyzer/test/src/dart/resolution/top_level_variable_test.dart b/pkg/analyzer/test/src/dart/resolution/top_level_variable_test.dart
index f1f40dc..4ebe73f 100644
--- a/pkg/analyzer/test/src/dart/resolution/top_level_variable_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/top_level_variable_test.dart
@@ -32,14 +32,14 @@
 VariableDeclaration
   name: x
   equals: =
-  initializer: MethodInvocation
+  initializer2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
       staticType: T? Function<T>(T Function(), int Function(T))
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: g
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -67,7 +67,7 @@
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: PrefixedIdentifier
+            expression2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: z
                 element: z@100
@@ -108,14 +108,14 @@
 VariableDeclaration
   name: x
   equals: =
-  initializer: MethodInvocation
+  initializer2: MethodInvocation
     methodName: SimpleIdentifier
       token: f
       element: <testLibrary>::@function::f
       staticType: T? Function<T>(T Function(), int Function(T))
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: g
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -143,7 +143,7 @@
             rightParenthesis: )
           body: ExpressionFunctionBody
             functionDefinition: =>
-            expression: PrefixedIdentifier
+            expression2: PrefixedIdentifier
               prefix: SimpleIdentifier
                 token: z
                 element: z@108
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/extension_methods_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/extension_methods_test.dart
index 13b0672..6245340 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/extension_methods_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/extension_methods_test.dart
@@ -66,7 +66,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A<int>
@@ -79,7 +79,7 @@
     staticType: Map<int, U> Function<U>(U)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       DoubleLiteral
         literal: 1.0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -105,7 +105,7 @@
     var node = result.findNode.methodInvocation('other.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: other
     element: <testLibrary>::@extension::E::@method::bar::@formalParameter::other
     staticType: List<T>
@@ -138,7 +138,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: String
@@ -151,7 +151,7 @@
     staticType: Map<String, U> Function<U>(U)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -215,7 +215,7 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
@@ -228,7 +228,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: SubstitutedFormalParameterElementImpl
       baseElement: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
@@ -259,7 +259,7 @@
     var node = result.findNode.methodInvocation('test();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: S
@@ -292,9 +292,9 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: S
@@ -327,10 +327,10 @@
     var node = result.findNode.assignment('(x).test');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ParenthesizedExpression
+  leftHandSide2: PropertyAccess
+    target2: ParenthesizedExpression
       leftParenthesis: (
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: x
         element: <testLibrary>::@function::f::@formalParameter::x
         staticType: S
@@ -343,7 +343,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: MethodInvocation
+  rightHandSide2: MethodInvocation
     methodName: SimpleIdentifier
       token: g
       element: <testLibrary>::@function::g
@@ -429,7 +429,7 @@
     var node = result.findNode.propertyAccess('.foo');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -441,7 +441,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -480,7 +480,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -492,7 +492,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -513,7 +513,7 @@
     staticType: Map<num, U> Function<U>(U)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       DoubleLiteral
         literal: 1.0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -544,7 +544,7 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     typeArguments: TypeArgumentList
       leftBracket: <
@@ -556,7 +556,7 @@
       rightBracket: >
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -595,8 +595,8 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       typeArguments: TypeArgumentList
         leftBracket: <
@@ -608,7 +608,7 @@
         rightBracket: >
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -627,7 +627,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: DoubleLiteral
+  rightHandSide2: DoubleLiteral
     literal: 1.2
     correspondingParameter: SubstitutedFormalParameterElementImpl
       baseElement: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
@@ -677,11 +677,11 @@
     var node = result.findNode.propertyAccess('.foo');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -720,11 +720,11 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -745,7 +745,7 @@
     staticType: Map<int, U> Function<U>(U)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       DoubleLiteral
         literal: 1.0
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -776,11 +776,11 @@
     var node = result.findNode.propertyAccess('foo;');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleIdentifier
           token: a
           correspondingParameter: <null>
@@ -819,12 +819,12 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: ExtensionOverride
+  leftHandSide2: PropertyAccess
+    target2: ExtensionOverride
       name: E
       argumentList: ArgumentList
         leftParenthesis: (
-        arguments
+        arguments2
           SimpleIdentifier
             token: a
             correspondingParameter: <null>
@@ -843,7 +843,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: SubstitutedFormalParameterElementImpl
       baseElement: <testLibrary>::@extension::E::@setter::foo::@formalParameter::value
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart
index d2b8797..527e42b 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/function_expression_test.dart
@@ -62,7 +62,7 @@
       statements
         ReturnStatement
           returnKeyword: return
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: foo
               element: <testLibrary>::@function::foo
@@ -117,7 +117,7 @@
   body: ExpressionFunctionBody
     keyword: async
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: foo
         element: <testLibrary>::@function::foo
@@ -159,7 +159,7 @@
   body: ExpressionFunctionBody
     keyword: async
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: foo
         element: <testLibrary>::@function::foo
@@ -194,7 +194,7 @@
   body: ExpressionFunctionBody
     keyword: async
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: foo
         element: <testLibrary>::@function::foo
@@ -245,7 +245,7 @@
       statements
         YieldStatement
           yieldKeyword: yield
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: foo
               element: <testLibrary>::@function::foo
@@ -296,7 +296,7 @@
       statements
         ReturnStatement
           returnKeyword: return
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: foo
               element: <testLibrary>::@function::foo
@@ -350,7 +350,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: MethodInvocation
+    expression2: MethodInvocation
       methodName: SimpleIdentifier
         token: foo
         element: <testLibrary>::@function::foo
@@ -401,7 +401,7 @@
       statements
         YieldStatement
           yieldKeyword: yield
-          expression: MethodInvocation
+          expression2: MethodInvocation
             methodName: SimpleIdentifier
               token: foo
               element: <testLibrary>::@function::foo
@@ -456,7 +456,7 @@
       leftBracket: {
       statements
         ExpressionStatement
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: item
             element: item@43
             staticType: int
@@ -599,7 +599,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: ListLiteral
+    expression2: ListLiteral
       typeArguments: TypeArgumentList
         leftBracket: <
         arguments
@@ -609,7 +609,7 @@
             type: T
         rightBracket: >
       leftBracket: [
-      elements
+      elements2
         SimpleIdentifier
           token: a
           element: a@29
@@ -638,7 +638,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 42
       staticType: int
   declaredFragment: <testLibraryFragment> null@null
@@ -661,7 +661,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 42
       staticType: int
   declaredFragment: <testLibraryFragment> null@null
@@ -1019,8 +1019,8 @@
 
     var node = result.findNode.functionExpressionInvocation("('')");
     assertResolvedNodeText(node, r'''FunctionExpressionInvocation
-  function: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  function2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: createT
       element: <testLibrary>::@function::test::@formalParameter::createT
       staticType: T Function()
@@ -1032,7 +1032,7 @@
     staticType: T
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       SimpleStringLiteral
         literal: ''
     rightParenthesis: )
@@ -1051,8 +1051,8 @@
 
     var node = result.findNode.functionExpressionInvocation('(0)');
     assertResolvedNodeText(node, r'''FunctionExpressionInvocation
-  function: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  function2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: createT
       element: <testLibrary>::@function::test::@formalParameter::createT
       staticType: T Function()
@@ -1064,7 +1064,7 @@
     staticType: T
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null-name>@null
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/function_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/function_test.dart
index 3541213..57010ef 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/function_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/function_test.dart
@@ -34,7 +34,7 @@
     staticType: void Function<T>(T, T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -75,11 +75,11 @@
     staticType: void Function<T>({required T x, required T y})
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NamedArgument
         name: x
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 1
           staticType: int
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -113,7 +113,7 @@
     staticType: void Function<T>(T, T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -148,7 +148,7 @@
     staticType: void Function<T>(T, T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -193,7 +193,7 @@
     staticType: void Function<T>(T, T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 1
         correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -209,7 +209,7 @@
       NamedArgument
         name: z
         colon: :
-        argumentExpression: IntegerLiteral
+        argumentExpression2: IntegerLiteral
           literal: 3
           staticType: int
         correspondingParameter: <null>
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/list_literal_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/list_literal_test.dart
index 3847935..9860fcd 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/list_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/list_literal_test.dart
@@ -88,7 +88,7 @@
     staticType: T Function<T>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NullLiteral
         literal: null
         correspondingParameter: SubstitutedFormalParameterElementImpl
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/logical_boolean_expressions_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/logical_boolean_expressions_test.dart
index f6c22c7..229b0ab 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/logical_boolean_expressions_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/logical_boolean_expressions_test.dart
@@ -30,7 +30,7 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: MethodInvocation
+  leftOperand2: MethodInvocation
     methodName: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::a
@@ -43,8 +43,8 @@
     typeArgumentTypes
       bool
   operator: &&
-  rightOperand: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  rightOperand2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: b
       element: <testLibrary>::@function::f::@formalParameter::b
       staticType: dynamic
@@ -71,12 +71,12 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: bool
   operator: &&
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
@@ -103,7 +103,7 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: MethodInvocation
+  leftOperand2: MethodInvocation
     methodName: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::a
@@ -116,8 +116,8 @@
     typeArgumentTypes
       bool
   operator: ||
-  rightOperand: FunctionExpressionInvocation
-    function: SimpleIdentifier
+  rightOperand2: FunctionExpressionInvocation
+    function2: SimpleIdentifier
       token: b
       element: <testLibrary>::@function::f::@formalParameter::b
       staticType: dynamic
@@ -144,12 +144,12 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: bool
   operator: ||
-  rightOperand: SimpleIdentifier
+  rightOperand2: SimpleIdentifier
     token: b
     correspondingParameter: <null>
     element: <testLibrary>::@function::f::@formalParameter::b
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/map_literal_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/map_literal_test.dart
index 95e31b8..e8569ba 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/map_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/map_literal_test.dart
@@ -54,7 +54,7 @@
     assertResolvedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     MethodInvocation
       methodName: SimpleIdentifier
         token: f
@@ -86,7 +86,7 @@
     assertResolvedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     DotShorthandPropertyAccess
       period: .
       propertyName: SimpleIdentifier
@@ -117,7 +117,7 @@
     assertResolvedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     DotShorthandPropertyAccess
       period: .
       propertyName: SimpleIdentifier
@@ -145,15 +145,15 @@
     assertResolvedNodeText(node, r'''
 SetOrMapLiteral
   leftBracket: {
-  elements
+  elements2
     IfElement
       ifKeyword: if
       leftParenthesis: (
-      expression: BooleanLiteral
+      expression2: BooleanLiteral
         literal: true
         staticType: bool
       rightParenthesis: )
-      thenElement: MethodInvocation
+      thenElement2: MethodInvocation
         methodName: SimpleIdentifier
           token: f
           element: <testLibrary>::@function::f
@@ -254,7 +254,7 @@
     staticType: T Function<T>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       NullLiteral
         literal: null
         correspondingParameter: SubstitutedFormalParameterElementImpl
diff --git a/pkg/analyzer/test/src/dart/resolution/type_inference/tear_off_test.dart b/pkg/analyzer/test/src/dart/resolution/type_inference/tear_off_test.dart
index fb1c081..9d3f6f5 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_inference/tear_off_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_inference/tear_off_test.dart
@@ -74,8 +74,8 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: InstanceCreationExpression
+  function2: PropertyAccess
+    target2: InstanceCreationExpression
       keyword: new
       constructorName: ConstructorName
         type: NamedType
@@ -110,7 +110,7 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
     element: f@31
     staticType: T Function<T>(T)
@@ -134,7 +134,7 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: C
       element: <testLibrary>::@class::C
@@ -168,8 +168,8 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PropertyAccess
-    target: SuperExpression
+  function2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: D
     operator: .
@@ -196,7 +196,7 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::f
     staticType: T Function<T>(T)
@@ -224,7 +224,7 @@
     staticType: T Function<T>(T)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: SubstitutedFormalParameterElementImpl
diff --git a/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart b/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart
index c5277b6..e30a140 100644
--- a/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/type_literal_test.dart
@@ -6210,7 +6210,7 @@
     var node = result.findNode.functionReference('dynamic<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: dynamic
     element: <null>
     staticType: null
@@ -6571,7 +6571,7 @@
     var node = result.findNode.functionReference('Never<core.int>)');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: PrefixedIdentifier
+  function2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: core
       element: <testLibraryFragment>::@prefix::core
@@ -6950,7 +6950,7 @@
     var node = result.findNode.functionReference('Never<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: Never
     element: <null>
     staticType: null
@@ -7574,7 +7574,7 @@
     var node = result.findNode.functionReference('T<int>)');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: T
     element: <null>
     staticType: null
@@ -7936,7 +7936,7 @@
     var node = result.findNode.functionReference('T<int>;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: T
     element: <null>
     staticType: null
diff --git a/pkg/analyzer/test/src/dart/resolution/variable_declaration_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/variable_declaration_statement_test.dart
index f670a40..d6e0d27 100644
--- a/pkg/analyzer/test/src/dart/resolution/variable_declaration_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/variable_declaration_statement_test.dart
@@ -39,7 +39,7 @@
       VariableDeclaration
         name: a
         equals: =
-        initializer: SuperExpression
+        initializer2: SuperExpression
           superKeyword: super
           staticType: A
         declaredFragment: isFinal isPublic a@33
@@ -69,7 +69,7 @@
       VariableDeclaration
         name: a
         equals: =
-        initializer: ThisExpression
+        initializer2: ThisExpression
           thisKeyword: this
           staticType: A
         declaredFragment: isFinal isPublic a@33
diff --git a/pkg/analyzer/test/src/dart/resolution/while_statement_test.dart b/pkg/analyzer/test/src/dart/resolution/while_statement_test.dart
index 53ac87d..11a542c 100644
--- a/pkg/analyzer/test/src/dart/resolution/while_statement_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/while_statement_test.dart
@@ -30,7 +30,7 @@
 WhileStatement
   whileKeyword: while
   leftParenthesis: (
-  condition: BooleanLiteral
+  condition2: BooleanLiteral
     literal: true
     staticType: bool
   rightParenthesis: )
@@ -64,7 +64,7 @@
   statement: WhileStatement
     whileKeyword: while
     leftParenthesis: (
-    condition: BooleanLiteral
+    condition2: BooleanLiteral
       literal: true
       staticType: bool
     rightParenthesis: )
@@ -97,7 +97,7 @@
 WhileStatement
   whileKeyword: while
   leftParenthesis: (
-  condition: BooleanLiteral
+  condition2: BooleanLiteral
     literal: true
     staticType: bool
   rightParenthesis: )
@@ -131,7 +131,7 @@
 WhileStatement
   whileKeyword: while
   leftParenthesis: (
-  condition: SuperExpression
+  condition2: SuperExpression
     superKeyword: super
     staticType: A
   rightParenthesis: )
@@ -155,7 +155,7 @@
 WhileStatement
   whileKeyword: while
   leftParenthesis: (
-  condition: BooleanLiteral
+  condition2: BooleanLiteral
     literal: true
     staticType: bool
   rightParenthesis: )
@@ -189,7 +189,7 @@
   statement: WhileStatement
     whileKeyword: while
     leftParenthesis: (
-    condition: BooleanLiteral
+    condition2: BooleanLiteral
       literal: true
       staticType: bool
     rightParenthesis: )
@@ -222,7 +222,7 @@
 WhileStatement
   whileKeyword: while
   leftParenthesis: (
-  condition: BooleanLiteral
+  condition2: BooleanLiteral
     literal: true
     staticType: bool
   rightParenthesis: )
diff --git a/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart b/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart
index 55da31b..6d2108e 100644
--- a/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart
+++ b/pkg/analyzer/test/src/dart/resolver/exit_detector_test.dart
@@ -128,7 +128,7 @@
 
     var block = findNode.block('{ // ref');
     var statement = block.statements.single as ExpressionStatement;
-    var expression = statement.expression;
+    var expression = statement.expression2;
 
     var actual = ExitDetector.exits(expression);
     expect(actual, expected);
diff --git a/pkg/analyzer/test/src/diagnostics/abstract_super_member_reference_test.dart b/pkg/analyzer/test/src/diagnostics/abstract_super_member_reference_test.dart
index 4f728ff2..8b1d3c2 100644
--- a/pkg/analyzer/test/src/diagnostics/abstract_super_member_reference_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/abstract_super_member_reference_test.dart
@@ -34,7 +34,7 @@
     var node = result.findNode.methodInvocation('super.foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: M
   operator: .
@@ -44,7 +44,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -75,7 +75,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: C
   operator: .
@@ -109,7 +109,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -145,7 +145,7 @@
     var node = result.findNode.methodInvocation('super.foo(0)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -155,7 +155,7 @@
     staticType: void Function(int)
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@method::foo::@formalParameter::_
@@ -186,7 +186,7 @@
     var node = result.findNode.methodInvocation('foo(); // ref');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: C
   operator: .
@@ -218,7 +218,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -254,7 +254,7 @@
     var node = result.findNode.methodInvocation('super.foo()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: C
   operator: .
@@ -288,7 +288,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -318,7 +318,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: M
   operator: .
@@ -348,7 +348,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -376,7 +376,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -407,7 +407,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: C
   operator: .
@@ -437,7 +437,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: C
   operator: .
@@ -467,7 +467,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -497,8 +497,8 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -508,7 +508,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::_
     staticType: int
@@ -539,8 +539,8 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: M
     operator: .
@@ -550,7 +550,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::_
     staticType: int
@@ -581,8 +581,8 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -592,7 +592,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: a
     correspondingParameter: <testLibrary>::@mixin::A::@setter::foo::@formalParameter::a
     element: <testLibrary>::@class::B::@setter::foo::@formalParameter::a
@@ -622,8 +622,8 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: B
     operator: .
@@ -633,7 +633,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: SimpleIdentifier
+  rightHandSide2: SimpleIdentifier
     token: a
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::a
     element: <testLibrary>::@class::B::@setter::foo::@formalParameter::a
@@ -667,8 +667,8 @@
     var node = result.findNode.assignment('foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: SuperExpression
+  leftHandSide2: PropertyAccess
+    target2: SuperExpression
       superKeyword: super
       staticType: C
     operator: .
@@ -678,7 +678,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <testLibrary>::@class::A::@setter::foo::@formalParameter::_
     staticType: int
diff --git a/pkg/analyzer/test/src/diagnostics/ambiguous_extension_member_access_test.dart b/pkg/analyzer/test/src/diagnostics/ambiguous_extension_member_access_test.dart
index 1a11b14..f07757d 100644
--- a/pkg/analyzer/test/src/diagnostics/ambiguous_extension_member_access_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/ambiguous_extension_member_access_test.dart
@@ -54,7 +54,7 @@
     var node = result.findNode.propertyAccess('0.a');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -84,7 +84,7 @@
     var node = result.findNode.propertyAccess('0.a');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -116,7 +116,7 @@
     var node = result.findNode.propertyAccess('0.a');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -148,7 +148,7 @@
     var node = result.findNode.propertyAccess('0.a');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -275,7 +275,7 @@
     var node = result.findNode.methodInvocation('0.a()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: IntegerLiteral
+  target2: IntegerLiteral
     literal: 0
     staticType: int
   operator: .
@@ -499,8 +499,8 @@
     var node = result.findNode.assignment('= 3');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: IntegerLiteral
+  leftHandSide2: PropertyAccess
+    target2: IntegerLiteral
       literal: 0
       staticType: int
     operator: .
@@ -510,7 +510,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 3
     correspondingParameter: <null>
     staticType: int
diff --git a/pkg/analyzer/test/src/diagnostics/const_with_non_const_test.dart b/pkg/analyzer/test/src/diagnostics/const_with_non_const_test.dart
index 102dd09..38fa3a9 100644
--- a/pkg/analyzer/test/src/diagnostics/const_with_non_const_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/const_with_non_const_test.dart
@@ -106,7 +106,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
@@ -141,7 +141,7 @@
     element: <testLibrary>::@class::A::@constructor::new
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <testLibrary>::@class::A::@constructor::new::@formalParameter::a
diff --git a/pkg/analyzer/test/src/diagnostics/constant_pattern_with_non_constant_expression_test.dart b/pkg/analyzer/test/src/diagnostics/constant_pattern_with_non_constant_expression_test.dart
index dc940e6..6491d99 100644
--- a/pkg/analyzer/test/src/diagnostics/constant_pattern_with_non_constant_expression_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/constant_pattern_with_non_constant_expression_test.dart
@@ -26,7 +26,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: BooleanLiteral
+    expression2: BooleanLiteral
       literal: true
       staticType: bool
     matchedValueType: dynamic
@@ -48,7 +48,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: PrefixedIdentifier
+    expression2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: A
         element: <testLibrary>::@class::A
@@ -89,7 +89,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: DoubleLiteral
+    expression2: DoubleLiteral
       literal: 1.2
       staticType: double
     matchedValueType: dynamic
@@ -115,8 +115,8 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: PropertyAccess
-      target: PrefixedIdentifier
+    expression2: PropertyAccess
+      target2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: prefix
           element: <testLibraryFragment>::@prefix::prefix
@@ -157,8 +157,8 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: PropertyAccess
-      target: PrefixedIdentifier
+    expression2: PropertyAccess
+      target2: PrefixedIdentifier
         prefix: SimpleIdentifier
           token: prefix
           element: <testLibraryFragment>::@prefix::prefix
@@ -196,7 +196,7 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: InstanceCreationExpression
+    expression2: InstanceCreationExpression
       constructorName: ConstructorName
         type: NamedType
           name: A
@@ -222,7 +222,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 0
       staticType: int
     matchedValueType: dynamic
@@ -241,9 +241,9 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
-      elements
+      elements2
         IntegerLiteral
           literal: 0
           staticType: int
@@ -266,9 +266,9 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: ListLiteral
+    expression2: ListLiteral
       leftBracket: [
-      elements
+      elements2
         SimpleIdentifier
           token: a
           element: a@20
@@ -302,7 +302,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: a@20
       staticType: int
@@ -333,15 +333,15 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 0
             staticType: int
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 1
             staticType: int
       rightBracket: }
@@ -364,16 +364,16 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: SimpleIdentifier
+          key2: SimpleIdentifier
             token: a
             element: a@20
             staticType: int
           separator: :
-          value: IntegerLiteral
+          value2: IntegerLiteral
             literal: 1
             staticType: int
       rightBracket: }
@@ -407,15 +407,15 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         MapLiteralEntry
-          key: IntegerLiteral
+          key2: IntegerLiteral
             literal: 0
             staticType: int
           separator: :
-          value: SimpleIdentifier
+          value2: SimpleIdentifier
             token: a
             element: a@20
             staticType: int
@@ -449,9 +449,9 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         IntegerLiteral
           literal: 0
           staticType: int
@@ -475,9 +475,9 @@
 GuardedPattern
   pattern: ConstantPattern
     constKeyword: const
-    expression: SetOrMapLiteral
+    expression2: SetOrMapLiteral
       leftBracket: {
-      elements
+      elements2
         SimpleIdentifier
           token: a
           element: a@20
@@ -515,7 +515,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@getter::a
       staticType: int
@@ -538,7 +538,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@getter::a
       staticType: int
@@ -559,7 +559,7 @@
     assertResolvedNodeText(node, r'''
 GuardedPattern
   pattern: ConstantPattern
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: foo
       element: <null>
       staticType: InvalidType
diff --git a/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart b/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart
index 26e1594..fe47c17 100644
--- a/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/duplicate_variable_pattern_test.dart
@@ -32,7 +32,7 @@
 IfStatement
   ifKeyword: if
   leftParenthesis: (
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int
@@ -61,7 +61,7 @@
     leftBracket: {
     statements
       ExpressionStatement
-        expression: SimpleIdentifier
+        expression2: SimpleIdentifier
           token: a
           element: a@33
           staticType: int
@@ -109,7 +109,7 @@
   colon: :
   statements
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: a@44
         staticType: int
@@ -156,9 +156,9 @@
           matchedValueType: List<int>
           requiredType: List<int>
         equals: =
-        expression: ListLiteral
+        expression2: ListLiteral
           leftBracket: [
-          elements
+          elements2
             IntegerLiteral
               literal: 0
               staticType: int
@@ -170,7 +170,7 @@
         patternTypeSchema: List<_>
       semicolon: ;
     ExpressionStatement
-      expression: SimpleIdentifier
+      expression2: SimpleIdentifier
         token: a
         element: a@18
         staticType: int
diff --git a/pkg/analyzer/test/src/diagnostics/extension_override_access_to_static_member_test.dart b/pkg/analyzer/test/src/diagnostics/extension_override_access_to_static_member_test.dart
index 69fea4a..3f56f6d 100644
--- a/pkg/analyzer/test/src/diagnostics/extension_override_access_to_static_member_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/extension_override_access_to_static_member_test.dart
@@ -31,11 +31,11 @@
     var node = result.findNode.functionExpressionInvocation('();');
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: ExtensionOverride
+  function2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 0
           correspondingParameter: <null>
@@ -95,11 +95,11 @@
     var node = result.findNode.methodInvocation('empty();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleStringLiteral
           literal: 'a'
       rightParenthesis: )
diff --git a/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart b/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart
index 6b077bb..8e4eabf 100644
--- a/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart
@@ -816,7 +816,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
 ''');
   }
@@ -848,7 +848,7 @@
     rightParenthesis: )
   body: ExpressionFunctionBody
     functionDefinition: =>
-    expression: NullLiteral
+    expression2: NullLiteral
       literal: null
 ''');
   }
diff --git a/pkg/analyzer/test/src/diagnostics/instance_access_to_static_member_test.dart b/pkg/analyzer/test/src/diagnostics/instance_access_to_static_member_test.dart
index 606678d..4b281c8 100644
--- a/pkg/analyzer/test/src/diagnostics/instance_access_to_static_member_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/instance_access_to_static_member_test.dart
@@ -30,7 +30,7 @@
     var node = result.findNode.methodInvocation('a();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: c
     element: <testLibrary>::@function::f::@formalParameter::c
     staticType: C
@@ -146,7 +146,7 @@
     var node = result.findNode.methodInvocation('a();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: a
     element: <testLibrary>::@function::f::@formalParameter::a
     staticType: A
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
index 5096bc3..b6fa17c 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_assignment_test.dart
@@ -542,7 +542,7 @@
     var node = result.findNode.functionReference('f;');
     assertResolvedNodeText(node, r'''
 FunctionReference
-  function: SimpleIdentifier
+  function2: SimpleIdentifier
     token: f
     element: <testLibrary>::@function::foo::@formalParameter::f
     staticType: int Function<T extends int>()
diff --git a/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart b/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart
index f278dd0..9758654 100644
--- a/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invocation_of_non_function_expression_test.dart
@@ -26,12 +26,12 @@
     var node = result.findNode.singleFunctionExpressionInvocation;
     assertResolvedNodeText(node, r'''
 FunctionExpressionInvocation
-  function: IntegerLiteral
+  function2: IntegerLiteral
     literal: 3
     staticType: int
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 5
         correspondingParameter: <null>
diff --git a/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart b/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart
index bb4a15c..7ec1e2e 100644
--- a/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/missing_variable_pattern_test.dart
@@ -140,7 +140,7 @@
 LogicalOrPattern
   leftOperand: LogicalAndPattern
     leftOperand: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: int
@@ -191,7 +191,7 @@
     matchedValueType: num
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
       staticType: int
     matchedValueType: num
@@ -213,7 +213,7 @@
     assertResolvedNodeText(node, r'''
 LogicalOrPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
       staticType: int
     matchedValueType: int
@@ -258,14 +258,14 @@
       matchedValueType: num
     operator: ||
     rightOperand: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
         staticType: int
       matchedValueType: num
     matchedValueType: num
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 3
       staticType: int
     matchedValueType: num
@@ -315,7 +315,7 @@
     matchedValueType: num
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 3
       staticType: int
     matchedValueType: num
@@ -400,7 +400,7 @@
       matchedValueType: num
     operator: ||
     rightOperand: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
         staticType: int
       matchedValueType: num
@@ -438,7 +438,7 @@
 LogicalOrPattern
   leftOperand: LogicalOrPattern
     leftOperand: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
         staticType: int
       matchedValueType: num
@@ -457,7 +457,7 @@
     matchedValueType: num
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 3
       staticType: int
     matchedValueType: num
@@ -484,7 +484,7 @@
 LogicalOrPattern
   leftOperand: LogicalOrPattern
     leftOperand: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
         staticType: int
       matchedValueType: int
@@ -524,13 +524,13 @@
 LogicalOrPattern
   leftOperand: LogicalOrPattern
     leftOperand: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 1
         staticType: int
       matchedValueType: int
     operator: ||
     rightOperand: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 2
         staticType: int
       matchedValueType: int
@@ -615,7 +615,7 @@
     matchedValueType: num
   operator: ||
   rightOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 2
       staticType: int
     matchedValueType: num
@@ -640,7 +640,7 @@
     assertResolvedNodeText(node, r'''
 LogicalOrPattern
   leftOperand: ConstantPattern
-    expression: IntegerLiteral
+    expression2: IntegerLiteral
       literal: 1
       staticType: int
     matchedValueType: int
diff --git a/pkg/analyzer/test/src/diagnostics/pattern_assignment_not_local_variable_test.dart b/pkg/analyzer/test/src/diagnostics/pattern_assignment_not_local_variable_test.dart
index 97d5113..12e06f1 100644
--- a/pkg/analyzer/test/src/diagnostics/pattern_assignment_not_local_variable_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/pattern_assignment_not_local_variable_test.dart
@@ -51,7 +51,7 @@
     rightParenthesis: )
     matchedValueType: InvalidType
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: _
@@ -86,7 +86,7 @@
     rightParenthesis: )
     matchedValueType: InvalidType
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: _
@@ -119,7 +119,7 @@
     rightParenthesis: )
     matchedValueType: InvalidType
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: _
diff --git a/pkg/analyzer/test/src/diagnostics/private_setter_test.dart b/pkg/analyzer/test/src/diagnostics/private_setter_test.dart
index 89e264c..e03bfa9 100644
--- a/pkg/analyzer/test/src/diagnostics/private_setter_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/private_setter_test.dart
@@ -35,7 +35,7 @@
     var node = result.findNode.assignment('_foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/a.dart::@class::A
@@ -48,7 +48,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: package:test/a.dart::@class::A::@setter::_foo::@formalParameter::value
     staticType: int
@@ -95,7 +95,7 @@
     var node = result.findNode.assignment('_foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/a.dart::@class::A
@@ -108,7 +108,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: package:test/a.dart::@class::A::@setter::_foo::@formalParameter::_
     staticType: int
@@ -140,7 +140,7 @@
     var node = result.findNode.assignment('_foo =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: A
       element: package:test/a.dart::@class::A
@@ -153,7 +153,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: package:test/a.dart::@class::A::@setter::_foo::@formalParameter::_
     staticType: int
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 5081827..af6042a 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
@@ -30,22 +30,22 @@
     var node = result.findNode.binary('==');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ParenthesizedExpression
+  leftOperand2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: ''
       staticType: Never
     rightParenthesis: )
     staticType: Never
   operator: ==
-  rightOperand: BinaryExpression
-    leftOperand: IntegerLiteral
+  rightOperand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
       staticType: int
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       staticType: int
@@ -73,17 +73,17 @@
     var node = result.findNode.binary('x ==');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never
   operator: ==
-  rightOperand: BinaryExpression
-    leftOperand: IntegerLiteral
+  rightOperand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
       staticType: int
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       staticType: int
@@ -111,19 +111,19 @@
     var node = result.findNode.binary('x +');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never
   operator: +
-  rightOperand: ParenthesizedExpression
+  rightOperand2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: IntegerLiteral
+    expression2: BinaryExpression
+      leftOperand2: IntegerLiteral
         literal: 1
         staticType: int
       operator: +
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 2
         correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
         staticType: int
@@ -149,17 +149,17 @@
     var node = result.findNode.binary('x ==');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never?
   operator: ==
-  rightOperand: BinaryExpression
-    leftOperand: IntegerLiteral
+  rightOperand2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
       staticType: int
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       staticType: int
@@ -185,19 +185,19 @@
     var node = result.findNode.binary('x +');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SimpleIdentifier
+  leftOperand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never?
   operator: +
-  rightOperand: ParenthesizedExpression
+  rightOperand2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: IntegerLiteral
+    expression2: BinaryExpression
+      leftOperand2: IntegerLiteral
         literal: 1
         staticType: int
       operator: +
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 2
         correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
         staticType: int
@@ -227,24 +227,24 @@
     var node = result.findNode.binary('+ (');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ParenthesizedExpression
+  leftOperand2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: ''
       staticType: Never
     rightParenthesis: )
     staticType: Never
   operator: +
-  rightOperand: ParenthesizedExpression
+  rightOperand2: ParenthesizedExpression
     leftParenthesis: (
-    expression: BinaryExpression
-      leftOperand: IntegerLiteral
+    expression2: BinaryExpression
+      leftOperand2: IntegerLiteral
         literal: 1
         staticType: int
       operator: +
-      rightOperand: IntegerLiteral
+      rightOperand2: IntegerLiteral
         literal: 2
         correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
         staticType: int
@@ -314,12 +314,12 @@
     var node = result.findNode.index('x[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -343,13 +343,13 @@
     var node = result.findNode.assignment('[0] +=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Never
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <null>
       staticType: int
@@ -357,12 +357,12 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: BinaryExpression
-    leftOperand: IntegerLiteral
+  rightHandSide2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
       staticType: int
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       staticType: int
@@ -393,13 +393,13 @@
     var node = result.findNode.assignment('x[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Never
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <null>
       staticType: int
@@ -407,12 +407,12 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: BinaryExpression
-    leftOperand: IntegerLiteral
+  rightHandSide2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
       staticType: int
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       staticType: int
@@ -441,12 +441,12 @@
     var node = result.findNode.index('x[0]');
     assertResolvedNodeText(node, r'''
 IndexExpression
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never?
   leftBracket: [
-  index: IntegerLiteral
+  index2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -468,13 +468,13 @@
     var node = result.findNode.assignment('[0] +=');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Never?
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <null>
       staticType: int
@@ -482,12 +482,12 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: BinaryExpression
-    leftOperand: IntegerLiteral
+  rightHandSide2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
       staticType: int
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       staticType: int
@@ -516,13 +516,13 @@
     var node = result.findNode.assignment('x[0]');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: IndexExpression
-    target: SimpleIdentifier
+  leftHandSide2: IndexExpression
+    target2: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
       staticType: Never?
     leftBracket: [
-    index: IntegerLiteral
+    index2: IntegerLiteral
       literal: 0
       correspondingParameter: <null>
       staticType: int
@@ -530,12 +530,12 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: BinaryExpression
-    leftOperand: IntegerLiteral
+  rightHandSide2: BinaryExpression
+    leftOperand2: IntegerLiteral
       literal: 1
       staticType: int
     operator: +
-    rightOperand: IntegerLiteral
+    rightOperand2: IntegerLiteral
       literal: 2
       correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
       staticType: int
@@ -574,7 +574,7 @@
     var node = result.findNode.methodInvocation('.foo(1 + 2)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never
@@ -585,13 +585,13 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: IntegerLiteral
+        leftOperand2: IntegerLiteral
           literal: 1
           staticType: int
         operator: +
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 2
           correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
           staticType: int
@@ -619,7 +619,7 @@
     var node = result.findNode.methodInvocation('.toString(1 + 2)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never
@@ -630,13 +630,13 @@
     staticType: dynamic
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: IntegerLiteral
+        leftOperand2: IntegerLiteral
           literal: 1
           staticType: int
         operator: +
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 2
           correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
           staticType: int
@@ -662,7 +662,7 @@
     var node = result.findNode.methodInvocation('.toString(1 + 2)');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SimpleIdentifier
+  target2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: Never?
@@ -673,13 +673,13 @@
     staticType: String Function()
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       BinaryExpression
-        leftOperand: IntegerLiteral
+        leftOperand2: IntegerLiteral
           literal: 1
           staticType: int
         operator: +
-        rightOperand: IntegerLiteral
+        rightOperand2: IntegerLiteral
           literal: 2
           correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
           staticType: int
@@ -707,11 +707,11 @@
     var node = result.findNode.methodInvocation('toString()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: ''
       staticType: Never
     rightParenthesis: )
@@ -741,7 +741,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -767,7 +767,7 @@
     var node = result.findNode.postfix('x++');
     assertResolvedNodeText(node, r'''
 PostfixExpression
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -795,7 +795,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -821,7 +821,7 @@
     assertResolvedNodeText(node, r'''
 PrefixExpression
   operator: ++
-  operand: SimpleIdentifier
+  operand2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: null
@@ -898,7 +898,7 @@
     var node = result.findNode.assignment('foo += 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
@@ -911,7 +911,7 @@
     element: <null>
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -962,7 +962,7 @@
     var node = result.findNode.assignment('foo = 0');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: x
       element: <testLibrary>::@function::f::@formalParameter::x
@@ -975,7 +975,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -1074,11 +1074,11 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: ''
       staticType: Never
     rightParenthesis: )
@@ -1104,11 +1104,11 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: ThrowExpression
+    expression2: ThrowExpression
       throwKeyword: throw
-      expression: SimpleStringLiteral
+      expression2: SimpleStringLiteral
         literal: ''
       staticType: Never
     rightParenthesis: )
diff --git a/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart b/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart
index e8f5d53..d970cb3 100644
--- a/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/refutable_pattern_in_irrefutable_context_test.dart
@@ -33,14 +33,14 @@
   pattern: ParenthesizedPattern
     leftParenthesis: (
     pattern: ConstantPattern
-      expression: IntegerLiteral
+      expression2: IntegerLiteral
         literal: 0
         staticType: int
       matchedValueType: int
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: _
@@ -76,7 +76,7 @@
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: _
@@ -107,7 +107,7 @@
     rightParenthesis: )
     matchedValueType: int?
   equals: =
-  expression: SimpleIdentifier
+  expression2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::f::@formalParameter::x
     staticType: int?
@@ -132,7 +132,7 @@
     leftParenthesis: (
     pattern: RelationalPattern
       operator: >
-      operand: IntegerLiteral
+      operand2: IntegerLiteral
         literal: 0
         staticType: int
       element: dart:core::@class::num::@method::>
@@ -140,7 +140,7 @@
     rightParenthesis: )
     matchedValueType: int
   equals: =
-  expression: IntegerLiteral
+  expression2: IntegerLiteral
     literal: 0
     staticType: int
   patternTypeSchema: _
diff --git a/pkg/analyzer/test/src/diagnostics/sdk_version_since_test.dart b/pkg/analyzer/test/src/diagnostics/sdk_version_since_test.dart
index 4c749f1..9ffc5a8 100644
--- a/pkg/analyzer/test/src/diagnostics/sdk_version_since_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/sdk_version_since_test.dart
@@ -616,9 +616,9 @@
     var node = result.findNode.propertyAccess('.foo');
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: ParenthesizedExpression
+  target2: ParenthesizedExpression
     leftParenthesis: (
-    expression: SimpleIdentifier
+    expression2: SimpleIdentifier
       token: a
       element: <testLibrary>::@function::f::@formalParameter::a
       staticType: A
diff --git a/pkg/analyzer/test/src/diagnostics/super_in_extension_type_test.dart b/pkg/analyzer/test/src/diagnostics/super_in_extension_type_test.dart
index f6364f4..8444987 100644
--- a/pkg/analyzer/test/src/diagnostics/super_in_extension_type_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/super_in_extension_type_test.dart
@@ -30,11 +30,11 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: SuperExpression
+  leftOperand2: SuperExpression
     superKeyword: super
     staticType: A
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -58,7 +58,7 @@
     var node = result.findNode.singleMethodInvocation;
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: A
   operator: .
@@ -88,7 +88,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: A
   operator: .
diff --git a/pkg/analyzer/test/src/diagnostics/super_in_invalid_context_test.dart b/pkg/analyzer/test/src/diagnostics/super_in_invalid_context_test.dart
index f2d87df..2a12f9a 100644
--- a/pkg/analyzer/test/src/diagnostics/super_in_invalid_context_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/super_in_invalid_context_test.dart
@@ -272,7 +272,7 @@
     var node = result.findNode.methodInvocation('super.m()');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
@@ -303,7 +303,7 @@
     var node = result.findNode.singlePropertyAccess;
     assertResolvedNodeText(node, r'''
 PropertyAccess
-  target: SuperExpression
+  target2: SuperExpression
     superKeyword: super
     staticType: B
   operator: .
diff --git a/pkg/analyzer/test/src/diagnostics/undefined_extension_method_test.dart b/pkg/analyzer/test/src/diagnostics/undefined_extension_method_test.dart
index 9ffae20..a1e85fe 100644
--- a/pkg/analyzer/test/src/diagnostics/undefined_extension_method_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/undefined_extension_method_test.dart
@@ -40,11 +40,11 @@
     var node = result.findNode.methodInvocation('m();');
     assertResolvedNodeText(node, r'''
 MethodInvocation
-  target: ExtensionOverride
+  target2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleStringLiteral
           literal: 'a'
       rightParenthesis: )
diff --git a/pkg/analyzer/test/src/diagnostics/undefined_extension_operator_test.dart b/pkg/analyzer/test/src/diagnostics/undefined_extension_operator_test.dart
index ce26a48..e86f6df 100644
--- a/pkg/analyzer/test/src/diagnostics/undefined_extension_operator_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/undefined_extension_operator_test.dart
@@ -40,11 +40,11 @@
     var node = result.findNode.binary('+ 1');
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: ExtensionOverride
+  leftOperand2: ExtensionOverride
     name: E
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         SimpleStringLiteral
           literal: 'a'
       rightParenthesis: )
@@ -52,7 +52,7 @@
     extendedType: String
     staticType: null
   operator: +
-  rightOperand: IntegerLiteral
+  rightOperand2: IntegerLiteral
     literal: 1
     correspondingParameter: <null>
     staticType: int
diff --git a/pkg/analyzer/test/src/diagnostics/undefined_setter_test.dart b/pkg/analyzer/test/src/diagnostics/undefined_setter_test.dart
index de035f7..4ef397c 100644
--- a/pkg/analyzer/test/src/diagnostics/undefined_setter_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/undefined_setter_test.dart
@@ -249,7 +249,7 @@
     var node = result.findNode.assignment('a =');
     assertResolvedNodeText(node, r'''
 AssignmentExpression
-  leftHandSide: PrefixedIdentifier
+  leftHandSide2: PrefixedIdentifier
     prefix: SimpleIdentifier
       token: c
       element: <testLibrary>::@function::f::@formalParameter::c
@@ -262,7 +262,7 @@
     element: <null>
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <null>
     staticType: int
diff --git a/pkg/analyzer/test/src/diagnostics/use_of_nullable_value_test.dart b/pkg/analyzer/test/src/diagnostics/use_of_nullable_value_test.dart
index c702efa..af821a0 100644
--- a/pkg/analyzer/test/src/diagnostics/use_of_nullable_value_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/use_of_nullable_value_test.dart
@@ -436,8 +436,8 @@
     var node1 = result.findNode.assignment('x = 1');
     assertResolvedNodeText(node1, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::m::@formalParameter::b
@@ -456,7 +456,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::value
     staticType: int
@@ -471,8 +471,8 @@
     var node2 = result.findNode.assignment('x = 2');
     assertResolvedNodeText(node2, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::m::@formalParameter::b
@@ -491,7 +491,7 @@
       staticType: null
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: <testLibrary>::@class::A::@setter::x::@formalParameter::value
     staticType: int
@@ -515,12 +515,12 @@
     var node1 = result.findNode.assignment('x =');
     assertResolvedNodeText(node1, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::m::@formalParameter::x
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -535,12 +535,12 @@
     var node2 = result.findNode.assignment('y =');
     assertResolvedNodeText(node2, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: y
     element: <testLibrary>::@function::m::@formalParameter::y
     staticType: null
   operator: =
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: <null>
     staticType: int
@@ -577,8 +577,8 @@
     var node1 = result.findNode.assignment('x +=');
     assertResolvedNodeText(node1, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::m::@formalParameter::b
@@ -597,7 +597,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -612,8 +612,8 @@
     var node2 = result.findNode.assignment('y +=');
     assertResolvedNodeText(node2, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::m::@formalParameter::b
@@ -632,7 +632,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -668,8 +668,8 @@
     var node1 = result.findNode.assignment('x += 1');
     assertResolvedNodeText(node1, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::m::@formalParameter::b
@@ -688,7 +688,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 1
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -703,8 +703,8 @@
     var node2 = result.findNode.assignment('x += 2');
     assertResolvedNodeText(node2, r'''
 AssignmentExpression
-  leftHandSide: PropertyAccess
-    target: PrefixedIdentifier
+  leftHandSide2: PropertyAccess
+    target2: PrefixedIdentifier
       prefix: SimpleIdentifier
         token: b
         element: <testLibrary>::@function::m::@formalParameter::b
@@ -723,7 +723,7 @@
       staticType: null
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 2
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -749,12 +749,12 @@
     var node1 = result.findNode.assignment('x +=');
     assertResolvedNodeText(node1, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: x
     element: <testLibrary>::@function::m::@formalParameter::x
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -769,12 +769,12 @@
     var node2 = result.findNode.assignment('y +=');
     assertResolvedNodeText(node2, r'''
 AssignmentExpression
-  leftHandSide: SimpleIdentifier
+  leftHandSide2: SimpleIdentifier
     token: y
     element: <testLibrary>::@function::m::@formalParameter::y
     staticType: null
   operator: +=
-  rightHandSide: IntegerLiteral
+  rightHandSide2: IntegerLiteral
     literal: 0
     correspondingParameter: dart:core::@class::num::@method::+::@formalParameter::other
     staticType: int
@@ -1548,7 +1548,7 @@
 ''');
     var propertyAccess1 = result.findNode.propertyAccess('a?.x; // 1');
     var propertyAccess2 = result.findNode.prefixed('a.x; // 2');
-    assertType(propertyAccess1.target, 'A?');
+    assertType(propertyAccess1.target2, 'A?');
     assertType(propertyAccess2.prefix, 'A?');
 
     assertType(propertyAccess1.propertyName, 'int');
@@ -1579,8 +1579,8 @@
 ''');
     var propertyAccess1 = result.findNode.propertyAccess('b.a?.x; // 1');
     var propertyAccess2 = result.findNode.propertyAccess('b.a.x; // 2');
-    assertType(propertyAccess1.target, 'A?');
-    assertType(propertyAccess2.target, 'A?');
+    assertType(propertyAccess1.target2, 'A?');
+    assertType(propertyAccess2.target2, 'A?');
 
     assertType(propertyAccess1.propertyName, 'int');
     assertType(propertyAccess2.propertyName, 'int');
@@ -1610,8 +1610,8 @@
 ''');
     var propertyAccess1 = result.findNode.propertyAccess('x; // 1');
     var propertyAccess2 = result.findNode.propertyAccess('x; // 2');
-    assertType(propertyAccess1.target, 'A');
-    assertType(propertyAccess2.target, 'A');
+    assertType(propertyAccess1.target2, 'A');
+    assertType(propertyAccess2.target2, 'A');
 
     assertType(propertyAccess1.propertyName, 'int');
     assertType(propertyAccess2.propertyName, 'int');
@@ -1646,8 +1646,8 @@
 ''');
     var propertyAccess1 = result.findNode.propertyAccess('x; // 1');
     var propertyAccess2 = result.findNode.propertyAccess('x; // 2');
-    assertType(propertyAccess1.target, 'A?');
-    assertType(propertyAccess2.target, 'A?');
+    assertType(propertyAccess1.target2, 'A?');
+    assertType(propertyAccess2.target2, 'A?');
 
     assertType(propertyAccess1.propertyName, 'int');
     assertType(propertyAccess2.propertyName, 'int');
@@ -1682,10 +1682,10 @@
 ''');
     var propertyAccess1 = result.findNode.propertyAccess('x; // 1');
     var propertyAccess2 = result.findNode.propertyAccess('x; // 2');
-    var propertyAccess1t = propertyAccess1.target as PropertyAccess;
-    var propertyAccess2t = propertyAccess1.target as PropertyAccess;
-    assertType(propertyAccess1t.target, 'B?');
-    assertType(propertyAccess2t.target, 'B?');
+    var propertyAccess1t = propertyAccess1.target2 as PropertyAccess;
+    var propertyAccess2t = propertyAccess1.target2 as PropertyAccess;
+    assertType(propertyAccess1t.target2, 'B?');
+    assertType(propertyAccess2t.target2, 'B?');
     assertType(propertyAccess1t, 'A');
     assertType(propertyAccess2t, 'A');
 
diff --git a/pkg/analyzer/test/src/diagnostics/wrong_number_of_type_arguments_extension_test.dart b/pkg/analyzer/test/src/diagnostics/wrong_number_of_type_arguments_extension_test.dart
index 1906edb..f23ac69 100644
--- a/pkg/analyzer/test/src/diagnostics/wrong_number_of_type_arguments_extension_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/wrong_number_of_type_arguments_extension_test.dart
@@ -43,7 +43,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -82,7 +82,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
@@ -128,7 +128,7 @@
     rightBracket: >
   argumentList: ArgumentList
     leftParenthesis: (
-    arguments
+    arguments2
       IntegerLiteral
         literal: 0
         correspondingParameter: <null>
diff --git a/pkg/analyzer/test/src/fasta/recovery/code_order_test.dart b/pkg/analyzer/test/src/fasta/recovery/code_order_test.dart
index cc14f55..0603564 100644
--- a/pkg/analyzer/test/src/fasta/recovery/code_order_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/code_order_test.dart
@@ -834,7 +834,7 @@
                   token: A
                 arguments: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
@@ -1067,12 +1067,12 @@
                   leftBracket: {
                   rightBracket: }
               ExpressionStatement
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: catch
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       SimpleIdentifier
                         token: e
                     rightParenthesis: )
diff --git a/pkg/analyzer/test/src/fasta/recovery/extra_code_test.dart b/pkg/analyzer/test/src/fasta/recovery/extra_code_test.dart
index fec815e..8307b0a 100644
--- a/pkg/analyzer/test/src/fasta/recovery/extra_code_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/extra_code_test.dart
@@ -44,7 +44,7 @@
           VariableDeclaration
             name: annotation
             equals: =
-            initializer: NullLiteral
+            initializer2: NullLiteral
               literal: null
       semicolon: ;
     ClassDeclaration
@@ -74,7 +74,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: InstanceCreationExpression
+              expression2: InstanceCreationExpression
                 keyword: new
                 constructorName: ConstructorName
                   type: NamedType
@@ -153,7 +153,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -182,34 +182,34 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: b
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       NamedArgument
                         name: c
                         colon: :
-                        argumentExpression: MethodInvocation
+                        argumentExpression2: MethodInvocation
                           methodName: SimpleIdentifier
                             token: c
                           argumentList: ArgumentList
                             leftParenthesis: (
-                            arguments
+                            arguments2
                               NamedArgument
                                 name: d
                                 colon: :
-                                argumentExpression: MethodInvocation
+                                argumentExpression2: MethodInvocation
                                   methodName: SimpleIdentifier
                                     token: d
                                   argumentList: ArgumentList
                                     leftParenthesis: (
-                                    arguments
+                                    arguments2
                                       NamedArgument
                                         name: e
                                         colon: :
-                                        argumentExpression: NullLiteral
+                                        argumentExpression2: NullLiteral
                                           literal: null
                                       SimpleIdentifier
                                         token: f
@@ -254,15 +254,15 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BinaryExpression
-                  leftOperand: BinaryExpression
-                    leftOperand: IntegerLiteral
+                condition2: BinaryExpression
+                  leftOperand2: BinaryExpression
+                    leftOperand2: IntegerLiteral
                       literal: 1
                     operator: <
-                    rightOperand: SimpleIdentifier
+                    rightOperand2: SimpleIdentifier
                       token: x
                   operator: <
-                  rightOperand: IntegerLiteral
+                  rightOperand2: IntegerLiteral
                     literal: 3
                 rightParenthesis: )
                 body: Block
@@ -296,7 +296,7 @@
           VariableDeclaration
             name: ints
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               typeArguments: TypeArgumentList
                 leftBracket: <
                 arguments
@@ -335,7 +335,7 @@
           VariableDeclaration
             name: map
             equals: =
-            initializer: SetOrMapLiteral
+            initializer2: SetOrMapLiteral
               typeArguments: TypeArgumentList
                 leftBracket: <
                 arguments
@@ -481,20 +481,20 @@
           VariableDeclaration
             name: v
             equals: =
-            initializer: SetOrMapLiteral
+            initializer2: SetOrMapLiteral
               leftBracket: {
-              elements
+              elements2
                 MapLiteralEntry
-                  key: SimpleStringLiteral
+                  key2: SimpleStringLiteral
                     literal: 'a'
                   separator: :
-                  value: FunctionExpression
+                  value2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: InstanceCreationExpression
+                      expression2: InstanceCreationExpression
                         keyword: new
                         constructorName: ConstructorName
                           type: NamedType
@@ -503,16 +503,16 @@
                           leftParenthesis: (
                           rightParenthesis: )
                 MapLiteralEntry
-                  key: SimpleStringLiteral
+                  key2: SimpleStringLiteral
                     literal: 'b'
                   separator: :
-                  value: FunctionExpression
+                  value2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: InstanceCreationExpression
+                      expression2: InstanceCreationExpression
                         keyword: new
                         constructorName: ConstructorName
                           type: NamedType
@@ -577,7 +577,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 499
           semicolon: ;
 ''');
@@ -613,7 +613,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 499
           semicolon: ;
 ''');
@@ -656,7 +656,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 499
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/invalid_code_test.dart b/pkg/analyzer/test/src/fasta/recovery/invalid_code_test.dart
index 1095701..c5504bf 100644
--- a/pkg/analyzer/test/src/fasta/recovery/invalid_code_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/invalid_code_test.dart
@@ -41,17 +41,17 @@
           VariableDeclaration
             name: fruits
             equals: =
-            initializer: BinaryExpression
-              leftOperand: BinaryExpression
-                leftOperand: SimpleIdentifier
+            initializer2: BinaryExpression
+              leftOperand2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: cont
                 operator: <
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: String
               operator: >
-              rightOperand: ListLiteral
+              rightOperand2: ListLiteral
                 leftBracket: [
-                elements
+                elements2
                   SimpleStringLiteral
                     literal: 'apples'
                   SimpleStringLiteral
@@ -80,7 +80,7 @@
           VariableDeclaration
             name: default
             equals: =
-            initializer: InstanceCreationExpression
+            initializer2: InstanceCreationExpression
               keyword: const
               constructorName: ConstructorName
                 type: NamedType
@@ -116,7 +116,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: ListLiteral
+                expression2: ListLiteral
                   typeArguments: TypeArgumentList
                     leftBracket: <
                     arguments
@@ -124,7 +124,7 @@
                         name: g
                     rightBracket: >
                   leftBracket: [
-                  elements
+                  elements2
                     IntegerLiteral
                       literal: 0
                     IntegerLiteral
@@ -161,7 +161,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: ListLiteral
+                expression2: ListLiteral
                   typeArguments: TypeArgumentList
                     leftBracket: <
                     arguments
@@ -169,7 +169,7 @@
                         name: test
                     rightBracket: >
                   leftBracket: [
-                  elements
+                  elements2
                     IntegerLiteral
                       literal: 0
                     IntegerLiteral
@@ -206,7 +206,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: ListLiteral
+                expression2: ListLiteral
                   typeArguments: TypeArgumentList
                     leftBracket: <
                     arguments
@@ -214,7 +214,7 @@
                         name: test
                     rightBracket: >
                   leftBracket: [
-                  elements
+                  elements2
                     IntegerLiteral
                       literal: 0
                     IntegerLiteral
@@ -261,16 +261,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: f
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       NamedArgument
                         name: with
                         colon: :
-                        argumentExpression: IntegerLiteral
+                        argumentExpression2: IntegerLiteral
                           literal: 3
                     rightParenthesis: )
                 semicolon: ;
@@ -302,7 +302,7 @@
                 name: with
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: }
           rightParenthesis: )
@@ -355,7 +355,7 @@
           VariableDeclaration
             name: allValues
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               leftBracket: [
               rightBracket: ]
       semicolon: ;
diff --git a/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart b/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart
index ca8990a..95b1b53 100644
--- a/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/missing_code_test.dart
@@ -39,9 +39,9 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: ListLiteral
+          expression2: ListLiteral
             leftBracket: [
-            elements
+            elements2
               SimpleIdentifier
                 token: a
               SimpleIdentifier
@@ -71,9 +71,9 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: ListLiteral
+          expression2: ListLiteral
             leftBracket: [
-            elements
+            elements2
               SimpleIdentifier
                 token: a
               SimpleIdentifier
@@ -103,18 +103,18 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: ListLiteral
+          expression2: ListLiteral
             leftBracket: [
-            elements
+            elements2
               SimpleIdentifier
                 token: a
               IfElement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
-                thenElement: SimpleIdentifier
+                thenElement2: SimpleIdentifier
                   token: b
               SimpleIdentifier
                 token: c
@@ -141,21 +141,21 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: ListLiteral
+          expression2: ListLiteral
             leftBracket: [
-            elements
+            elements2
               SimpleIdentifier
                 token: a
               IfElement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
-                thenElement: SimpleIdentifier
+                thenElement2: SimpleIdentifier
                   token: b
                 elseKeyword: else
-                elseElement: SimpleIdentifier
+                elseElement2: SimpleIdentifier
                   token: y
               SimpleIdentifier
                 token: c
@@ -186,26 +186,26 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SetOrMapLiteral
+          expression2: SetOrMapLiteral
             leftBracket: {
-            elements
+            elements2
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: a
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: b
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: c
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: d
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: e
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: f
             rightBracket: }
             isMap: false
@@ -231,32 +231,32 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SetOrMapLiteral
+          expression2: SetOrMapLiteral
             leftBracket: {
-            elements
+            elements2
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: a
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: b
               IfElement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
-                thenElement: MapLiteralEntry
-                  key: SimpleIdentifier
+                thenElement2: MapLiteralEntry
+                  key2: SimpleIdentifier
                     token: c
                   separator: :
-                  value: SimpleIdentifier
+                  value2: SimpleIdentifier
                     token: d
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: e
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: f
             rightBracket: }
             isMap: false
@@ -282,39 +282,39 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SetOrMapLiteral
+          expression2: SetOrMapLiteral
             leftBracket: {
-            elements
+            elements2
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: a
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: b
               IfElement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
-                thenElement: MapLiteralEntry
-                  key: SimpleIdentifier
+                thenElement2: MapLiteralEntry
+                  key2: SimpleIdentifier
                     token: c
                   separator: :
-                  value: SimpleIdentifier
+                  value2: SimpleIdentifier
                     token: d
                 elseKeyword: else
-                elseElement: MapLiteralEntry
-                  key: SimpleIdentifier
+                elseElement2: MapLiteralEntry
+                  key2: SimpleIdentifier
                     token: y
                   separator: :
-                  value: SimpleIdentifier
+                  value2: SimpleIdentifier
                     token: z
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: e
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: f
             rightBracket: }
             isMap: false
@@ -340,14 +340,14 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SetOrMapLiteral
+          expression2: SetOrMapLiteral
             leftBracket: {
-            elements
+            elements2
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: <empty> <synthetic>
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: b
             rightBracket: }
             isMap: false
@@ -373,14 +373,14 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SetOrMapLiteral
+          expression2: SetOrMapLiteral
             leftBracket: {
-            elements
+            elements2
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: a
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: <empty> <synthetic>
             rightBracket: }
             isMap: false
@@ -406,20 +406,20 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SetOrMapLiteral
+          expression2: SetOrMapLiteral
             leftBracket: {
-            elements
+            elements2
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: a
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: <empty> <synthetic>
               MapLiteralEntry
-                key: SimpleIdentifier
+                key2: SimpleIdentifier
                   token: b
                 separator: :
-                value: SimpleIdentifier
+                value2: SimpleIdentifier
                   token: c
             rightBracket: }
             isMap: false
@@ -451,11 +451,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: &
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -499,11 +499,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: &
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -538,7 +538,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: as
           semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -576,8 +576,8 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: AsExpression
-            expression: SimpleIdentifier
+          expression2: AsExpression
+            expression2: SimpleIdentifier
               token: x
             asOperator: as
             type: NamedType
@@ -618,11 +618,11 @@
                       name: x
                 semicolon: ;
               ExpressionStatement
-                expression: AssignmentExpression
-                  leftHandSide: SimpleIdentifier
+                expression2: AssignmentExpression
+                  leftHandSide2: SimpleIdentifier
                     token: x
                   operator: =
-                  rightHandSide: SimpleIdentifier
+                  rightHandSide2: SimpleIdentifier
                     token: <empty> <synthetic>
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -649,11 +649,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: |
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -697,11 +697,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: |
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -740,10 +740,10 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: CascadeExpression
-                  target: SimpleIdentifier
+                expression2: CascadeExpression
+                  target2: SimpleIdentifier
                     token: x
-                  cascadeSections
+                  cascadeSections2
                     PropertyAccess
                       operator: ..
                       propertyName: SimpleIdentifier
@@ -855,14 +855,14 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: ConditionalExpression
-            condition: SimpleIdentifier
+          expression2: ConditionalExpression
+            condition2: SimpleIdentifier
               token: x
             question: ?
-            thenExpression: SimpleIdentifier
+            thenExpression2: SimpleIdentifier
               token: y
             colon: :
-            elseExpression: SimpleIdentifier
+            elseExpression2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -888,14 +888,14 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: ConditionalExpression
-            condition: SimpleIdentifier
+          expression2: ConditionalExpression
+            condition2: SimpleIdentifier
               token: x
             question: ?
-            thenExpression: SimpleIdentifier
+            thenExpression2: SimpleIdentifier
               token: <empty> <synthetic>
             colon: :
-            elseExpression: SimpleIdentifier
+            elseExpression2: SimpleIdentifier
               token: z
           semicolon: ; <synthetic>
 ''');
@@ -921,11 +921,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: ==
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -969,11 +969,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: ==
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1006,7 +1006,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: => <synthetic>
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: x
           semicolon: ;
 ''');
@@ -1038,7 +1038,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: => <synthetic>
-          expression: SimpleIdentifier
+          expression2: SimpleIdentifier
             token: x
           semicolon: ;
 ''');
@@ -1064,11 +1064,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: >
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1112,11 +1112,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: >
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1143,11 +1143,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: >>
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1191,11 +1191,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: >>
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1222,11 +1222,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: >=
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1270,11 +1270,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: >=
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1301,11 +1301,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: ^
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1349,11 +1349,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: ^
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1392,13 +1392,13 @@
               AssertInitializer
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
               AssertInitializer
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
             body: EmptyFunctionBody
@@ -1439,14 +1439,14 @@
               AssertInitializer
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: x
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 2
             body: EmptyFunctionBody
               semicolon: ;
@@ -1486,7 +1486,7 @@
               AssertInitializer
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
               ConstructorFieldInitializer
@@ -1495,7 +1495,7 @@
                 fieldName: SimpleIdentifier
                   token: x
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 2
             body: EmptyFunctionBody
               semicolon: ;
@@ -1529,8 +1529,8 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: IsExpression
-                  expression: SimpleIdentifier
+                expression2: IsExpression
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   isOperator: is
                   type: NamedType
@@ -1576,8 +1576,8 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: IsExpression
-                  expression: SimpleIdentifier
+                expression2: IsExpression
+                  expression2: SimpleIdentifier
                     token: x
                   isOperator: is
                   type: NamedType
@@ -1610,11 +1610,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: <
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1658,11 +1658,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: <
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1689,11 +1689,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: <<
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1737,11 +1737,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: <<
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1768,11 +1768,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: <=
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1816,11 +1816,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: <=
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1847,11 +1847,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: -
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -1895,11 +1895,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: -
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -1934,7 +1934,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2018,11 +2018,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: ??
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: throw
           semicolon: ; <synthetic>
 ''');
@@ -2048,11 +2048,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: %
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -2096,11 +2096,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: %
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -2127,11 +2127,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: +
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -2175,11 +2175,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: +
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -2217,11 +2217,11 @@
                     VariableDeclaration
                       name: v
                       equals: =
-                      initializer: SimpleStringLiteral
+                      initializer2: SimpleStringLiteral
                         literal: 'String'
                 semicolon: ;
               ExpressionStatement
-                expression: PrefixedIdentifier
+                expression2: PrefixedIdentifier
                   prefix: SimpleIdentifier
                     token: v
                   period: .
@@ -2252,11 +2252,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: /
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -2300,11 +2300,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: /
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -2331,11 +2331,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: *
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -2379,11 +2379,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: *
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -2419,19 +2419,19 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: print
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       StringInterpolation
                         elements
                           InterpolationString
                             contents: "
                           InterpolationExpression
                             leftBracket: ${
-                            expression: IntegerLiteral
+                            expression2: IntegerLiteral
                               literal: 42
                             rightBracket: }
                           InterpolationString
@@ -2463,11 +2463,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: BinaryExpression
-            leftOperand: SimpleIdentifier
+          expression2: BinaryExpression
+            leftOperand2: SimpleIdentifier
               token: x
             operator: ~/
-            rightOperand: SimpleIdentifier
+            rightOperand2: SimpleIdentifier
               token: <empty> <synthetic>
           semicolon: ; <synthetic>
 ''');
@@ -2511,11 +2511,11 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: BinaryExpression
-                leftOperand: SuperExpression
+              expression2: BinaryExpression
+                leftOperand2: SuperExpression
                   superKeyword: super
                 operator: ~/
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: <empty> <synthetic>
               semicolon: ; <synthetic>
         rightBracket: }
@@ -2992,7 +2992,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: } <synthetic>
           rightParenthesis: )
@@ -3039,7 +3039,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: } <synthetic>
           rightParenthesis: )
@@ -3150,7 +3150,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: =
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: ] <synthetic>
           rightParenthesis: )
@@ -3196,7 +3196,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: =
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: ] <synthetic>
           rightParenthesis: )
@@ -3286,25 +3286,25 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: MethodInvocation
+                expression2: MethodInvocation
                   methodName: SimpleIdentifier
                     token: g
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BinaryExpression
-                        leftOperand: BinaryExpression
-                          leftOperand: SimpleIdentifier
+                        leftOperand2: BinaryExpression
+                          leftOperand2: SimpleIdentifier
                             token: v1
                           operator: ==
-                          rightOperand: SimpleIdentifier
+                          rightOperand2: SimpleIdentifier
                             token: v2
                         operator: ||
-                        rightOperand: BinaryExpression
-                          leftOperand: SimpleIdentifier
+                        rightOperand2: BinaryExpression
+                          leftOperand2: SimpleIdentifier
                             token: v1
                           operator: ==
-                          rightOperand: SimpleIdentifier
+                          rightOperand2: SimpleIdentifier
                             token: v
                       IntegerLiteral
                         literal: 3
@@ -3339,7 +3339,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: SimpleIdentifier
+                  value2: SimpleIdentifier
                     token: <empty> <synthetic>
             rightDelimiter: }
           rightParenthesis: )
@@ -3384,7 +3384,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: SimpleIdentifier
+                  value2: SimpleIdentifier
                     token: <empty> <synthetic>
               RegularFormalParameter
                 name: b
@@ -3433,7 +3433,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: =
-                  value: SimpleIdentifier
+                  value2: SimpleIdentifier
                     token: <empty> <synthetic>
             rightDelimiter: ]
           rightParenthesis: )
@@ -3478,7 +3478,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: =
-                  value: SimpleIdentifier
+                  value2: SimpleIdentifier
                     token: <empty> <synthetic>
               RegularFormalParameter
                 name: b
@@ -3528,7 +3528,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: =
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: ]
           rightParenthesis: )
@@ -3574,7 +3574,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: =
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: ]
           rightParenthesis: )
@@ -3619,7 +3619,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: :
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: }
           rightParenthesis: )
@@ -3664,7 +3664,7 @@
                 name: a
                 defaultClause: FormalParameterDefaultClause
                   separator: =
-                  value: IntegerLiteral
+                  value2: IntegerLiteral
                     literal: 0
             rightDelimiter: ]
           rightParenthesis: )
@@ -3707,7 +3707,7 @@
               name: a
               defaultClause: FormalParameterDefaultClause
                 separator: :
-                value: IntegerLiteral
+                value2: IntegerLiteral
                   literal: 0
           rightParenthesis: )
         parameters(v1): FormalParameterList
@@ -3747,7 +3747,7 @@
               name: a
               defaultClause: FormalParameterDefaultClause
                 separator: =
-                value: IntegerLiteral
+                value2: IntegerLiteral
                   literal: 0
           rightParenthesis: )
         parameters(v1): FormalParameterList
diff --git a/pkg/analyzer/test/src/fasta/recovery/paired_tokens_test.dart b/pkg/analyzer/test/src/fasta/recovery/paired_tokens_test.dart
index 9d961a8..5dad681 100644
--- a/pkg/analyzer/test/src/fasta/recovery/paired_tokens_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/paired_tokens_test.dart
@@ -297,7 +297,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -334,7 +334,7 @@
           rightParenthesis: ) <synthetic>
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -377,7 +377,7 @@
           rightParenthesis: ) <synthetic>
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -407,7 +407,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -446,7 +446,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -477,7 +477,7 @@
           rightParenthesis: ) <synthetic>
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -517,7 +517,7 @@
           rightParenthesis: ) <synthetic>
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: NullLiteral
+          expression2: NullLiteral
             literal: null
           semicolon: ;
 ''');
@@ -559,11 +559,11 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BinaryExpression
-                  leftOperand: SimpleIdentifier
+                expression2: BinaryExpression
+                  leftOperand2: SimpleIdentifier
                     token: x
                   operator: !=
-                  rightOperand: NullLiteral
+                  rightOperand2: NullLiteral
                     literal: null
                 rightParenthesis: )
                 thenStatement: Block
@@ -606,11 +606,11 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BinaryExpression
-                  leftOperand: SimpleIdentifier
+                expression2: BinaryExpression
+                  leftOperand2: SimpleIdentifier
                     token: x
                   operator: !=
-                  rightOperand: NullLiteral
+                  rightOperand2: NullLiteral
                     literal: null
                 rightParenthesis: )
                 thenStatement: Block
@@ -619,11 +619,11 @@
                     WhileStatement
                       whileKeyword: while
                       leftParenthesis: (
-                      condition: BinaryExpression
-                        leftOperand: SimpleIdentifier
+                      condition2: BinaryExpression
+                        leftOperand2: SimpleIdentifier
                           token: x
                         operator: ==
-                        rightOperand: NullLiteral
+                        rightOperand2: NullLiteral
                           literal: null
                       rightParenthesis: )
                       body: Block
@@ -668,11 +668,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: class
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: C
                 semicolon: ; <synthetic>
               Block
@@ -727,7 +727,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: SimpleIdentifier
+                      expression2: SimpleIdentifier
                         token: y
                       semicolon: ;
             rightBracket: } <synthetic>
@@ -800,7 +800,7 @@
                     VariableDeclaration
                       name: y
                       equals: =
-                      initializer: IntegerLiteral
+                      initializer2: IntegerLiteral
                         literal: 0
                 semicolon: ;
             rightBracket: } <synthetic>
@@ -838,11 +838,11 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IndexExpression
-            target: SimpleIdentifier
+          expression2: IndexExpression
+            target2: SimpleIdentifier
               token: l
             leftBracket: [
-            index: SimpleIdentifier
+            index2: SimpleIdentifier
               token: x
             rightBracket: ] <synthetic>
           semicolon: ; <synthetic>
@@ -876,12 +876,12 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IndexExpression
-            target: SimpleIdentifier
+          expression2: IndexExpression
+            target2: SimpleIdentifier
               token: l
             question: ?
             leftBracket: [
-            index: SimpleIdentifier
+            index2: SimpleIdentifier
               token: x
             rightBracket: ] <synthetic>
           semicolon: ; <synthetic>
@@ -905,18 +905,18 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               leftBracket: [
-              elements
+              elements2
                 ListLiteral
                   leftBracket: [
-                  elements
+                  elements2
                     IntegerLiteral
                       literal: 0
                   rightBracket: ]
                 ListLiteral
                   leftBracket: [
-                  elements
+                  elements2
                     IntegerLiteral
                       literal: 1
                   rightBracket: ]
@@ -942,23 +942,23 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               leftBracket: [
-              elements
+              elements2
                 ListLiteral
                   leftBracket: [
-                  elements
+                  elements2
                     IntegerLiteral
                       literal: 0
                   rightBracket: ]
                 ListLiteral
                   leftBracket: [
-                  elements
+                  elements2
                     IntegerLiteral
                       literal: 1
                     ListLiteral
                       leftBracket: [
-                      elements
+                      elements2
                         IntegerLiteral
                           literal: 2
                       rightBracket: ]
@@ -985,9 +985,9 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               leftBracket: [
-              elements
+              elements2
                 IntegerLiteral
                   literal: 0
                 IntegerLiteral
@@ -1015,9 +1015,9 @@
           VariableDeclaration
             name: x
             equals: =
-            initializer: ListLiteral
+            initializer2: ListLiteral
               leftBracket: [
-              elements
+              elements2
                 IntegerLiteral
                   literal: 0
                 IntegerLiteral
@@ -1066,11 +1066,11 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1111,17 +1111,17 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: ) <synthetic>
                 thenStatement: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BinaryExpression
-                    leftOperand: SimpleIdentifier
+                  condition2: BinaryExpression
+                    leftOperand2: SimpleIdentifier
                       token: x
                     operator: !=
-                    rightOperand: NullLiteral
+                    rightOperand2: NullLiteral
                       literal: null
                   rightParenthesis: )
                   body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/annotation_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/annotation_test.dart
index 4edb2f5..f6ce721 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/annotation_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/annotation_test.dart
@@ -136,7 +136,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -172,7 +172,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -204,7 +204,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -246,7 +246,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -365,7 +365,7 @@
                   token: a
                 arguments: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                   rightParenthesis: ) <synthetic>
@@ -431,7 +431,7 @@
                   token: a
                 arguments: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                   rightParenthesis: ) <synthetic>
@@ -497,7 +497,7 @@
                   token: a
                 arguments: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                   rightParenthesis: ) <synthetic>
@@ -507,7 +507,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -546,7 +546,7 @@
                   token: a
                 arguments: ArgumentList
                   leftParenthesis: (
-                  arguments
+                  arguments2
                     SimpleIdentifier
                       token: int
                     SimpleIdentifier
@@ -560,7 +560,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -673,7 +673,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -843,7 +843,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -975,7 +975,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1216,7 +1216,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1307,7 +1307,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1347,13 +1347,13 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           FunctionExpressionInvocation
-                            function: SimpleIdentifier
+                            function2: SimpleIdentifier
                               token: assert
                             argumentList: ArgumentList
                               leftParenthesis: (
-                              arguments
+                              arguments2
                                 BooleanLiteral
                                   literal: true
                               rightParenthesis: )
@@ -1398,7 +1398,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SetOrMapLiteral
                             leftBracket: {
                             rightBracket: }
@@ -1446,7 +1446,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -1495,7 +1495,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -1543,7 +1543,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -1558,7 +1558,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1640,7 +1640,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -1699,7 +1699,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -1710,7 +1710,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1752,11 +1752,11 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           NamedArgument
                             name: l
                             colon: :
-                            argumentExpression: SetOrMapLiteral
+                            argumentExpression2: SetOrMapLiteral
                               leftBracket: {
                               rightBracket: }
                               isMap: false
@@ -1803,7 +1803,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           FunctionExpression
                             parameters: FormalParameterList
                               leftParenthesis: (
@@ -1855,7 +1855,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           FunctionExpression
                             parameters: FormalParameterList
                               leftParenthesis: (
@@ -1904,7 +1904,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -1949,7 +1949,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -1993,11 +1993,11 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SwitchExpression
                             switchKeyword: switch
                             leftParenthesis: (
-                            expression: SimpleIdentifier
+                            expression2: SimpleIdentifier
                               token: x
                             rightParenthesis: )
                             leftBracket: {
@@ -2044,7 +2044,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -2098,7 +2098,7 @@
                         token: a
                       arguments: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           SimpleIdentifier
                             token: <empty> <synthetic>
                         rightParenthesis: ) <synthetic>
@@ -2109,7 +2109,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2166,7 +2166,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2234,7 +2234,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2315,7 +2315,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2406,7 +2406,7 @@
           VariableDeclaration
             name: A
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: B
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -2545,7 +2545,7 @@
             token: a
           arguments: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: <empty> <synthetic>
             rightParenthesis: ) <synthetic>
@@ -2555,7 +2555,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2683,7 +2683,7 @@
             token: a
           arguments: ArgumentList
             leftParenthesis: (
-            arguments
+            arguments2
               SimpleIdentifier
                 token: <empty> <synthetic>
             rightParenthesis: ) <synthetic>
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/assert_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/assert_statement_test.dart
index 4fd0fc4..376b19f 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/assert_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/assert_statement_test.dart
@@ -39,15 +39,15 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                message2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -82,10 +82,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SetOrMapLiteral
+                message2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
@@ -123,10 +123,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -165,10 +165,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -206,10 +206,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -220,7 +220,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -253,7 +253,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -288,10 +288,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -340,17 +340,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -387,15 +387,15 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: l
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -432,10 +432,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: FunctionExpression
+                message2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -476,10 +476,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: FunctionExpression
+                message2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -520,10 +520,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -564,10 +564,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ;
@@ -600,13 +600,13 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SwitchExpression
+                message2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -644,10 +644,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -691,17 +691,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -736,14 +736,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -776,7 +776,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -814,7 +814,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -852,7 +852,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -888,7 +888,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -899,7 +899,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -932,7 +932,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -965,7 +965,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1012,14 +1012,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1054,7 +1054,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1095,7 +1095,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1141,7 +1141,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1187,7 +1187,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1227,7 +1227,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1263,14 +1263,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1304,7 +1304,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1346,14 +1346,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1388,14 +1388,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1428,7 +1428,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1465,7 +1465,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1502,7 +1502,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1538,7 +1538,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1549,7 +1549,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1582,7 +1582,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1615,7 +1615,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1662,14 +1662,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1704,7 +1704,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1745,7 +1745,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1791,7 +1791,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1837,7 +1837,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1877,7 +1877,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1913,14 +1913,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1954,7 +1954,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1996,14 +1996,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2036,12 +2036,12 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                condition2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -2076,7 +2076,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SetOrMapLiteral
+                condition2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
@@ -2114,7 +2114,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2153,7 +2153,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2191,7 +2191,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2202,7 +2202,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2236,7 +2236,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2271,7 +2271,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2320,14 +2320,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2364,12 +2364,12 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: l
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -2406,7 +2406,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: FunctionExpression
+                condition2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2447,7 +2447,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: FunctionExpression
+                condition2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2488,7 +2488,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2529,7 +2529,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ;
@@ -2562,10 +2562,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SwitchExpression
+                condition2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -2603,7 +2603,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2647,14 +2647,14 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2689,17 +2689,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2732,10 +2732,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2773,10 +2773,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2814,10 +2814,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2853,10 +2853,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2867,7 +2867,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2900,10 +2900,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2936,10 +2936,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2986,17 +2986,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -3031,10 +3031,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3075,10 +3075,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3124,10 +3124,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3173,10 +3173,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3216,10 +3216,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3255,17 +3255,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3299,10 +3299,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3344,17 +3344,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -3387,17 +3387,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3428,10 +3428,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3467,10 +3467,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3506,10 +3506,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3543,10 +3543,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3557,7 +3557,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3588,10 +3588,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3622,10 +3622,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3670,17 +3670,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -3713,10 +3713,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3755,10 +3755,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3802,10 +3802,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3849,10 +3849,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3890,10 +3890,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3927,17 +3927,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3969,10 +3969,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -4012,17 +4012,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -4057,17 +4057,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4100,10 +4100,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4141,10 +4141,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4182,10 +4182,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4221,10 +4221,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4235,7 +4235,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4268,10 +4268,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4304,10 +4304,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4354,17 +4354,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -4399,10 +4399,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4443,10 +4443,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4492,10 +4492,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4541,10 +4541,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4584,10 +4584,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4623,17 +4623,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -4667,10 +4667,10 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4712,17 +4712,17 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 comma: ,
-                message: SimpleIdentifier
+                message2: SimpleIdentifier
                   token: b
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/break_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/break_statement_test.dart
index f2109a9..f5c3deb 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/break_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/break_statement_test.dart
@@ -43,7 +43,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -179,7 +179,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -284,7 +284,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -323,7 +323,7 @@
                   name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -507,7 +507,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -580,7 +580,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -618,7 +618,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -758,7 +758,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -866,7 +866,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1093,7 +1093,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1168,7 +1168,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/class_declaration_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/class_declaration_test.dart
index 361bb2d..1d68e4c 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/class_declaration_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/class_declaration_test.dart
@@ -83,7 +83,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -187,7 +187,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -289,7 +289,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -528,7 +528,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -629,7 +629,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -736,7 +736,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -973,7 +973,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1071,7 +1071,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1184,7 +1184,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1419,7 +1419,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1520,7 +1520,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1624,7 +1624,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1868,7 +1868,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1969,7 +1969,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2077,7 +2077,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2307,7 +2307,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2402,7 +2402,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2504,7 +2504,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2724,7 +2724,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2816,7 +2816,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2923,7 +2923,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3148,7 +3148,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3246,7 +3246,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3359,7 +3359,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3600,7 +3600,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3710,7 +3710,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3827,7 +3827,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4077,7 +4077,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4184,7 +4184,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4306,7 +4306,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4559,7 +4559,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4669,7 +4669,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4785,7 +4785,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5035,7 +5035,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5142,7 +5142,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5264,7 +5264,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5527,7 +5527,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5652,7 +5652,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5784,7 +5784,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -6064,7 +6064,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6186,7 +6186,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6324,7 +6324,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -6595,7 +6595,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6702,7 +6702,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6824,7 +6824,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -7069,7 +7069,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -7167,7 +7167,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -7272,7 +7272,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -7498,7 +7498,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -7593,7 +7593,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -7703,7 +7703,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -7936,7 +7936,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -8040,7 +8040,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -8151,7 +8151,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -8389,7 +8389,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -8490,7 +8490,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -8606,7 +8606,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -8918,7 +8918,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -9010,7 +9010,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -9211,7 +9211,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -9291,7 +9291,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -9386,7 +9386,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -9597,7 +9597,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -9698,7 +9698,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -9806,7 +9806,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/constructor_declaration_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/constructor_declaration_test.dart
index 8e06bb6..8f5b90a 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/constructor_declaration_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/constructor_declaration_test.dart
@@ -47,7 +47,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -98,7 +98,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -149,7 +149,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -188,7 +188,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -234,7 +234,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -247,7 +247,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -283,7 +283,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -296,7 +296,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -332,7 +332,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -345,7 +345,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -381,7 +381,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -404,7 +404,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -440,7 +440,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -498,7 +498,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -557,7 +557,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -598,7 +598,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -646,7 +646,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -699,13 +699,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -758,13 +758,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -805,13 +805,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -859,13 +859,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -878,7 +878,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -916,13 +916,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -935,7 +935,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -973,13 +973,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: int
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -990,7 +990,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1028,13 +1028,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: int
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1055,7 +1055,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1093,13 +1093,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1159,13 +1159,13 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
               ConstructorFieldInitializer
                 fieldName: SimpleIdentifier
                   token: set
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1223,7 +1223,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1264,7 +1264,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1312,7 +1312,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1325,7 +1325,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1363,7 +1363,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1376,7 +1376,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1414,7 +1414,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1427,7 +1427,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1465,8 +1465,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1520,8 +1520,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1563,8 +1563,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1613,8 +1613,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1628,7 +1628,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1666,8 +1666,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1681,7 +1681,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1719,8 +1719,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1734,7 +1734,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1772,8 +1772,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1797,7 +1797,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1835,8 +1835,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1897,8 +1897,8 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: PostfixExpression
-                  operand: SimpleIdentifier
+                expression2: PostfixExpression
+                  operand2: SimpleIdentifier
                     token: f
                   operator: ++
             body: BlockFunctionBody
@@ -1958,7 +1958,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -1981,7 +1981,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2019,7 +2019,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -2079,7 +2079,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -2138,7 +2138,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -2151,7 +2151,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2189,7 +2189,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -2202,7 +2202,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2240,7 +2240,7 @@
                 fieldName: SimpleIdentifier
                   token: int
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -2251,7 +2251,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2289,7 +2289,7 @@
                 fieldName: SimpleIdentifier
                   token: int
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -2310,7 +2310,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2348,7 +2348,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -2406,7 +2406,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2455,7 +2455,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2492,7 +2492,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2536,7 +2536,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2547,7 +2547,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2583,7 +2583,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2594,7 +2594,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2630,7 +2630,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2641,7 +2641,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2677,7 +2677,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2698,7 +2698,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2734,7 +2734,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2790,7 +2790,7 @@
                 fieldName: SimpleIdentifier
                   token: <empty> <synthetic>
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: EmptyFunctionBody
               semicolon: ;
@@ -2847,7 +2847,7 @@
                 fieldName: SimpleIdentifier
                   token: set
                 equals: = <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
             body: BlockFunctionBody
               block: Block
@@ -3113,7 +3113,7 @@
                 fieldName: SimpleIdentifier
                   token: f
                 equals: =
-                expression: IntegerLiteral
+                expression2: IntegerLiteral
                   literal: 0
             body: EmptyFunctionBody
               semicolon: ;
@@ -3167,7 +3167,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3217,7 +3217,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3277,7 +3277,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3532,7 +3532,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3581,7 +3581,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3630,7 +3630,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3689,7 +3689,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3952,7 +3952,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4006,7 +4006,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4058,7 +4058,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4120,7 +4120,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/continue_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/continue_statement_test.dart
index 81edbc9..fe6bb59 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/continue_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/continue_statement_test.dart
@@ -43,7 +43,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -179,7 +179,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -284,7 +284,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -325,7 +325,7 @@
                   name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -511,7 +511,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -584,7 +584,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -624,7 +624,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -772,7 +772,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -886,7 +886,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1125,7 +1125,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1204,7 +1204,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/do_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/do_statement_test.dart
index 7bc77e5..8167156 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/do_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/do_statement_test.dart
@@ -45,14 +45,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -89,7 +89,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -131,7 +131,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -173,7 +173,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -213,7 +213,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -224,7 +224,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -261,7 +261,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -298,7 +298,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -349,14 +349,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -395,7 +395,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -440,7 +440,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -490,7 +490,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -540,7 +540,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -584,7 +584,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -624,14 +624,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -669,7 +669,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -715,14 +715,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -761,13 +761,13 @@
                 body: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -806,7 +806,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -845,7 +845,7 @@
                   semicolon: ;
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -884,7 +884,7 @@
                   semicolon: ;
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -925,13 +925,13 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -966,12 +966,12 @@
               DoStatement
                 doKeyword: do
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1021,7 +1021,7 @@
                     rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1058,7 +1058,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -1066,7 +1066,7 @@
                     rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1110,7 +1110,7 @@
                     rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1159,7 +1159,7 @@
                           rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1208,7 +1208,7 @@
                           rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1251,7 +1251,7 @@
                   semicolon: ;
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1290,7 +1290,7 @@
                   semicolon: ;
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1327,14 +1327,14 @@
                 body: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1379,7 +1379,7 @@
                     rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1416,7 +1416,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -1424,7 +1424,7 @@
                     rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1465,14 +1465,14 @@
                     AssertStatement
                       assertKeyword: assert
                       leftParenthesis: (
-                      condition: BooleanLiteral
+                      condition2: BooleanLiteral
                         literal: true
                       rightParenthesis: )
                       semicolon: ;
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1516,7 +1516,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1560,7 +1560,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1604,7 +1604,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1649,14 +1649,14 @@
                         rightBracket: }
                       whileKeyword: while
                       leftParenthesis: (
-                      condition: BooleanLiteral
+                      condition2: BooleanLiteral
                         literal: true
                       rightParenthesis: )
                       semicolon: ;
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1696,7 +1696,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1751,7 +1751,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1792,7 +1792,7 @@
                     IfStatement
                       ifKeyword: if
                       leftParenthesis: (
-                      expression: BooleanLiteral
+                      expression2: BooleanLiteral
                         literal: true
                       rightParenthesis: )
                       thenStatement: Block
@@ -1801,7 +1801,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1850,7 +1850,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1904,7 +1904,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -1958,7 +1958,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2006,7 +2006,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2050,7 +2050,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2091,7 +2091,7 @@
                     SwitchStatement
                       switchKeyword: switch
                       leftParenthesis: (
-                      expression: SimpleIdentifier
+                      expression2: SimpleIdentifier
                         token: x
                       rightParenthesis: )
                       leftBracket: {
@@ -2099,7 +2099,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2149,7 +2149,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2190,7 +2190,7 @@
                     WhileStatement
                       whileKeyword: while
                       leftParenthesis: (
-                      condition: BooleanLiteral
+                      condition2: BooleanLiteral
                         literal: true
                       rightParenthesis: )
                       body: Block
@@ -2199,7 +2199,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2234,12 +2234,12 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                condition2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -2278,7 +2278,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SetOrMapLiteral
+                condition2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
@@ -2320,7 +2320,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2363,7 +2363,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2405,7 +2405,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2416,7 +2416,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2454,7 +2454,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2493,7 +2493,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2546,14 +2546,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2594,12 +2594,12 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: l
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -2640,7 +2640,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: FunctionExpression
+                condition2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2685,7 +2685,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: FunctionExpression
+                condition2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2730,7 +2730,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2775,7 +2775,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ;
@@ -2812,10 +2812,10 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SwitchExpression
+                condition2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -2857,7 +2857,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -2905,14 +2905,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2953,14 +2953,14 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2999,7 +2999,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3042,7 +3042,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3085,7 +3085,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3127,7 +3127,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3138,7 +3138,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3177,7 +3177,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3216,7 +3216,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3269,14 +3269,14 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -3317,7 +3317,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3364,7 +3364,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3416,7 +3416,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3468,7 +3468,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3514,7 +3514,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3556,14 +3556,14 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3603,7 +3603,7 @@
                   rightBracket: }
                 whileKeyword: while <synthetic>
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -3647,7 +3647,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3685,14 +3685,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3727,7 +3727,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3767,7 +3767,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3807,7 +3807,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3845,7 +3845,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3856,7 +3856,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3891,7 +3891,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3926,7 +3926,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -3975,14 +3975,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -4019,7 +4019,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -4062,7 +4062,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -4110,7 +4110,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -4158,7 +4158,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -4200,7 +4200,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -4238,14 +4238,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -4281,7 +4281,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
@@ -4325,14 +4325,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -4372,14 +4372,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4417,7 +4417,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4459,7 +4459,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4501,7 +4501,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4542,7 +4542,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4553,7 +4553,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4591,7 +4591,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4629,7 +4629,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4681,14 +4681,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -4728,7 +4728,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4774,7 +4774,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4825,7 +4825,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4876,7 +4876,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4921,7 +4921,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -4962,14 +4962,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -5008,7 +5008,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
@@ -5055,14 +5055,14 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/enum_declaration_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/enum_declaration_test.dart
index 5a67af1..14ac1c7 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/enum_declaration_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/enum_declaration_test.dart
@@ -85,7 +85,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -187,7 +187,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -301,7 +301,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -423,7 +423,7 @@
           VariableDeclaration
             name: A
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: B
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -542,7 +542,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -631,7 +631,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -735,7 +735,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -958,7 +958,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1058,7 +1058,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1174,7 +1174,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1409,7 +1409,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1504,7 +1504,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1614,7 +1614,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1912,7 +1912,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1994,7 +1994,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2205,7 +2205,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2294,7 +2294,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2396,7 +2396,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2506,7 +2506,7 @@
           VariableDeclaration
             name: A
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: B
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -2615,7 +2615,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2695,7 +2695,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2790,7 +2790,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2987,7 +2987,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3067,7 +3067,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3162,7 +3162,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3365,7 +3365,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3453,7 +3453,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3557,7 +3557,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/export_directive_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/export_directive_test.dart
index e4321bbd..98b2a3d 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/export_directive_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/export_directive_test.dart
@@ -65,7 +65,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -164,7 +164,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -256,7 +256,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -509,7 +509,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -640,7 +640,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -748,7 +748,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1053,7 +1053,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1192,7 +1192,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1306,7 +1306,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1619,7 +1619,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1750,7 +1750,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1866,7 +1866,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2163,7 +2163,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2286,7 +2286,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2396,7 +2396,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2695,7 +2695,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2846,7 +2846,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2969,7 +2969,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3286,7 +3286,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3389,7 +3389,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3484,7 +3484,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3743,7 +3743,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3874,7 +3874,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3982,7 +3982,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4287,7 +4287,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4426,7 +4426,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4540,7 +4540,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4853,7 +4853,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4984,7 +4984,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5100,7 +5100,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5411,7 +5411,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5562,7 +5562,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5685,7 +5685,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -6012,7 +6012,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6135,7 +6135,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6245,7 +6245,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -6518,7 +6518,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6617,7 +6617,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6709,7 +6709,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/extension_declaration_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/extension_declaration_test.dart
index f1ae49c..82c4e31 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/extension_declaration_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/extension_declaration_test.dart
@@ -73,7 +73,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -162,7 +162,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -266,7 +266,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -574,7 +574,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -673,7 +673,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -885,7 +885,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -983,7 +983,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1087,7 +1087,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1322,7 +1322,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1414,7 +1414,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1512,7 +1512,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1730,7 +1730,7 @@
                 VariableDeclaration
                   name: a
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: } <synthetic>
@@ -1809,7 +1809,7 @@
                 VariableDeclaration
                   name: a
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: } <synthetic>
@@ -1910,7 +1910,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: } <synthetic>
@@ -2032,7 +2032,7 @@
                 VariableDeclaration
                   name: A
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: B
             semicolon: ; <synthetic>
           MethodDeclaration
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/field_declaration_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/field_declaration_test.dart
index 0ec589b..a632c27 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/field_declaration_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/field_declaration_test.dart
@@ -42,7 +42,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -87,7 +87,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -120,7 +120,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -160,8 +160,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -170,7 +170,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -203,7 +203,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -213,7 +213,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -244,7 +244,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -252,7 +252,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -283,7 +283,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -297,7 +297,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -330,7 +330,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -375,7 +375,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -423,7 +423,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -466,7 +466,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -497,7 +497,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -535,7 +535,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -545,7 +545,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -576,7 +576,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -586,7 +586,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -617,7 +617,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -627,7 +627,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -658,7 +658,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -678,7 +678,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -709,7 +709,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -759,7 +759,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -918,7 +918,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -956,7 +956,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -994,7 +994,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1042,7 +1042,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1261,7 +1261,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1292,7 +1292,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1323,7 +1323,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1364,7 +1364,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1476,7 +1476,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -1521,7 +1521,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -1554,7 +1554,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -1594,8 +1594,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -1604,7 +1604,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -1637,7 +1637,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -1647,7 +1647,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1678,7 +1678,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -1686,7 +1686,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1717,7 +1717,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -1731,7 +1731,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -1764,7 +1764,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -1809,7 +1809,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -1857,7 +1857,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -1900,7 +1900,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -1931,7 +1931,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -1969,7 +1969,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -1979,7 +1979,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2010,7 +2010,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -2020,7 +2020,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2051,7 +2051,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -2061,7 +2061,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2092,7 +2092,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -2112,7 +2112,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2143,7 +2143,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -2193,7 +2193,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -2352,7 +2352,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2390,7 +2390,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2428,7 +2428,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2476,7 +2476,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2695,7 +2695,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2726,7 +2726,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2757,7 +2757,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2798,7 +2798,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2911,7 +2911,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -2957,7 +2957,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -2991,7 +2991,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -3032,8 +3032,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -3042,7 +3042,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -3076,7 +3076,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -3086,7 +3086,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3118,7 +3118,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -3126,7 +3126,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3158,7 +3158,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -3172,7 +3172,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -3206,7 +3206,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -3252,7 +3252,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -3301,7 +3301,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -3345,7 +3345,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -3377,7 +3377,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -3416,7 +3416,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -3426,7 +3426,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3458,7 +3458,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -3468,7 +3468,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3500,7 +3500,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -3510,7 +3510,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3542,7 +3542,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -3562,7 +3562,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3594,7 +3594,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -3645,7 +3645,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -3808,7 +3808,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3847,7 +3847,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3886,7 +3886,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3935,7 +3935,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4160,7 +4160,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4192,7 +4192,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4224,7 +4224,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4266,7 +4266,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4381,7 +4381,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -4427,7 +4427,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -4461,7 +4461,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -4502,8 +4502,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -4512,7 +4512,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -4546,7 +4546,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -4556,7 +4556,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4588,7 +4588,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -4596,7 +4596,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4628,7 +4628,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -4642,7 +4642,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -4676,7 +4676,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -4722,7 +4722,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -4771,7 +4771,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -4815,7 +4815,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -4847,7 +4847,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -4886,7 +4886,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -4896,7 +4896,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4928,7 +4928,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -4938,7 +4938,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4970,7 +4970,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -4980,7 +4980,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5012,7 +5012,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -5032,7 +5032,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5064,7 +5064,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -5115,7 +5115,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -5278,7 +5278,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -5317,7 +5317,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -5356,7 +5356,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5405,7 +5405,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5630,7 +5630,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -5662,7 +5662,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -5694,7 +5694,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5736,7 +5736,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5852,7 +5852,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -5899,7 +5899,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -5934,7 +5934,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -5976,8 +5976,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -5986,7 +5986,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -6021,7 +6021,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -6031,7 +6031,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -6064,7 +6064,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -6072,7 +6072,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6105,7 +6105,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -6119,7 +6119,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -6154,7 +6154,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -6201,7 +6201,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -6251,7 +6251,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -6296,7 +6296,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -6329,7 +6329,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -6369,7 +6369,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -6379,7 +6379,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -6412,7 +6412,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -6422,7 +6422,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -6455,7 +6455,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -6465,7 +6465,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6498,7 +6498,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -6518,7 +6518,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6551,7 +6551,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -6603,7 +6603,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -6770,7 +6770,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -6810,7 +6810,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -6850,7 +6850,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6900,7 +6900,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7142,7 +7142,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7181,7 +7181,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7219,7 +7219,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7267,7 +7267,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7389,7 +7389,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -7435,7 +7435,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -7469,7 +7469,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -7510,8 +7510,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -7520,7 +7520,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -7554,7 +7554,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -7564,7 +7564,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7596,7 +7596,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -7604,7 +7604,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7636,7 +7636,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -7650,7 +7650,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -7684,7 +7684,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -7730,7 +7730,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -7779,7 +7779,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -7823,7 +7823,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -7855,7 +7855,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -7894,7 +7894,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -7904,7 +7904,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7936,7 +7936,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -7946,7 +7946,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7978,7 +7978,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -7988,7 +7988,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8020,7 +8020,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -8040,7 +8040,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8072,7 +8072,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -8123,7 +8123,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -8286,7 +8286,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -8325,7 +8325,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -8366,7 +8366,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8417,7 +8417,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8642,7 +8642,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -8674,7 +8674,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -8706,7 +8706,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8748,7 +8748,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8863,7 +8863,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -8909,7 +8909,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -8943,7 +8943,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -8984,8 +8984,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -8994,7 +8994,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -9028,7 +9028,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -9038,7 +9038,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9070,7 +9070,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -9078,7 +9078,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9110,7 +9110,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -9124,7 +9124,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -9158,7 +9158,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -9204,7 +9204,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -9253,7 +9253,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -9297,7 +9297,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -9329,7 +9329,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -9368,7 +9368,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -9378,7 +9378,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9410,7 +9410,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -9420,7 +9420,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9452,7 +9452,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -9462,7 +9462,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9494,7 +9494,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -9514,7 +9514,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9546,7 +9546,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -9597,7 +9597,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -9817,7 +9817,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9860,7 +9860,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9899,7 +9899,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9948,7 +9948,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10152,7 +10152,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -10191,7 +10191,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -10230,7 +10230,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10279,7 +10279,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10515,7 +10515,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -10553,7 +10553,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -10590,7 +10590,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10637,7 +10637,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10756,7 +10756,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -10801,7 +10801,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
         rightBracket: }
@@ -10834,7 +10834,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -10874,8 +10874,8 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: AssignmentExpression
-                    leftHandSide: InstanceCreationExpression
+                  initializer2: AssignmentExpression
+                    leftHandSide2: InstanceCreationExpression
                       keyword: const
                       constructorName: ConstructorName
                         type: NamedType
@@ -10884,7 +10884,7 @@
                         leftParenthesis: ( <synthetic>
                         rightParenthesis: ) <synthetic>
                     operator: =
-                    rightHandSide: IntegerLiteral
+                    rightHandSide2: IntegerLiteral
                       literal: 0
             semicolon: ;
         rightBracket: }
@@ -10917,7 +10917,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: <empty> <synthetic>
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -10927,7 +10927,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -10958,7 +10958,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: int
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -10966,7 +10966,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10997,7 +10997,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -11011,7 +11011,7 @@
                       rightParenthesis: )
                     body: ExpressionFunctionBody
                       functionDefinition: =>
-                      expression: IntegerLiteral
+                      expression2: IntegerLiteral
                         literal: 0
             semicolon: ;
         rightBracket: }
@@ -11044,7 +11044,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: FunctionExpression
+                  initializer2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       requiredPositionalFormalParameters
@@ -11089,7 +11089,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: SimpleIdentifier
+                  initializer2: SimpleIdentifier
                     token: set
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -11137,7 +11137,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -11180,7 +11180,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
         rightBracket: }
@@ -11211,7 +11211,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -11249,7 +11249,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -11259,7 +11259,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -11290,7 +11290,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           FieldDeclaration
@@ -11300,7 +11300,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -11331,7 +11331,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -11341,7 +11341,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -11372,7 +11372,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -11392,7 +11392,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -11423,7 +11423,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -11473,7 +11473,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ; <synthetic>
           MethodDeclaration
@@ -11688,7 +11688,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -11730,7 +11730,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -11768,7 +11768,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -11816,7 +11816,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -12015,7 +12015,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -12053,7 +12053,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -12093,7 +12093,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -12143,7 +12143,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -12362,7 +12362,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -12393,7 +12393,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -12424,7 +12424,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -12465,7 +12465,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/for_each_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/for_each_statement_test.dart
index 834b0e0..5e4cb06 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/for_each_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/for_each_statement_test.dart
@@ -48,11 +48,11 @@
                     name: a
                   inKeyword: in
                   iterable: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
@@ -103,7 +103,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -239,7 +239,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -285,7 +285,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -385,7 +385,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -434,11 +434,11 @@
                     token: l
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -494,7 +494,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -547,7 +547,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -681,14 +681,14 @@
                   iterable: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
                     rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -783,7 +783,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -826,13 +826,13 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -873,7 +873,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               Block
@@ -917,7 +917,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               BreakStatement
@@ -961,7 +961,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ContinueStatement
@@ -1004,7 +1004,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               DoStatement
@@ -1014,7 +1014,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1055,7 +1055,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1095,7 +1095,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ForStatement
@@ -1149,13 +1149,13 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1198,7 +1198,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               LabeledStatement
@@ -1246,7 +1246,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -1299,7 +1299,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -1352,7 +1352,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -1399,7 +1399,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ReturnStatement
@@ -1442,13 +1442,13 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1490,7 +1490,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               TryStatement
@@ -1539,13 +1539,13 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1585,12 +1585,12 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                  initialization2: FunctionExpressionInvocation
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
@@ -1600,7 +1600,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1646,7 +1646,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1779,7 +1779,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -1824,7 +1824,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1922,7 +1922,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -1972,7 +1972,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2025,7 +2025,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2078,7 +2078,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2126,7 +2126,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2166,7 +2166,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ;
                   condition: SimpleIdentifier
@@ -2174,7 +2174,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2220,7 +2220,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2313,7 +2313,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -2360,7 +2360,7 @@
                 body: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -2532,7 +2532,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -2578,7 +2578,7 @@
                     token: b
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2674,7 +2674,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -2955,7 +2955,7 @@
                 body: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -3048,7 +3048,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -3092,11 +3092,11 @@
                     name: a
                   inKeyword: in <synthetic>
                   iterable: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
@@ -3149,7 +3149,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3288,7 +3288,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -3335,7 +3335,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3437,7 +3437,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -3487,11 +3487,11 @@
                     token: l
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -3549,7 +3549,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3604,7 +3604,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3742,14 +3742,14 @@
                   iterable: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
                     rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3846,7 +3846,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -3888,11 +3888,11 @@
                     token: a
                   inKeyword: in <synthetic>
                   iterable: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
@@ -3943,7 +3943,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4076,7 +4076,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -4121,7 +4121,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4219,7 +4219,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -4271,7 +4271,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4325,7 +4325,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4378,7 +4378,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4510,14 +4510,14 @@
                   iterable: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
                     rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4610,7 +4610,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -4649,11 +4649,11 @@
                     name: a
                   inKeyword: in
                   iterable: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
@@ -4701,7 +4701,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4828,7 +4828,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -4871,7 +4871,7 @@
                     token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4965,7 +4965,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -5011,11 +5011,11 @@
                     token: l
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -5068,7 +5068,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5118,7 +5118,7 @@
                         rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5243,14 +5243,14 @@
                   iterable: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
                     rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5339,7 +5339,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -5383,7 +5383,7 @@
                 body: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -5543,7 +5543,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -5586,7 +5586,7 @@
                     token: b
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5676,7 +5676,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -5939,7 +5939,7 @@
                 body: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -6026,7 +6026,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/for_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/for_statement_test.dart
index 8e7cea7..46b222a 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/for_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/for_statement_test.dart
@@ -42,7 +42,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -52,7 +52,7 @@
                 body: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -86,7 +86,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -126,7 +126,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -166,7 +166,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -206,7 +206,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -220,7 +220,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -257,7 +257,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -265,7 +265,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: )
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -298,7 +298,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -349,7 +349,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -359,7 +359,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -395,7 +395,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -440,7 +440,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -490,7 +490,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -540,7 +540,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -584,7 +584,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -624,7 +624,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -634,7 +634,7 @@
                 body: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -669,7 +669,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -715,7 +715,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -725,7 +725,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -768,12 +768,12 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: FunctionExpressionInvocation
-                          function: SimpleIdentifier
+                        initializer2: FunctionExpressionInvocation
+                          function2: SimpleIdentifier
                             token: assert
                           argumentList: ArgumentList
                             leftParenthesis: (
-                            arguments
+                            arguments2
                               BooleanLiteral
                                 literal: true
                             rightParenthesis: )
@@ -783,7 +783,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -823,7 +823,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SetOrMapLiteral
+                        initializer2: SetOrMapLiteral
                           leftBracket: {
                           rightBracket: }
                           isMap: false
@@ -833,7 +833,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -878,18 +878,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -934,18 +934,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -990,18 +990,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1041,7 +1041,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -1049,7 +1049,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1094,18 +1094,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1150,18 +1150,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1209,7 +1209,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1251,7 +1251,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: FunctionExpression
+                        initializer2: FunctionExpression
                           parameters: FormalParameterList
                             leftParenthesis: (
                             rightParenthesis: )
@@ -1265,7 +1265,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1307,7 +1307,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: FunctionExpression
+                        initializer2: FunctionExpression
                           parameters: FormalParameterList
                             leftParenthesis: (
                             rightParenthesis: )
@@ -1321,7 +1321,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1366,18 +1366,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1420,7 +1420,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ;
                   condition: SimpleIdentifier
@@ -1428,7 +1428,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1468,10 +1468,10 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SwitchExpression
+                        initializer2: SwitchExpression
                           switchKeyword: switch
                           leftParenthesis: (
-                          expression: SimpleIdentifier
+                          expression2: SimpleIdentifier
                             token: x
                           rightParenthesis: )
                           leftBracket: {
@@ -1482,7 +1482,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1527,18 +1527,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1583,18 +1583,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: SimpleIdentifier
+                        initializer2: SimpleIdentifier
                           token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1634,22 +1634,22 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1689,7 +1689,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SetOrMapLiteral
@@ -1699,7 +1699,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1744,18 +1744,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1800,18 +1800,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1856,18 +1856,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1907,7 +1907,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
@@ -1915,7 +1915,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1960,18 +1960,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2016,18 +2016,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2072,18 +2072,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: l
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2125,7 +2125,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: FunctionExpression
@@ -2139,7 +2139,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2181,7 +2181,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: FunctionExpression
@@ -2195,7 +2195,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2240,18 +2240,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2294,7 +2294,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
@@ -2302,7 +2302,7 @@
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2342,13 +2342,13 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
@@ -2356,7 +2356,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2401,18 +2401,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2457,18 +2457,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2510,22 +2510,22 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2567,7 +2567,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SetOrMapLiteral
@@ -2577,7 +2577,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2622,18 +2622,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2678,18 +2678,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2734,18 +2734,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2785,7 +2785,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -2793,7 +2793,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2838,18 +2838,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2894,18 +2894,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -2952,18 +2952,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: l
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3007,7 +3007,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: FunctionExpression
@@ -3021,7 +3021,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3065,7 +3065,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: FunctionExpression
@@ -3079,7 +3079,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3124,18 +3124,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3180,7 +3180,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -3188,7 +3188,7 @@
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3230,13 +3230,13 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
@@ -3244,7 +3244,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3289,18 +3289,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3345,18 +3345,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3391,13 +3391,13 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3433,7 +3433,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               Block
@@ -3472,7 +3472,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               BreakStatement
@@ -3511,7 +3511,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ContinueStatement
@@ -3549,7 +3549,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               DoStatement
@@ -3559,7 +3559,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3595,7 +3595,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -3630,7 +3630,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ForStatement
@@ -3679,13 +3679,13 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -3723,7 +3723,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               LabeledStatement
@@ -3766,7 +3766,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -3814,7 +3814,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -3862,7 +3862,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -3904,7 +3904,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ReturnStatement
@@ -3942,13 +3942,13 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3985,7 +3985,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               TryStatement
@@ -4029,13 +4029,13 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -4072,12 +4072,12 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                  initialization2: FunctionExpressionInvocation
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
@@ -4087,7 +4087,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4121,7 +4121,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SetOrMapLiteral
+                  initialization2: SetOrMapLiteral
                     leftBracket: {
                     rightBracket: }
                     isMap: false
@@ -4131,7 +4131,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4170,18 +4170,18 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4220,18 +4220,18 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4270,18 +4270,18 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4315,7 +4315,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
@@ -4323,7 +4323,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4362,18 +4362,18 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4412,18 +4412,18 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4468,7 +4468,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4522,7 +4522,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4576,7 +4576,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4621,7 +4621,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4658,7 +4658,7 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ;
                   condition: SimpleIdentifier
@@ -4666,7 +4666,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4700,10 +4700,10 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SwitchExpression
+                  initialization2: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
@@ -4714,7 +4714,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4753,18 +4753,18 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4803,18 +4803,18 @@
                 forKeyword: for
                 leftParenthesis: (
                 forLoopParts: ForPartsWithExpression
-                  initialization: SimpleIdentifier
+                  initialization2: SimpleIdentifier
                     token: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -4849,7 +4849,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -4857,7 +4857,7 @@
                 body: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -4893,7 +4893,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -4933,7 +4933,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -4973,7 +4973,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5013,7 +5013,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5025,7 +5025,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -5065,13 +5065,13 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
                 rightParenthesis: )
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5106,7 +5106,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5157,7 +5157,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5165,7 +5165,7 @@
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -5203,7 +5203,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5248,7 +5248,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5298,7 +5298,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5348,7 +5348,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5392,7 +5392,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5432,7 +5432,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5440,7 +5440,7 @@
                 body: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -5477,7 +5477,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5523,7 +5523,7 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
@@ -5531,7 +5531,7 @@
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -5575,23 +5575,23 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     FunctionExpressionInvocation
-                      function: SimpleIdentifier
+                      function2: SimpleIdentifier
                         token: assert
                       argumentList: ArgumentList
                         leftParenthesis: (
-                        arguments
+                        arguments2
                           BooleanLiteral
                             literal: true
                         rightParenthesis: )
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5631,18 +5631,18 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SetOrMapLiteral
                       leftBracket: {
                       rightBracket: }
                       isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5685,16 +5685,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5737,16 +5737,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5789,16 +5789,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5838,13 +5838,13 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5887,16 +5887,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5939,16 +5939,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -5990,16 +5990,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: l
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6041,11 +6041,11 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     FunctionExpression
                       parameters: FormalParameterList
                         leftParenthesis: (
@@ -6056,7 +6056,7 @@
                           rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6098,11 +6098,11 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     FunctionExpression
                       parameters: FormalParameterList
                         leftParenthesis: (
@@ -6113,7 +6113,7 @@
                           rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6156,16 +6156,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6209,16 +6209,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6258,22 +6258,22 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SwitchExpression
                       switchKeyword: switch
                       leftParenthesis: (
-                      expression: SimpleIdentifier
+                      expression2: SimpleIdentifier
                         token: x
                       rightParenthesis: )
                       leftBracket: {
                       rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6316,16 +6316,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6368,16 +6368,16 @@
                       VariableDeclaration
                         name: i
                         equals: =
-                        initializer: IntegerLiteral
+                        initializer2: IntegerLiteral
                           literal: 0
                   leftSeparator: ;
                   rightSeparator: ;
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6422,18 +6422,18 @@
                         name: <empty> <synthetic>
                   leftSeparator: ; <synthetic>
                   condition: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6484,7 +6484,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6532,12 +6532,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6585,12 +6585,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6638,12 +6638,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6687,20 +6687,20 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -6748,12 +6748,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6801,12 +6801,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6852,7 +6852,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6909,7 +6909,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -6966,7 +6966,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7013,7 +7013,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7064,7 +7064,7 @@
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7111,7 +7111,7 @@
                   condition: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
@@ -7119,7 +7119,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7167,12 +7167,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7220,12 +7220,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7268,18 +7268,18 @@
                         name: i
                   leftSeparator: ; <synthetic>
                   condition: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7328,7 +7328,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7376,12 +7376,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7429,12 +7429,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7482,12 +7482,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7532,7 +7532,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7580,12 +7580,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7633,12 +7633,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7688,7 +7688,7 @@
                     isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7747,7 +7747,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7802,7 +7802,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7850,12 +7850,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7905,7 +7905,7 @@
                   rightSeparator: ;
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -7950,7 +7950,7 @@
                   condition: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
@@ -7958,7 +7958,7 @@
                   rightSeparator: ; <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -8006,12 +8006,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -8059,12 +8059,12 @@
                   condition: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightSeparator: ; <synthetic>
-                  updaters
+                  updaters2
                     SimpleIdentifier
                       token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/if_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/if_statement_test.dart
index 6a92a55..ec41bc1 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/if_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/if_statement_test.dart
@@ -39,13 +39,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -76,7 +76,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: Block
@@ -111,7 +111,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: BreakStatement
@@ -146,7 +146,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: ContinueStatement
@@ -179,7 +179,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: DoStatement
@@ -189,7 +189,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -223,11 +223,11 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -257,7 +257,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: ForStatement
@@ -301,13 +301,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -340,7 +340,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: LabeledStatement
@@ -378,7 +378,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: FunctionDeclarationStatement
@@ -421,7 +421,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: FunctionDeclarationStatement
@@ -464,7 +464,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: VariableDeclarationStatement
@@ -501,7 +501,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: ReturnStatement
@@ -534,13 +534,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -572,7 +572,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: TryStatement
@@ -611,13 +611,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 thenStatement: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -651,13 +651,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -689,7 +689,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: Block
@@ -724,7 +724,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: BreakStatement
@@ -759,7 +759,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: ContinueStatement
@@ -793,7 +793,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: DoStatement
@@ -803,7 +803,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -837,11 +837,11 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -872,7 +872,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: ForStatement
@@ -917,13 +917,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -957,7 +957,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: LabeledStatement
@@ -996,7 +996,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: FunctionDeclarationStatement
@@ -1040,7 +1040,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: FunctionDeclarationStatement
@@ -1084,7 +1084,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: VariableDeclarationStatement
@@ -1122,7 +1122,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: ReturnStatement
@@ -1156,13 +1156,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -1195,7 +1195,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: TryStatement
@@ -1235,13 +1235,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -1274,12 +1274,12 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                expression2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -1316,13 +1316,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SetOrMapLiteral
+                expression2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1355,7 +1355,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: BreakStatement
@@ -1391,7 +1391,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: ContinueStatement
@@ -1426,7 +1426,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: DoStatement
@@ -1436,7 +1436,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -1470,11 +1470,11 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1506,7 +1506,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: ForStatement
@@ -1552,13 +1552,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -1595,15 +1595,15 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: l
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -1641,7 +1641,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -1651,7 +1651,7 @@
                       rightBracket: }
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1686,7 +1686,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -1696,7 +1696,7 @@
                       rightBracket: }
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1728,7 +1728,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: VariableDeclarationStatement
@@ -1768,7 +1768,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: EmptyStatement
@@ -1803,17 +1803,17 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SwitchExpression
+                expression2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
                   rightBracket: }
                 rightParenthesis: ) <synthetic>
                 thenStatement: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1845,7 +1845,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: TryStatement
@@ -1886,13 +1886,13 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 thenStatement: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/import_directive_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/import_directive_test.dart
index d4c6b50..3e5328c 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/import_directive_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/import_directive_test.dart
@@ -75,7 +75,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -194,7 +194,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -293,7 +293,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -560,7 +560,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -659,7 +659,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -751,7 +751,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -988,7 +988,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1087,7 +1087,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1179,7 +1179,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1444,7 +1444,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1599,7 +1599,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1733,7 +1733,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2080,7 +2080,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2231,7 +2231,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2362,7 +2362,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2713,7 +2713,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2883,7 +2883,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3029,7 +3029,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3404,7 +3404,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3562,7 +3562,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3699,7 +3699,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4058,7 +4058,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4220,7 +4220,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4353,7 +4353,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4685,7 +4685,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4788,7 +4788,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4883,7 +4883,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5142,7 +5142,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5273,7 +5273,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5381,7 +5381,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/index_expression_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/index_expression_test.dart
index 54980bb..50c7630 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/index_expression_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/index_expression_test.dart
@@ -37,16 +37,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: AssignmentExpression
-                  leftHandSide: IndexExpression
-                    target: SimpleIdentifier
+                expression2: AssignmentExpression
+                  leftHandSide2: IndexExpression
+                    target2: SimpleIdentifier
                       token: intList
                     leftBracket: [
-                    index: SimpleIdentifier
+                    index2: SimpleIdentifier
                       token: <empty> <synthetic>
                     rightBracket: ]
                   operator: =
-                  rightHandSide: IntegerLiteral
+                  rightHandSide2: IntegerLiteral
                     literal: 0
                 semicolon: ;
             rightBracket: }
@@ -74,16 +74,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: AssignmentExpression
-                  leftHandSide: IndexExpression
-                    target: SimpleIdentifier
+                expression2: AssignmentExpression
+                  leftHandSide2: IndexExpression
+                    target2: SimpleIdentifier
                       token: intList
                     leftBracket: [
-                    index: SimpleIdentifier
+                    index2: SimpleIdentifier
                       token: <empty> <synthetic>
                     rightBracket: ]
                   operator: =
-                  rightHandSide: IntegerLiteral
+                  rightHandSide2: IntegerLiteral
                     literal: 0
                 semicolon: ;
             rightBracket: }
@@ -111,16 +111,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: AssignmentExpression
-                  leftHandSide: IndexExpression
-                    target: SimpleIdentifier
+                expression2: AssignmentExpression
+                  leftHandSide2: IndexExpression
+                    target2: SimpleIdentifier
                       token: intList
                     leftBracket: [
-                    index: SimpleIdentifier
+                    index2: SimpleIdentifier
                       token: x
                     rightBracket: ]
                   operator: =
-                  rightHandSide: IntegerLiteral
+                  rightHandSide2: IntegerLiteral
                     literal: 0
                 semicolon: ;
             rightBracket: }
@@ -148,16 +148,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: AssignmentExpression
-                  leftHandSide: IndexExpression
-                    target: SimpleIdentifier
+                expression2: AssignmentExpression
+                  leftHandSide2: IndexExpression
+                    target2: SimpleIdentifier
                       token: intList
                     leftBracket: [
-                    index: SimpleIdentifier
+                    index2: SimpleIdentifier
                       token: x
                     rightBracket: ]
                   operator: =
-                  rightHandSide: IntegerLiteral
+                  rightHandSide2: IntegerLiteral
                     literal: 0
                 semicolon: ;
             rightBracket: }
@@ -185,16 +185,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: AssignmentExpression
-                  leftHandSide: IndexExpression
-                    target: SimpleIdentifier
+                expression2: AssignmentExpression
+                  leftHandSide2: IndexExpression
+                    target2: SimpleIdentifier
                       token: intList
                     leftBracket: [
-                    index: SimpleIdentifier
+                    index2: SimpleIdentifier
                       token: x
                     rightBracket: ]
                   operator: =
-                  rightHandSide: IntegerLiteral
+                  rightHandSide2: IntegerLiteral
                     literal: 0
                 semicolon: ;
             rightBracket: }
@@ -226,18 +226,18 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -268,11 +268,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -309,11 +309,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -350,11 +350,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -390,11 +390,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -405,7 +405,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -436,11 +436,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -473,11 +473,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -524,18 +524,18 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -568,11 +568,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -613,11 +613,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -663,11 +663,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -713,11 +713,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -757,11 +757,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -797,18 +797,18 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -842,11 +842,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -888,18 +888,18 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: x
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -930,16 +930,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: FunctionExpressionInvocation
-                    function: SimpleIdentifier
+                  index2: FunctionExpressionInvocation
+                    function2: SimpleIdentifier
                       token: assert
                     argumentList: ArgumentList
                       leftParenthesis: (
-                      arguments
+                      arguments2
                         BooleanLiteral
                           literal: true
                       rightParenthesis: )
@@ -972,11 +972,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SetOrMapLiteral
+                  index2: SetOrMapLiteral
                     leftBracket: {
                     rightBracket: }
                     isMap: false
@@ -1013,11 +1013,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -1055,11 +1055,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -1096,11 +1096,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -1111,7 +1111,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1143,11 +1143,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -1181,11 +1181,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -1233,18 +1233,18 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1279,16 +1279,16 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: l
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -1323,11 +1323,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: FunctionExpression
+                  index2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       rightParenthesis: )
@@ -1366,11 +1366,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: FunctionExpression
+                  index2: FunctionExpression
                     parameters: FormalParameterList
                       leftParenthesis: (
                       rightParenthesis: )
@@ -1410,11 +1410,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -1453,11 +1453,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ;
@@ -1488,14 +1488,14 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SwitchExpression
+                  index2: SwitchExpression
                     switchKeyword: switch
                     leftParenthesis: (
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x
                     rightParenthesis: )
                     leftBracket: {
@@ -1532,11 +1532,11 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
@@ -1579,18 +1579,18 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: IndexExpression
-                  target: SimpleIdentifier
+                expression2: IndexExpression
+                  target2: SimpleIdentifier
                     token: intList
                   leftBracket: [
-                  index: SimpleIdentifier
+                  index2: SimpleIdentifier
                     token: <empty> <synthetic>
                   rightBracket: ] <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/instance_creation_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/instance_creation_test.dart
index 604a15d..1cf6082 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/instance_creation_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/instance_creation_test.dart
@@ -35,7 +35,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: const
             constructorName: ConstructorName
               type: NamedType
@@ -66,7 +66,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: const
             constructorName: ConstructorName
               type: NamedType
@@ -76,7 +76,7 @@
                 name: b
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 SimpleIdentifier
                   token: <empty> <synthetic>
               rightParenthesis: ) <synthetic>
@@ -103,14 +103,14 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: const
             constructorName: ConstructorName
               type: NamedType
                 name: A
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 SimpleIdentifier
                   token: <empty> <synthetic>
               rightParenthesis: ) <synthetic>
@@ -137,7 +137,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: const
             constructorName: ConstructorName
               type: NamedType
@@ -170,7 +170,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: const
             constructorName: ConstructorName
               type: NamedType
@@ -203,7 +203,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: const
             constructorName: ConstructorName
               type: NamedType
@@ -234,7 +234,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: new
             constructorName: ConstructorName
               type: NamedType
@@ -265,7 +265,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: new
             constructorName: ConstructorName
               type: NamedType
@@ -275,7 +275,7 @@
                 name: b
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 SimpleIdentifier
                   token: <empty> <synthetic>
               rightParenthesis: ) <synthetic>
@@ -302,14 +302,14 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: new
             constructorName: ConstructorName
               type: NamedType
                 name: A
             argumentList: ArgumentList
               leftParenthesis: (
-              arguments
+              arguments2
                 SimpleIdentifier
                   token: <empty> <synthetic>
               rightParenthesis: ) <synthetic>
@@ -336,7 +336,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: new
             constructorName: ConstructorName
               type: NamedType
@@ -369,7 +369,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: new
             constructorName: ConstructorName
               type: NamedType
@@ -402,7 +402,7 @@
           rightParenthesis: )
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: InstanceCreationExpression
+          expression2: InstanceCreationExpression
             keyword: new
             constructorName: ConstructorName
               type: NamedType
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/library_directive_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/library_directive_test.dart
index c2c4816..b9ceb62 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/library_directive_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/library_directive_test.dart
@@ -69,7 +69,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -176,7 +176,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -268,7 +268,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -519,7 +519,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -622,7 +622,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -717,7 +717,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -970,7 +970,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1089,7 +1089,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1188,7 +1188,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1461,7 +1461,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1572,7 +1572,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1673,7 +1673,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
index 392ed92..a4b622c 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/local_variable_test.dart
@@ -37,14 +37,14 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
                       name: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -74,7 +74,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SetOrMapLiteral
+                expression2: SetOrMapLiteral
                   constKeyword: const
                   leftBracket: {
                   rightBracket: }
@@ -106,7 +106,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -141,7 +141,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -177,7 +177,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -192,7 +192,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: EmptyStatement
@@ -225,7 +225,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -264,14 +264,14 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
                       name: for
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       SimpleIdentifier
                         token: <empty> <synthetic>
                     rightParenthesis: )
@@ -306,14 +306,14 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
                       name: if
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -350,7 +350,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -360,7 +360,7 @@
                     rightParenthesis: ) <synthetic>
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -497,7 +497,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -533,14 +533,14 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
                       name: switch
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       SimpleIdentifier
                         token: x
                     rightParenthesis: )
@@ -579,7 +579,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -592,7 +592,7 @@
                 leftBracket: {
                 rightBracket: }
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: finally
                 semicolon: ; <synthetic>
               Block
@@ -625,14 +625,14 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
                       name: while
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -674,7 +674,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -822,7 +822,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -852,7 +852,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: InstanceCreationExpression
+                expression2: InstanceCreationExpression
                   keyword: const
                   constructorName: ConstructorName
                     type: NamedType
@@ -940,7 +940,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -983,7 +983,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -1183,7 +1183,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1262,7 +1262,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1306,7 +1306,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1468,7 +1468,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1594,7 +1594,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1637,7 +1637,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -1853,7 +1853,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1940,7 +1940,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1982,7 +1982,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2138,7 +2138,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2258,7 +2258,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2509,7 +2509,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -2592,7 +2592,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2634,7 +2634,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2790,7 +2790,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2910,7 +2910,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -3161,7 +3161,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3244,7 +3244,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -3290,7 +3290,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3460,7 +3460,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3592,7 +3592,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -3637,7 +3637,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -3863,7 +3863,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3954,7 +3954,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -3998,7 +3998,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4162,7 +4162,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4288,7 +4288,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -4551,7 +4551,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -4638,7 +4638,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -4680,7 +4680,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4834,7 +4834,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4954,7 +4954,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -4995,7 +4995,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -5178,7 +5178,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -5261,7 +5261,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -5301,7 +5301,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -5449,7 +5449,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -5563,7 +5563,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -5606,7 +5606,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -5806,7 +5806,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -5885,7 +5885,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -5927,7 +5927,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -6083,7 +6083,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -6203,7 +6203,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -6454,7 +6454,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -6537,7 +6537,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -6568,13 +6568,13 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -6603,7 +6603,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               Block
@@ -6636,7 +6636,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               BreakStatement
@@ -6669,7 +6669,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -6700,7 +6700,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               DoStatement
@@ -6710,7 +6710,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -6739,7 +6739,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -6767,7 +6767,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               ForStatement
@@ -6809,13 +6809,13 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -6857,7 +6857,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -6931,7 +6931,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -6972,7 +6972,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -7007,7 +7007,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               ReturnStatement
@@ -7038,13 +7038,13 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -7074,7 +7074,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               TryStatement
@@ -7111,13 +7111,13 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: int
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -7158,7 +7158,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7310,7 +7310,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7427,7 +7427,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -7672,7 +7672,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -7753,7 +7753,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -7795,7 +7795,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7949,7 +7949,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -8069,7 +8069,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -8110,7 +8110,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -8293,7 +8293,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -8376,7 +8376,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -8416,7 +8416,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -8564,7 +8564,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -8678,7 +8678,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -8723,7 +8723,7 @@
                       name: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -8925,7 +8925,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -9004,7 +9004,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -9039,12 +9039,12 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: FunctionExpressionInvocation
-                        function: SimpleIdentifier
+                      initializer2: FunctionExpressionInvocation
+                        function2: SimpleIdentifier
                           token: assert
                         argumentList: ArgumentList
                           leftParenthesis: (
-                          arguments
+                          arguments2
                             BooleanLiteral
                               literal: true
                           rightParenthesis: )
@@ -9080,7 +9080,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SetOrMapLiteral
+                      initializer2: SetOrMapLiteral
                         leftBracket: {
                         rightBracket: }
                         isMap: false
@@ -9119,7 +9119,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               BreakStatement
@@ -9159,7 +9159,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -9198,7 +9198,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               DoStatement
@@ -9208,7 +9208,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -9245,7 +9245,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -9281,7 +9281,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ForStatement
@@ -9331,13 +9331,13 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -9377,11 +9377,11 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -9420,7 +9420,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: FunctionExpression
+                      initializer2: FunctionExpression
                         parameters: FormalParameterList
                           leftParenthesis: (
                           rightParenthesis: )
@@ -9462,7 +9462,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: FunctionExpression
+                      initializer2: FunctionExpression
                         parameters: FormalParameterList
                           leftParenthesis: (
                           rightParenthesis: )
@@ -9504,7 +9504,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -9547,7 +9547,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ;
             rightBracket: }
@@ -9581,10 +9581,10 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SwitchExpression
+                      initializer2: SwitchExpression
                         switchKeyword: switch
                         leftParenthesis: (
-                        expression: SimpleIdentifier
+                        expression2: SimpleIdentifier
                           token: x
                         rightParenthesis: )
                         leftBracket: {
@@ -9623,7 +9623,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               TryStatement
@@ -9668,13 +9668,13 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -9711,13 +9711,13 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -9752,7 +9752,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               Block
@@ -9791,7 +9791,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               BreakStatement
@@ -9830,7 +9830,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -9867,7 +9867,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               DoStatement
@@ -9877,7 +9877,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -9912,7 +9912,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -9946,7 +9946,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               ForStatement
@@ -9994,13 +9994,13 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -10037,7 +10037,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               LabeledStatement
@@ -10079,7 +10079,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -10126,7 +10126,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -10173,7 +10173,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -10214,7 +10214,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               ReturnStatement
@@ -10251,13 +10251,13 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -10293,7 +10293,7 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               TryStatement
@@ -10336,13 +10336,13 @@
                     VariableDeclaration
                       name: a
                       equals: =
-                      initializer: SimpleIdentifier
+                      initializer2: SimpleIdentifier
                         token: b
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/method_declaration_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/method_declaration_test.dart
index 614626a..d905576 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/method_declaration_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/method_declaration_test.dart
@@ -254,7 +254,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -318,7 +318,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -382,7 +382,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -456,7 +456,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -846,7 +846,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -910,7 +910,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -974,7 +974,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1048,7 +1048,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1352,7 +1352,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -1402,7 +1402,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -1458,7 +1458,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1519,7 +1519,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1784,7 +1784,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1824,7 +1824,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -1864,7 +1864,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -1914,7 +1914,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2202,7 +2202,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -2260,7 +2260,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -2328,7 +2328,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2397,7 +2397,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2716,7 +2716,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2766,7 +2766,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -2818,7 +2818,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -2879,7 +2879,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3195,7 +3195,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3247,7 +3247,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3299,7 +3299,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3361,7 +3361,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3685,7 +3685,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3739,7 +3739,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -3793,7 +3793,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -3857,7 +3857,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4231,7 +4231,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4296,7 +4296,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4361,7 +4361,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4436,7 +4436,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -4832,7 +4832,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4897,7 +4897,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -4962,7 +4962,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5037,7 +5037,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5347,7 +5347,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -5398,7 +5398,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -5455,7 +5455,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5517,7 +5517,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5788,7 +5788,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -5829,7 +5829,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -5870,7 +5870,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -5921,7 +5921,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6215,7 +6215,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -6274,7 +6274,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -6343,7 +6343,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6413,7 +6413,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6738,7 +6738,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -6789,7 +6789,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -6842,7 +6842,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -6904,7 +6904,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7226,7 +7226,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7279,7 +7279,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7332,7 +7332,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7395,7 +7395,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7725,7 +7725,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7780,7 +7780,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -7835,7 +7835,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -7900,7 +7900,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8284,7 +8284,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -8351,7 +8351,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -8418,7 +8418,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8495,7 +8495,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -8903,7 +8903,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -8970,7 +8970,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9037,7 +9037,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9114,7 +9114,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9436,7 +9436,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -9489,7 +9489,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -9548,7 +9548,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9612,7 +9612,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -9895,7 +9895,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9938,7 +9938,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -9981,7 +9981,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10034,7 +10034,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10340,7 +10340,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -10401,7 +10401,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -10472,7 +10472,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10544,7 +10544,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -10881,7 +10881,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -10934,7 +10934,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -10989,7 +10989,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -11053,7 +11053,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -11387,7 +11387,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -11442,7 +11442,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -11497,7 +11497,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -11562,7 +11562,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -11904,7 +11904,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -11961,7 +11961,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -12018,7 +12018,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -12085,7 +12085,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -12469,7 +12469,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -12535,7 +12535,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -12601,7 +12601,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -12677,7 +12677,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -13079,7 +13079,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -13145,7 +13145,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -13211,7 +13211,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -13287,7 +13287,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -13603,7 +13603,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -13655,7 +13655,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -13713,7 +13713,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -13776,7 +13776,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -14053,7 +14053,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -14095,7 +14095,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -14137,7 +14137,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -14189,7 +14189,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -14489,7 +14489,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -14549,7 +14549,7 @@
                   name: f
                   defaultClause: FormalParameterDefaultClause
                     separator: =
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 0
               rightParenthesis: ) <synthetic>
             parameters(v1): FormalParameterList
@@ -14619,7 +14619,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -14690,7 +14690,7 @@
               rightParenthesis: ) <synthetic>
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -15021,7 +15021,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -15073,7 +15073,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -15127,7 +15127,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -15190,7 +15190,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -15518,7 +15518,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -15572,7 +15572,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -15626,7 +15626,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -15690,7 +15690,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -16026,7 +16026,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -16082,7 +16082,7 @@
                 VariableDeclaration
                   name: f
                   equals: =
-                  initializer: IntegerLiteral
+                  initializer2: IntegerLiteral
                     literal: 0
             semicolon: ;
         rightBracket: }
@@ -16138,7 +16138,7 @@
             name: a
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
@@ -16204,7 +16204,7 @@
               rightParenthesis: )
             body: ExpressionFunctionBody
               functionDefinition: =>
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0
               semicolon: ;
         rightBracket: }
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/mixin_declaration_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/mixin_declaration_test.dart
index 94f98db..f06d6ed 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/mixin_declaration_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/mixin_declaration_test.dart
@@ -81,7 +81,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -182,7 +182,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -290,7 +290,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -524,7 +524,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -625,7 +625,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -733,7 +733,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -963,7 +963,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1058,7 +1058,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1160,7 +1160,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1380,7 +1380,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1472,7 +1472,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1579,7 +1579,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1806,7 +1806,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1907,7 +1907,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2015,7 +2015,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2247,7 +2247,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2345,7 +2345,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2458,7 +2458,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2748,7 +2748,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2837,7 +2837,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3032,7 +3032,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3109,7 +3109,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3201,7 +3201,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3404,7 +3404,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3499,7 +3499,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3601,7 +3601,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3821,7 +3821,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3913,7 +3913,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4020,7 +4020,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4245,7 +4245,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4343,7 +4343,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4456,7 +4456,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4691,7 +4691,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4792,7 +4792,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4900,7 +4900,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5132,7 +5132,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5230,7 +5230,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5343,7 +5343,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5584,7 +5584,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5694,7 +5694,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5811,7 +5811,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -6061,7 +6061,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6168,7 +6168,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -6290,7 +6290,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/part_directive_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/part_directive_test.dart
index d84ba03..d55a220 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/part_directive_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/part_directive_test.dart
@@ -65,7 +65,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -141,7 +141,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -233,7 +233,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -449,7 +449,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -528,7 +528,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -623,7 +623,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -842,7 +842,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -918,7 +918,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1010,7 +1010,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/part_of_directive_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/part_of_directive_test.dart
index 43aeaa7..c3063ab 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/part_of_directive_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/part_of_directive_test.dart
@@ -67,7 +67,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -146,7 +146,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -241,7 +241,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -442,7 +442,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -527,7 +527,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -624,7 +624,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -842,7 +842,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -927,7 +927,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1028,7 +1028,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1247,7 +1247,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1347,7 +1347,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1455,7 +1455,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1690,7 +1690,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1784,7 +1784,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1894,7 +1894,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2111,7 +2111,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2190,7 +2190,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2285,7 +2285,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/return_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/return_statement_test.dart
index 3fb1097..b22ae5f 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/return_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/return_statement_test.dart
@@ -38,13 +38,13 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -74,7 +74,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               Block
@@ -108,7 +108,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               BreakStatement
@@ -142,7 +142,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -174,7 +174,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               DoStatement
@@ -184,7 +184,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -214,7 +214,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -243,7 +243,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ForStatement
@@ -286,13 +286,13 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -324,7 +324,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               LabeledStatement
@@ -361,7 +361,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -403,7 +403,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -445,7 +445,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -481,7 +481,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ReturnStatement
@@ -513,13 +513,13 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -550,7 +550,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               TryStatement
@@ -588,13 +588,13 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -624,12 +624,12 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                expression2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -660,7 +660,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SetOrMapLiteral
+                expression2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
@@ -694,7 +694,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               BreakStatement
@@ -729,7 +729,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -763,7 +763,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               DoStatement
@@ -773,7 +773,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -805,7 +805,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -836,7 +836,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ForStatement
@@ -881,13 +881,13 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -922,11 +922,11 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -960,7 +960,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -997,7 +997,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -1034,7 +1034,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -1072,7 +1072,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ;
             rightBracket: }
@@ -1101,10 +1101,10 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SwitchExpression
+                expression2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -1138,7 +1138,7 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               TryStatement
@@ -1178,13 +1178,13 @@
             statements
               ReturnStatement
                 returnKeyword: return
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/switch_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/switch_statement_test.dart
index b1c69f1..069faab 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/switch_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/switch_statement_test.dart
@@ -41,7 +41,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -49,7 +49,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -80,7 +80,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: {
@@ -115,7 +115,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -153,7 +153,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -190,7 +190,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -202,7 +202,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -234,7 +234,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -268,7 +268,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -316,7 +316,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -324,7 +324,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -358,7 +358,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -400,7 +400,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -447,7 +447,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -494,7 +494,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -535,7 +535,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -572,7 +572,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -580,7 +580,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -614,7 +614,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -657,7 +657,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -665,7 +665,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -700,7 +700,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -708,7 +708,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -740,7 +740,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: {
@@ -775,7 +775,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -813,7 +813,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -850,7 +850,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -862,7 +862,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -895,7 +895,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -929,7 +929,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -977,7 +977,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -985,7 +985,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1020,7 +1020,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1062,7 +1062,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1109,7 +1109,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1156,7 +1156,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1197,7 +1197,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1234,7 +1234,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1242,7 +1242,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1276,7 +1276,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1319,7 +1319,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: ( <synthetic>
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -1327,7 +1327,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1361,7 +1361,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1394,7 +1394,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1427,7 +1427,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1460,7 +1460,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1493,7 +1493,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1524,7 +1524,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1557,7 +1557,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1590,7 +1590,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1623,7 +1623,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1656,7 +1656,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1689,7 +1689,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1722,7 +1722,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1755,7 +1755,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1788,7 +1788,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1821,7 +1821,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1854,7 +1854,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -1887,12 +1887,12 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                expression2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -1929,7 +1929,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SetOrMapLiteral
+                expression2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
@@ -1967,7 +1967,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2006,7 +2006,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2044,7 +2044,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2056,7 +2056,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2089,7 +2089,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2124,7 +2124,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2173,7 +2173,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2181,7 +2181,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2219,13 +2219,13 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: l
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
                 rightBracket: } <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -2261,7 +2261,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2302,7 +2302,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2343,7 +2343,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2386,7 +2386,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2421,10 +2421,10 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SwitchExpression
+                expression2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -2462,7 +2462,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2506,7 +2506,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 leftBracket: { <synthetic>
@@ -2514,7 +2514,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2547,7 +2547,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2555,7 +2555,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2584,7 +2584,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: {
@@ -2618,7 +2618,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2655,7 +2655,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2690,7 +2690,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2702,7 +2702,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2733,7 +2733,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2765,7 +2765,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2811,7 +2811,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2819,7 +2819,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2852,7 +2852,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2892,7 +2892,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2937,7 +2937,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -2982,7 +2982,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -3021,7 +3021,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -3056,7 +3056,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -3064,7 +3064,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3096,7 +3096,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -3137,7 +3137,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 rightParenthesis: )
                 leftBracket: { <synthetic>
@@ -3145,7 +3145,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/top_level_variable_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/top_level_variable_test.dart
index 0508d7b..77fc2a2 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/top_level_variable_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/top_level_variable_test.dart
@@ -60,7 +60,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -143,7 +143,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -214,7 +214,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -406,7 +406,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -486,7 +486,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -581,7 +581,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -784,7 +784,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -876,7 +876,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -975,7 +975,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1192,7 +1192,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1278,7 +1278,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1379,7 +1379,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1588,7 +1588,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1674,7 +1674,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1775,7 +1775,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1992,7 +1992,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2090,7 +2090,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2195,7 +2195,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2424,7 +2424,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2516,7 +2516,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2623,7 +2623,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -2829,7 +2829,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2903,7 +2903,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -2974,7 +2974,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3157,7 +3157,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3237,7 +3237,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3332,7 +3332,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3531,7 +3531,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3617,7 +3617,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3718,7 +3718,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -3921,7 +3921,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -3998,7 +3998,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4090,7 +4090,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4282,7 +4282,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4365,7 +4365,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4463,7 +4463,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -4666,7 +4666,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4749,7 +4749,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -4820,7 +4820,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5012,7 +5012,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5092,7 +5092,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5189,7 +5189,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5354,7 +5354,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: class
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -5389,8 +5389,8 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: AssignmentExpression
-              leftHandSide: InstanceCreationExpression
+            initializer2: AssignmentExpression
+              leftHandSide2: InstanceCreationExpression
                 keyword: const
                 constructorName: ConstructorName
                   type: NamedType
@@ -5399,7 +5399,7 @@
                   leftParenthesis: ( <synthetic>
                   rightParenthesis: ) <synthetic>
               operator: =
-              rightHandSide: IntegerLiteral
+              rightHandSide2: IntegerLiteral
                 literal: 0
       semicolon: ;
 ''');
@@ -5427,7 +5427,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: enum
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -5441,7 +5441,7 @@
             leftBracket: {
             statements
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: v
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -5467,7 +5467,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
 ''');
@@ -5492,7 +5492,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -5502,7 +5502,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5527,7 +5527,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: FunctionExpression
+            initializer2: FunctionExpression
               parameters: FormalParameterList
                 leftParenthesis: (
                 rightParenthesis: )
@@ -5558,7 +5558,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: FunctionExpression
+            initializer2: FunctionExpression
               parameters: FormalParameterList
                 leftParenthesis: (
                 rightParenthesis: )
@@ -5587,7 +5587,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: int
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -5596,7 +5596,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -5621,7 +5621,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: mixin
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -5654,7 +5654,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: set
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -5699,7 +5699,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: typedef
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -5708,7 +5708,7 @@
           VariableDeclaration
             name: A
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: B
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -5753,7 +5753,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: <empty> <synthetic>
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -5783,7 +5783,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     ClassDeclaration
@@ -5813,7 +5813,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -5823,7 +5823,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5846,7 +5846,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     EnumDeclaration
@@ -5879,7 +5879,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
 ''');
@@ -5902,7 +5902,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
@@ -5912,7 +5912,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -5935,7 +5935,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -5970,7 +5970,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -6005,7 +6005,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -6016,7 +6016,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -6039,7 +6039,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     MixinDeclaration
@@ -6068,7 +6068,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     FunctionDeclaration
@@ -6110,7 +6110,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     GenericTypeAlias
@@ -6161,7 +6161,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: SimpleIdentifier
+            initializer2: SimpleIdentifier
               token: b
       semicolon: ; <synthetic>
     TopLevelVariableDeclaration
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/try_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/try_statement_test.dart
index 0ebba93..3a2b271 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/try_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/try_statement_test.dart
@@ -55,7 +55,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -233,7 +233,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -376,7 +376,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -561,7 +561,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -706,7 +706,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1010,7 +1010,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1111,7 +1111,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1165,7 +1165,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1366,7 +1366,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1521,7 +1521,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1576,7 +1576,7 @@
                       leftBracket: { <synthetic>
                       rightBracket: } <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -1843,7 +1843,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -1950,7 +1950,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2004,7 +2004,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2201,7 +2201,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -2355,7 +2355,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2678,7 +2678,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -2785,7 +2785,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2834,7 +2834,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2933,7 +2933,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3122,7 +3122,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -3268,7 +3268,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -3320,7 +3320,7 @@
                       leftBracket: { <synthetic>
                       rightBracket: } <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -3572,7 +3572,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -3673,7 +3673,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -3920,7 +3920,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4107,7 +4107,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -4254,7 +4254,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -4559,7 +4559,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -4660,7 +4660,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -4709,7 +4709,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -4806,7 +4806,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -4858,7 +4858,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -5049,7 +5049,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -5199,7 +5199,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -5510,7 +5510,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -5613,7 +5613,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -5655,7 +5655,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -5806,7 +5806,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -5926,7 +5926,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -6177,7 +6177,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -6260,7 +6260,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -6299,7 +6299,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -6439,7 +6439,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -6550,7 +6550,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -6783,7 +6783,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -6860,7 +6860,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -6898,7 +6898,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7038,7 +7038,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7146,7 +7146,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -7373,7 +7373,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -7448,7 +7448,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -7495,7 +7495,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7624,7 +7624,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7814,7 +7814,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -7966,7 +7966,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -8163,7 +8163,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -8317,7 +8317,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -8639,7 +8639,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -8746,7 +8746,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -8803,7 +8803,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -9016,7 +9016,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -9180,7 +9180,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -9238,7 +9238,7 @@
                       leftBracket: { <synthetic>
                       rightBracket: } <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -9520,7 +9520,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -9633,7 +9633,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -9690,7 +9690,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -9899,7 +9899,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -10062,7 +10062,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -10404,7 +10404,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -10517,7 +10517,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -10569,7 +10569,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -10674,7 +10674,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -10875,7 +10875,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -11030,7 +11030,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -11085,7 +11085,7 @@
                       leftBracket: { <synthetic>
                       rightBracket: } <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -11352,7 +11352,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -11459,7 +11459,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -11721,7 +11721,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -11920,7 +11920,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -12076,7 +12076,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -12399,7 +12399,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -12506,7 +12506,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -12558,7 +12558,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -12661,7 +12661,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -12754,7 +12754,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -12888,7 +12888,7 @@
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -13055,7 +13055,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -13187,7 +13187,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -13462,7 +13462,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -13553,7 +13553,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -13600,7 +13600,7 @@
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -13648,7 +13648,7 @@
                       leftBracket: { <synthetic>
                       rightBracket: } <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -13878,7 +13878,7 @@
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -13971,7 +13971,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/typedef_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/typedef_test.dart
index 201b0a8..3b42076 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/typedef_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/typedef_test.dart
@@ -71,7 +71,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -157,7 +157,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -246,7 +246,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -460,7 +460,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -546,7 +546,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -628,7 +628,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -839,7 +839,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -928,7 +928,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1023,7 +1023,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
@@ -1242,7 +1242,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1328,7 +1328,7 @@
           VariableDeclaration
             name: a
             equals: =
-            initializer: IntegerLiteral
+            initializer2: IntegerLiteral
               literal: 0
       semicolon: ;
 ''');
@@ -1429,7 +1429,7 @@
       functionExpression: FunctionExpression
         body: ExpressionFunctionBody
           functionDefinition: =>
-          expression: IntegerLiteral
+          expression2: IntegerLiteral
             literal: 0
           semicolon: ;
 ''');
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/while_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/while_statement_test.dart
index f3b9f72..d801f8e 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/while_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/while_statement_test.dart
@@ -39,13 +39,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -76,7 +76,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: Block
@@ -109,7 +109,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: BreakStatement
@@ -142,7 +142,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: ContinueStatement
@@ -175,7 +175,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: DoStatement
@@ -185,7 +185,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -219,11 +219,11 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -253,7 +253,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: ForStatement
@@ -297,13 +297,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -336,7 +336,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: LabeledStatement
@@ -374,7 +374,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: FunctionDeclarationStatement
@@ -417,7 +417,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: FunctionDeclarationStatement
@@ -460,7 +460,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: VariableDeclarationStatement
@@ -497,7 +497,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: ReturnStatement
@@ -530,13 +530,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -568,7 +568,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: TryStatement
@@ -607,13 +607,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: a
                 rightParenthesis: ) <synthetic>
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -647,13 +647,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: AssertStatement
                   assertKeyword: assert
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -685,7 +685,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: Block
@@ -719,7 +719,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: BreakStatement
@@ -753,7 +753,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ContinueStatement
@@ -787,7 +787,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: DoStatement
@@ -797,7 +797,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -831,11 +831,11 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -866,7 +866,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ForStatement
@@ -911,13 +911,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -951,7 +951,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: LabeledStatement
@@ -990,7 +990,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: FunctionDeclarationStatement
@@ -1034,7 +1034,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: FunctionDeclarationStatement
@@ -1078,7 +1078,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: VariableDeclarationStatement
@@ -1116,7 +1116,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ReturnStatement
@@ -1150,13 +1150,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: SwitchStatement
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -1189,7 +1189,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: TryStatement
@@ -1229,13 +1229,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: ( <synthetic>
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
@@ -1268,12 +1268,12 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                condition2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -1310,13 +1310,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SetOrMapLiteral
+                condition2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1348,7 +1348,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: BreakStatement
@@ -1383,7 +1383,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ContinueStatement
@@ -1418,7 +1418,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: DoStatement
@@ -1428,7 +1428,7 @@
                     rightBracket: }
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   semicolon: ;
@@ -1462,11 +1462,11 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1498,7 +1498,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: ForStatement
@@ -1544,13 +1544,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: IfStatement
                   ifKeyword: if
                   leftParenthesis: (
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   thenStatement: Block
@@ -1587,15 +1587,15 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: l
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -1633,7 +1633,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: FunctionExpression
+                condition2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -1643,7 +1643,7 @@
                       rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1678,7 +1678,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: FunctionExpression
+                condition2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -1688,7 +1688,7 @@
                       rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1720,7 +1720,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: VariableDeclarationStatement
@@ -1760,7 +1760,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: EmptyStatement
@@ -1795,17 +1795,17 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SwitchExpression
+                condition2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
                   rightBracket: }
                 rightParenthesis: ) <synthetic>
                 body: ExpressionStatement
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: <empty> <synthetic>
                   semicolon: ; <synthetic>
             rightBracket: }
@@ -1837,7 +1837,7 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: TryStatement
@@ -1878,13 +1878,13 @@
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: SimpleIdentifier
+                condition2: SimpleIdentifier
                   token: <empty> <synthetic>
                 rightParenthesis: ) <synthetic>
                 body: WhileStatement
                   whileKeyword: while
                   leftParenthesis: (
-                  condition: BooleanLiteral
+                  condition2: BooleanLiteral
                     literal: true
                   rightParenthesis: )
                   body: Block
diff --git a/pkg/analyzer/test/src/fasta/recovery/partial_code/yield_statement_test.dart b/pkg/analyzer/test/src/fasta/recovery/partial_code/yield_statement_test.dart
index adec965..cf41a24 100644
--- a/pkg/analyzer/test/src/fasta/recovery/partial_code/yield_statement_test.dart
+++ b/pkg/analyzer/test/src/fasta/recovery/partial_code/yield_statement_test.dart
@@ -40,13 +40,13 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -78,7 +78,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               Block
@@ -114,7 +114,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               BreakStatement
@@ -150,7 +150,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -184,7 +184,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               DoStatement
@@ -194,7 +194,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -226,7 +226,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -257,7 +257,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ForStatement
@@ -302,13 +302,13 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -342,7 +342,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               LabeledStatement
@@ -381,7 +381,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -425,7 +425,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -469,7 +469,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -507,7 +507,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ReturnStatement
@@ -541,13 +541,13 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -580,7 +580,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               TryStatement
@@ -620,13 +620,13 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -658,12 +658,12 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                expression2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -696,7 +696,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SetOrMapLiteral
+                expression2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
@@ -732,7 +732,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               BreakStatement
@@ -769,7 +769,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -805,7 +805,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               DoStatement
@@ -815,7 +815,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -849,7 +849,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -882,7 +882,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ForStatement
@@ -929,13 +929,13 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -972,11 +972,11 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -1012,7 +1012,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -1051,7 +1051,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -1090,7 +1090,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -1130,7 +1130,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ;
             rightBracket: }
@@ -1161,10 +1161,10 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SwitchExpression
+                expression2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -1200,7 +1200,7 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               TryStatement
@@ -1242,13 +1242,13 @@
             statements
               YieldStatement
                 yieldKeyword: yield
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -1281,12 +1281,12 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: FunctionExpressionInvocation
-                  function: SimpleIdentifier
+                expression2: FunctionExpressionInvocation
+                  function2: SimpleIdentifier
                     token: assert
                   argumentList: ArgumentList
                     leftParenthesis: (
-                    arguments
+                    arguments2
                       BooleanLiteral
                         literal: true
                     rightParenthesis: )
@@ -1320,7 +1320,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SetOrMapLiteral
+                expression2: SetOrMapLiteral
                   leftBracket: {
                   rightBracket: }
                   isMap: false
@@ -1357,7 +1357,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               BreakStatement
@@ -1395,7 +1395,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -1432,7 +1432,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               DoStatement
@@ -1442,7 +1442,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1477,7 +1477,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -1509,13 +1509,13 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               AssertStatement
                 assertKeyword: assert
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1548,7 +1548,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               Block
@@ -1585,7 +1585,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               BreakStatement
@@ -1622,7 +1622,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ContinueStatement
@@ -1657,7 +1657,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               DoStatement
@@ -1667,7 +1667,7 @@
                   rightBracket: }
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 semicolon: ;
@@ -1700,7 +1700,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
             rightBracket: }
@@ -1732,7 +1732,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ForStatement
@@ -1778,13 +1778,13 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -1819,7 +1819,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               LabeledStatement
@@ -1859,7 +1859,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -1904,7 +1904,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               FunctionDeclarationStatement
@@ -1949,7 +1949,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -1988,7 +1988,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               ReturnStatement
@@ -2023,13 +2023,13 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               SwitchStatement
                 switchKeyword: switch
                 leftParenthesis: (
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: x
                 rightParenthesis: )
                 leftBracket: {
@@ -2063,7 +2063,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               TryStatement
@@ -2104,13 +2104,13 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: a
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
@@ -2147,7 +2147,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               ForStatement
@@ -2195,13 +2195,13 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               IfStatement
                 ifKeyword: if
                 leftParenthesis: (
-                expression: BooleanLiteral
+                expression2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 thenStatement: Block
@@ -2239,11 +2239,11 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: l
                 semicolon: ; <synthetic>
               ExpressionStatement
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               Block
@@ -2280,7 +2280,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2320,7 +2320,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: FunctionExpression
+                expression2: FunctionExpression
                   parameters: FormalParameterList
                     leftParenthesis: (
                     rightParenthesis: )
@@ -2360,7 +2360,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               VariableDeclarationStatement
@@ -2401,7 +2401,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ;
             rightBracket: }
@@ -2433,10 +2433,10 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SwitchExpression
+                expression2: SwitchExpression
                   switchKeyword: switch
                   leftParenthesis: (
-                  expression: SimpleIdentifier
+                  expression2: SimpleIdentifier
                     token: x
                   rightParenthesis: )
                   leftBracket: {
@@ -2473,7 +2473,7 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               TryStatement
@@ -2516,13 +2516,13 @@
               YieldStatement
                 yieldKeyword: yield
                 star: *
-                expression: SimpleIdentifier
+                expression2: SimpleIdentifier
                   token: <empty> <synthetic>
                 semicolon: ; <synthetic>
               WhileStatement
                 whileKeyword: while
                 leftParenthesis: (
-                condition: BooleanLiteral
+                condition2: BooleanLiteral
                   literal: true
                 rightParenthesis: )
                 body: Block
diff --git a/pkg/analyzer/test/src/summary/elements/class_test.dart b/pkg/analyzer/test/src/summary/elements/class_test.dart
index 4975d32..79b6c2b 100644
--- a/pkg/analyzer/test/src/summary/elements/class_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/class_test.dart
@@ -7044,7 +7044,7 @@
               superKeyword: super @0
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: i @-1
                     element: <testLibrary>::@class::C2::@constructor::new::@formalParameter::i
@@ -7071,7 +7071,7 @@
               superKeyword: super @0
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: i @-1
                     element: <testLibrary>::@class::C1::@constructor::new::@formalParameter::i
@@ -7247,7 +7247,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: a @-1
                     element: <testLibrary>::@class::C::@constructor::c1::@formalParameter::a
@@ -7281,7 +7281,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: a @-1
                     element: <testLibrary>::@class::C::@constructor::c2::@formalParameter::a
@@ -7323,7 +7323,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: a @-1
                     element: <testLibrary>::@class::C::@constructor::c3::@formalParameter::a
@@ -7509,7 +7509,7 @@
               superKeyword: super @0
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: x @-1
                     element: <testLibrary>::@class::B::@constructor::new::@formalParameter::x
@@ -8858,7 +8858,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: x @-1
                     element: <testLibrary>::@class::MixinApp::@constructor::requiredArg::@formalParameter::x
@@ -8886,7 +8886,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: x @-1
                     element: <testLibrary>::@class::MixinApp::@constructor::positionalArg::@formalParameter::x
@@ -8914,7 +8914,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: x @-1
                     element: <testLibrary>::@class::MixinApp::@constructor::positionalArg2::@formalParameter::x
@@ -8942,7 +8942,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: x @-1
                     element: <testLibrary>::@class::MixinApp::@constructor::namedArg::@formalParameter::x
@@ -8970,7 +8970,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: x @-1
                     element: <testLibrary>::@class::MixinApp::@constructor::namedArg2::@formalParameter::x
@@ -9083,7 +9083,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: t @-1
                     element: <testLibrary>::@class::MixinApp::@constructor::ctor::@formalParameter::t
@@ -9208,7 +9208,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: t @-1
                     element: <testLibrary>::@class::MixinApp::@constructor::ctor::@formalParameter::t
@@ -9559,7 +9559,7 @@
             AssertInitializer
               assertKeyword: assert @27
               leftParenthesis: ( @33
-              condition: BooleanLiteral
+              condition2: BooleanLiteral
                 literal: true @34
                 staticType: bool
               rightParenthesis: ) @38
@@ -9617,7 +9617,7 @@
                 element: <testLibrary>::@class::A::@field::x
                 staticType: null
               equals: = @44
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @46
                 staticType: int
       getters
@@ -9687,7 +9687,7 @@
               superKeyword: super @54
               argumentList: ArgumentList
                 leftParenthesis: ( @59
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @60
                     staticType: int
@@ -9771,7 +9771,7 @@
                     staticType: null
                   arguments: ArgumentList
                     leftParenthesis: ( @46
-                    arguments
+                    arguments2
                       SimpleStringLiteral
                         literal: '0' @47
                     rightParenthesis: ) @50
@@ -9806,7 +9806,7 @@
                 staticType: null
               arguments: ArgumentList
                 leftParenthesis: ( @46
-                arguments
+                arguments2
                   SimpleStringLiteral
                     literal: '0' @47
                 rightParenthesis: ) @50
@@ -9818,7 +9818,7 @@
                 element: <testLibrary>::@class::A::@field::x
                 staticType: null
               equals: = @63
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @65
                 staticType: int
       getters
@@ -9942,7 +9942,7 @@
             AssertInitializer
               assertKeyword: assert @33
               leftParenthesis: ( @39
-              condition: BooleanLiteral
+              condition2: BooleanLiteral
                 literal: true @40
                 staticType: bool
               rightParenthesis: ) @44
@@ -10067,13 +10067,13 @@
             AssertInitializer
               assertKeyword: assert @38
               leftParenthesis: ( @44
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: x @45
                   element: <testLibrary>::@class::A::@constructor::new::@formalParameter::x
                   staticType: int
                 operator: > @47
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 0 @49
                   staticType: int
                 element: dart:core::@class::num::@method::>
@@ -13442,7 +13442,7 @@
                 element: <testLibrary>::@class::A::@field::f
                 staticType: null
               equals: = @68
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @70
                 staticType: int
       getters
@@ -23904,13 +23904,13 @@
             AssertInitializer
               assertKeyword: assert @29
               leftParenthesis: ( @35
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: x @36
                   element: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
                   staticType: int
                 operator: >= @38
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 42 @41
                   staticType: int
                 element: dart:core::@class::num::@method::>=
@@ -23959,20 +23959,20 @@
             AssertInitializer
               assertKeyword: assert @29
               leftParenthesis: ( @35
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: x @36
                   element: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
                   staticType: int
                 operator: >= @38
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 42 @41
                   staticType: int
                 element: dart:core::@class::num::@method::>=
                 staticInvokeType: bool Function(num)
                 staticType: bool
               comma: , @43
-              message: SimpleStringLiteral
+              message2: SimpleStringLiteral
                 literal: 'foo' @45
               rightParenthesis: ) @50
 ''');
@@ -24028,7 +24028,7 @@
                 element: <testLibrary>::@class::C::@field::x
                 staticType: null
               equals: = @37
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 42 @39
                 staticType: int
       getters
@@ -24096,7 +24096,7 @@
                 element: <testLibrary>::@class::C::@field::x
                 staticType: null
               equals: = @37
-              expression: MethodInvocation
+              expression2: MethodInvocation
                 methodName: SimpleIdentifier
                   token: foo @39
                   element: <testLibrary>::@function::foo
@@ -24184,7 +24184,7 @@
                 element: <testLibrary>::@class::A::@field::_f
                 staticType: null
               equals: = @54
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: f @56
                 element: <testLibrary>::@class::A::@constructor::new::@formalParameter::f
                 staticType: int
@@ -24254,9 +24254,9 @@
                 element: <testLibrary>::@class::C::@field::x
                 staticType: null
               equals: = @49
-              expression: RecordLiteral
+              expression2: RecordLiteral
                 leftParenthesis: ( @51
-                fields
+                fields2
                   IntegerLiteral
                     literal: 0 @52
                     staticType: int
@@ -24325,13 +24325,13 @@
                 element: <testLibrary>::@class::C::@field::f
                 staticType: null
               equals: = @37
-              expression: StringInterpolation
+              expression2: StringInterpolation
                 elements
                   InterpolationString
                     contents: ' @39
                   InterpolationExpression
                     leftBracket: ${ @40
-                    expression: IntegerLiteral
+                    expression2: IntegerLiteral
                       literal: 42 @42
                       staticType: int
                     rightBracket: } @44
@@ -24405,13 +24405,13 @@
                 element: <testLibrary>::@class::C::@field::f
                 staticType: null
               equals: = @42
-              expression: StringInterpolation
+              expression2: StringInterpolation
                 elements
                   InterpolationString
                     contents: ' @44
                   InterpolationExpression
                     leftBracket: $ @45
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: x @46
                       element: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
                       staticType: int
@@ -24485,12 +24485,12 @@
                 element: <testLibrary>::@class::C::@field::x
                 staticType: null
               equals: = @42
-              expression: BinaryExpression
-                leftOperand: IntegerLiteral
+              expression2: BinaryExpression
+                leftOperand2: IntegerLiteral
                   literal: 1 @44
                   staticType: int
                 operator: + @46
-                rightOperand: SimpleIdentifier
+                rightOperand2: SimpleIdentifier
                   token: p @48
                   element: <testLibrary>::@class::C::@constructor::new::@formalParameter::p
                   staticType: int
@@ -24579,7 +24579,7 @@
               thisKeyword: this @77
               argumentList: ArgumentList
                 leftParenthesis: ( @81
-                arguments
+                arguments2
                   InstanceCreationExpression
                     constructorName: ConstructorName
                       type: NamedType
@@ -24672,7 +24672,7 @@
               superKeyword: super @79
               argumentList: ArgumentList
                 leftParenthesis: ( @84
-                arguments
+                arguments2
                   ListLiteral
                     constKeyword: const @85
                     leftBracket: [ @91
@@ -24749,7 +24749,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @78
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 42 @79
                     staticType: int
@@ -24893,14 +24893,14 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @83
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 1 @84
                     staticType: int
                   NamedArgument
                     name: b @87
                     colon: : @88
-                    argumentExpression: IntegerLiteral
+                    argumentExpression2: IntegerLiteral
                       literal: 2 @90
                       staticType: int
                 rightParenthesis: ) @91
@@ -24969,7 +24969,7 @@
               superKeyword: super @69
               argumentList: ArgumentList
                 leftParenthesis: ( @74
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 42 @75
                     staticType: int
@@ -25028,7 +25028,7 @@
               thisKeyword: this @62
               argumentList: ArgumentList
                 leftParenthesis: ( @66
-                arguments
+                arguments2
                   ListLiteral
                     constKeyword: const @67
                     leftBracket: [ @73
@@ -25089,7 +25089,7 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @34
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 1 @35
                     staticType: int
@@ -25160,14 +25160,14 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @34
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 1 @35
                     staticType: int
                   NamedArgument
                     name: b @38
                     colon: : @39
-                    argumentExpression: IntegerLiteral
+                    argumentExpression2: IntegerLiteral
                       literal: 2 @41
                       staticType: int
                 rightParenthesis: ) @42
@@ -25230,7 +25230,7 @@
               thisKeyword: this @30
               argumentList: ArgumentList
                 leftParenthesis: ( @34
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 1 @35
                     staticType: int
@@ -27803,7 +27803,7 @@
                 element: <testLibrary>::@class::C::@field::x
                 staticType: null
               equals: = @37
-              expression: InstanceCreationExpression
+              expression2: InstanceCreationExpression
                 keyword: const @39
                 constructorName: ConstructorName
                   type: NamedType
@@ -27841,7 +27841,7 @@
                 element: <testLibrary>::@class::D::@field::x
                 staticType: null
               equals: = @90
-              expression: InstanceCreationExpression
+              expression2: InstanceCreationExpression
                 keyword: const @92
                 constructorName: ConstructorName
                   type: NamedType
@@ -28574,7 +28574,7 @@
                 element: <testLibrary>::@class::A::@field::foo
                 staticType: null
               equals: = @28
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @30
                 staticType: int
       getters
@@ -29130,12 +29130,12 @@
               element: <testLibrary>::@class::A::@field::foo
               initializer: expression_1
                 BinaryExpression
-                  leftOperand: SimpleIdentifier
+                  leftOperand2: SimpleIdentifier
                     token: augmented @91
                     element: <null>
                     staticType: InvalidType
                   operator: + @101
-                  rightOperand: IntegerLiteral
+                  rightOperand2: IntegerLiteral
                     literal: 1 @103
                     staticType: int
                   element: <null>
@@ -31679,7 +31679,7 @@
               initializer: expression_0
                 ListLiteral
                   leftBracket: [ @113
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @114
                       element: <testLibrary>::@getter::a
@@ -37648,7 +37648,7 @@
                 element: <testLibrary>::@class::C::@constructor::named
               argumentList: ArgumentList
                 leftParenthesis: ( @73
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 42 @74
                     staticType: int
diff --git a/pkg/analyzer/test/src/summary/elements/const_test.dart b/pkg/analyzer/test/src/summary/elements/const_test.dart
index 3e10d8a..810ddec 100644
--- a/pkg/analyzer/test/src/summary/elements/const_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/const_test.dart
@@ -42,7 +42,7 @@
           element: <testLibrary>::@topLevelVariable::b
           initializer: expression_1
             AsExpression
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: a @27
                 element: <testLibrary>::@getter::a
                 staticType: num
@@ -115,13 +115,13 @@
           initializer: expression_1
             ParenthesizedExpression
               leftParenthesis: ( @23
-              expression: AssignmentExpression
-                leftHandSide: SimpleIdentifier
+              expression2: AssignmentExpression
+                leftHandSide2: SimpleIdentifier
                   token: a @24
                   element: <null>
                   staticType: null
                 operator: += @26
-                rightHandSide: IntegerLiteral
+                rightHandSide2: IntegerLiteral
                   literal: 1 @29
                   staticType: int
                 readElement: <testLibrary>::@getter::a
@@ -188,10 +188,10 @@
           element: <testLibrary>::@topLevelVariable::a
           initializer: expression_0
             CascadeExpression
-              target: IntegerLiteral
+              target2: IntegerLiteral
                 literal: 0 @10
                 staticType: int
-              cascadeSections
+              cascadeSections2
                 PropertyAccess
                   operator: .. @14
                   propertyName: SimpleIdentifier
@@ -419,7 +419,7 @@
                   substitution: {T: int}
               argumentList: ArgumentList
                 leftParenthesis: ( @97
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @98
                     staticType: int
@@ -448,7 +448,7 @@
                   substitution: {T: int}
               argumentList: ArgumentList
                 leftParenthesis: ( @132
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @133
                     staticType: int
@@ -998,7 +998,7 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_0
             FunctionReference
-              function: SimpleIdentifier
+              function2: SimpleIdentifier
                 token: f @48
                 element: <testLibrary>::@function::f
                 staticType: void Function<T>(T)
@@ -1065,7 +1065,7 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_0
             FunctionReference
-              function: SimpleIdentifier
+              function2: SimpleIdentifier
                 token: f @28
                 element: <testLibrary>::@function::f
                 staticType: void Function<T>(T)
@@ -1142,7 +1142,7 @@
           initializer: expression_0
             ListLiteral
               leftBracket: [ @10
-              elements
+              elements2
                 IntegerLiteral
                   literal: 0 @11
                   staticType: int
@@ -1160,12 +1160,12 @@
           element: <testLibrary>::@topLevelVariable::c
           initializer: expression_2
             IndexExpression
-              target: SimpleIdentifier
+              target2: SimpleIdentifier
                 token: a @38
                 element: <testLibrary>::@getter::a
                 staticType: List<int>
               leftBracket: [ @39
-              index: SimpleIdentifier
+              index2: SimpleIdentifier
                 token: b @40
                 element: <testLibrary>::@getter::b
                 staticType: int
@@ -1288,7 +1288,7 @@
           initializer: expression_0
             ListLiteral
               leftBracket: [ @140
-              elements
+              elements2
                 InstanceCreationExpression
                   constructorName: ConstructorName
                     type: NamedType
@@ -1409,11 +1409,11 @@
               element: <testLibrary>::@class::C::@field::f
               initializer: expression_0
                 BinaryExpression
-                  leftOperand: IntegerLiteral
+                  leftOperand2: IntegerLiteral
                     literal: 1 @29
                     staticType: int
                   operator: + @31
-                  rightOperand: MethodInvocation
+                  rightOperand2: MethodInvocation
                     methodName: SimpleIdentifier
                       token: foo @33
                       element: <testLibrary>::@function::foo
@@ -1604,7 +1604,7 @@
             AssertInitializer
               assertKeyword: assert @24
               leftParenthesis: ( @30
-              condition: SimpleIdentifier
+              condition2: SimpleIdentifier
                 token: _notSerializableExpression @-1
                 element: <null>
                 staticType: null
@@ -1644,12 +1644,12 @@
             AssertInitializer
               assertKeyword: assert @24
               leftParenthesis: ( @30
-              condition: SimpleIdentifier
+              condition2: SimpleIdentifier
                 token: b @31
                 element: <null>
                 staticType: InvalidType
               comma: , @32
-              message: SimpleIdentifier
+              message2: SimpleIdentifier
                 token: _notSerializableExpression @-1
                 element: <null>
                 staticType: null
@@ -1707,7 +1707,7 @@
                 element: <testLibrary>::@class::A::@field::foo
                 staticType: null
               equals: = @49
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: _notSerializableExpression @-1
                 element: <null>
                 staticType: null
@@ -1819,7 +1819,7 @@
               thisKeyword: this @61
               argumentList: ArgumentList
                 leftParenthesis: ( @65
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @66
                     staticType: int
@@ -1897,7 +1897,7 @@
               superKeyword: super @78
               argumentList: ArgumentList
                 leftParenthesis: ( @83
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @84
                     staticType: int
@@ -1936,7 +1936,7 @@
           element: <testLibrary>::@topLevelVariable::a
           initializer: expression_0
             MethodInvocation
-              target: SimpleStringLiteral
+              target2: SimpleStringLiteral
                 literal: 'abc' @10
               operator: . @15
               methodName: SimpleIdentifier
@@ -1945,7 +1945,7 @@
                 staticType: int Function(int)
               argumentList: ArgumentList
                 leftParenthesis: ( @26
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @27
                     staticType: int
@@ -2032,11 +2032,11 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_0
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @10
                 staticType: int
               operator: + @12
-              rightOperand: MethodInvocation
+              rightOperand2: MethodInvocation
                 methodName: SimpleIdentifier
                   token: foo @14
                   element: <testLibrary>::@function::foo
@@ -2148,12 +2148,12 @@
           element: <testLibrary>::@topLevelVariable::b
           initializer: expression_1
             BinaryExpression
-              leftOperand: SimpleIdentifier
+              leftOperand2: SimpleIdentifier
                 token: a @32
                 element: <testLibrary>::@getter::a
                 staticType: int
               operator: + @34
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 5 @36
                 staticType: int
               element: dart:core::@class::num::@method::+
@@ -2266,7 +2266,7 @@
                   substitution: {K: int, V: String}
               argumentList: ArgumentList
                 leftParenthesis: ( @82
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 1 @83
                     staticType: int
@@ -2371,7 +2371,7 @@
                   substitution: {K: int, V: String}
               argumentList: ArgumentList
                 leftParenthesis: ( @54
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 1 @55
                     staticType: int
@@ -2463,7 +2463,7 @@
                   substitution: {K: int, V: String}
               argumentList: ArgumentList
                 leftParenthesis: ( @61
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 1 @62
                     staticType: int
@@ -2628,7 +2628,7 @@
                   substitution: {T: int}
               argumentList: ArgumentList
                 leftParenthesis: ( @72
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @73
                     staticType: int
@@ -2982,7 +2982,7 @@
                 element: <testLibrary>::@class::C::@constructor::named
               argumentList: ArgumentList
                 leftParenthesis: ( @97
-                arguments
+                arguments2
                   BooleanLiteral
                     literal: true @98
                     staticType: bool
@@ -2995,12 +2995,12 @@
                   NamedArgument
                     name: d @110
                     colon: : @111
-                    argumentExpression: SimpleStringLiteral
+                    argumentExpression2: SimpleStringLiteral
                       literal: 'ccc' @113
                   NamedArgument
                     name: e @120
                     colon: : @121
-                    argumentExpression: DoubleLiteral
+                    argumentExpression2: DoubleLiteral
                       literal: 3.4 @123
                       staticType: double
                 rightParenthesis: ) @126
@@ -3959,7 +3959,7 @@
           element: <testLibrary>::@topLevelVariable::b
           initializer: expression_1
             IsExpression
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: a @23
                 element: <testLibrary>::@getter::a
                 staticType: int
@@ -4045,7 +4045,7 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_1
             PropertyAccess
-              target: PrefixedIdentifier
+              target2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: C @57
                   element: <testLibrary>::@class::C
@@ -4133,7 +4133,7 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_0
             PropertyAccess
-              target: PrefixedIdentifier
+              target2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: C @32
                   element: package:test/a.dart::@class::C
@@ -4201,8 +4201,8 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_0
             PropertyAccess
-              target: PropertyAccess
-                target: PrefixedIdentifier
+              target2: PropertyAccess
+                target2: PrefixedIdentifier
                   prefix: SimpleIdentifier
                     token: p @37
                     element: <testLibraryFragment>::@prefix::p
@@ -4264,7 +4264,7 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_0
             PropertyAccess
-              target: SimpleStringLiteral
+              target2: SimpleStringLiteral
                 literal: 'abc' @10
               operator: . @15
               propertyName: SimpleIdentifier
@@ -4448,7 +4448,7 @@
           element: <testLibrary>::@topLevelVariable::v
           initializer: expression_0
             PropertyAccess
-              target: PrefixedIdentifier
+              target2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: p @33
                   element: <testLibraryFragment>::@prefix::p
@@ -4590,15 +4590,15 @@
                     type: int
                 rightBracket: > @27
               leftBracket: [ @28
-              elements
+              elements2
                 IfElement
                   ifKeyword: if @29
                   leftParenthesis: ( @32
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true @33
                     staticType: bool
                   rightParenthesis: ) @37
-                  thenElement: IntegerLiteral
+                  thenElement2: IntegerLiteral
                     literal: 1 @39
                     staticType: int
               rightBracket: ] @40
@@ -4651,19 +4651,19 @@
                     type: int
                 rightBracket: > @27
               leftBracket: [ @28
-              elements
+              elements2
                 IfElement
                   ifKeyword: if @29
                   leftParenthesis: ( @32
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true @33
                     staticType: bool
                   rightParenthesis: ) @37
-                  thenElement: IntegerLiteral
+                  thenElement2: IntegerLiteral
                     literal: 1 @39
                     staticType: int
                   elseKeyword: else @41
-                  elseElement: IntegerLiteral
+                  elseElement2: IntegerLiteral
                     literal: 2 @46
                     staticType: int
               rightBracket: ] @47
@@ -4711,7 +4711,7 @@
             ListLiteral
               constKeyword: const @17
               leftBracket: [ @23
-              elements
+              elements2
                 IntegerLiteral
                   literal: 1 @24
                   staticType: int
@@ -4767,10 +4767,10 @@
                     type: int
                 rightBracket: > @27
               leftBracket: [ @28
-              elements
+              elements2
                 SpreadElement
                   spreadOperator: ... @32
-                  expression: ListLiteral
+                  expression2: ListLiteral
                     typeArguments: TypeArgumentList
                       leftBracket: < @35
                       arguments
@@ -4780,7 +4780,7 @@
                           type: int
                       rightBracket: > @39
                     leftBracket: [ @40
-                    elements
+                    elements2
                       IntegerLiteral
                         literal: 1 @41
                         staticType: int
@@ -4838,10 +4838,10 @@
                     type: int
                 rightBracket: > @27
               leftBracket: [ @28
-              elements
+              elements2
                 SpreadElement
                   spreadOperator: ...? @32
-                  expression: ListLiteral
+                  expression2: ListLiteral
                     typeArguments: TypeArgumentList
                       leftBracket: < @36
                       arguments
@@ -4851,7 +4851,7 @@
                           type: int
                       rightBracket: > @40
                     leftBracket: [ @41
-                    elements
+                    elements2
                       IntegerLiteral
                         literal: 1 @42
                         staticType: int
@@ -4911,20 +4911,20 @@
                     type: int
                 rightBracket: > @32
               leftBracket: { @33
-              elements
+              elements2
                 IfElement
                   ifKeyword: if @34
                   leftParenthesis: ( @37
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true @38
                     staticType: bool
                   rightParenthesis: ) @42
-                  thenElement: MapLiteralEntry
-                    key: IntegerLiteral
+                  thenElement2: MapLiteralEntry
+                    key2: IntegerLiteral
                       literal: 1 @44
                       staticType: int
                     separator: : @45
-                    value: IntegerLiteral
+                    value2: IntegerLiteral
                       literal: 2 @47
                       staticType: int
               rightBracket: } @48
@@ -4973,13 +4973,13 @@
             SetOrMapLiteral
               constKeyword: const @17
               leftBracket: { @23
-              elements
+              elements2
                 MapLiteralEntry
-                  key: IntegerLiteral
+                  key2: IntegerLiteral
                     literal: 1 @24
                     staticType: int
                   separator: : @25
-                  value: DoubleLiteral
+                  value2: DoubleLiteral
                     literal: 1.0 @27
                     staticType: double
               rightBracket: } @30
@@ -5039,10 +5039,10 @@
                     type: int
                 rightBracket: > @32
               leftBracket: { @33
-              elements
+              elements2
                 SpreadElement
                   spreadOperator: ... @37
-                  expression: SetOrMapLiteral
+                  expression2: SetOrMapLiteral
                     typeArguments: TypeArgumentList
                       leftBracket: < @40
                       arguments
@@ -5056,13 +5056,13 @@
                           type: int
                       rightBracket: > @49
                     leftBracket: { @50
-                    elements
+                    elements2
                       MapLiteralEntry
-                        key: IntegerLiteral
+                        key2: IntegerLiteral
                           literal: 1 @51
                           staticType: int
                         separator: : @52
-                        value: IntegerLiteral
+                        value2: IntegerLiteral
                           literal: 2 @54
                           staticType: int
                     rightBracket: } @55
@@ -5125,10 +5125,10 @@
                     type: int
                 rightBracket: > @32
               leftBracket: { @33
-              elements
+              elements2
                 SpreadElement
                   spreadOperator: ...? @37
-                  expression: SetOrMapLiteral
+                  expression2: SetOrMapLiteral
                     typeArguments: TypeArgumentList
                       leftBracket: < @41
                       arguments
@@ -5142,13 +5142,13 @@
                           type: int
                       rightBracket: > @50
                     leftBracket: { @51
-                    elements
+                    elements2
                       MapLiteralEntry
-                        key: IntegerLiteral
+                        key2: IntegerLiteral
                           literal: 1 @52
                           staticType: int
                         separator: : @53
-                        value: IntegerLiteral
+                        value2: IntegerLiteral
                           literal: 2 @55
                           staticType: int
                     rightBracket: } @56
@@ -5210,7 +5210,7 @@
                 rightBracket: > @33
               argumentList: ArgumentList
                 leftParenthesis: ( @34
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 0 @35
                     staticType: int
@@ -5371,11 +5371,11 @@
                   element: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
                   initializer: expression_0
                     BinaryExpression
-                      leftOperand: IntegerLiteral
+                      leftOperand2: IntegerLiteral
                         literal: 1 @40
                         staticType: int
                       operator: + @42
-                      rightOperand: IntegerLiteral
+                      rightOperand2: IntegerLiteral
                         literal: 2 @44
                         staticType: int
                       element: dart:core::@class::num::@method::+
@@ -5446,11 +5446,11 @@
                   element: <testLibrary>::@class::C::@constructor::new::@formalParameter::x
                   initializer: expression_0
                     BinaryExpression
-                      leftOperand: IntegerLiteral
+                      leftOperand2: IntegerLiteral
                         literal: 1 @41
                         staticType: int
                       operator: + @43
-                      rightOperand: IntegerLiteral
+                      rightOperand2: IntegerLiteral
                         literal: 2 @45
                         staticType: int
                       element: dart:core::@class::num::@method::+
@@ -5522,11 +5522,11 @@
                   element: <testLibrary>::@class::C::@constructor::positional::@formalParameter::p
                   initializer: expression_0
                     BinaryExpression
-                      leftOperand: IntegerLiteral
+                      leftOperand2: IntegerLiteral
                         literal: 1 @36
                         staticType: int
                       operator: + @38
-                      rightOperand: IntegerLiteral
+                      rightOperand2: IntegerLiteral
                         literal: 2 @40
                         staticType: int
                       element: dart:core::@class::num::@method::+
@@ -5542,11 +5542,11 @@
                   element: <testLibrary>::@class::C::@constructor::named::@formalParameter::p
                   initializer: expression_1
                     BinaryExpression
-                      leftOperand: IntegerLiteral
+                      leftOperand2: IntegerLiteral
                         literal: 1 @65
                         staticType: int
                       operator: + @67
-                      rightOperand: IntegerLiteral
+                      rightOperand2: IntegerLiteral
                         literal: 2 @69
                         staticType: int
                       element: dart:core::@class::num::@method::+
@@ -5560,11 +5560,11 @@
                   element: <testLibrary>::@class::C::@method::methodPositional::@formalParameter::p
                   initializer: expression_2
                     BinaryExpression
-                      leftOperand: IntegerLiteral
+                      leftOperand2: IntegerLiteral
                         literal: 1 @103
                         staticType: int
                       operator: + @105
-                      rightOperand: IntegerLiteral
+                      rightOperand2: IntegerLiteral
                         literal: 2 @107
                         staticType: int
                       element: dart:core::@class::num::@method::+
@@ -5582,11 +5582,11 @@
                   element: <testLibrary>::@class::C::@method::methodNamed::@formalParameter::p
                   initializer: expression_3
                     BinaryExpression
-                      leftOperand: IntegerLiteral
+                      leftOperand2: IntegerLiteral
                         literal: 1 @183
                         staticType: int
                       operator: + @185
-                      rightOperand: IntegerLiteral
+                      rightOperand2: IntegerLiteral
                         literal: 2 @187
                         staticType: int
                       element: dart:core::@class::num::@method::+
@@ -5687,7 +5687,7 @@
           element: <testLibrary>::@topLevelVariable::b
           initializer: expression_1
             PostfixExpression
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a @23
                 element: <null>
                 staticType: null
@@ -5760,7 +5760,7 @@
           element: <testLibrary>::@topLevelVariable::b
           initializer: expression_1
             PostfixExpression
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a @28
                 element: <testLibrary>::@getter::a
                 staticType: int?
@@ -5830,7 +5830,7 @@
           initializer: expression_1
             PrefixExpression
               operator: - @23
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a @24
                 element: <testLibrary>::@getter::a
                 staticType: int
@@ -5901,7 +5901,7 @@
           initializer: expression_0
             PrefixExpression
               operator: - @28
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a @29
                 element: package:test/a.dart::@getter::a
                 staticType: Object
@@ -5954,7 +5954,7 @@
           initializer: expression_1
             PrefixExpression
               operator: ++ @23
-              operand: SimpleIdentifier
+              operand2: SimpleIdentifier
                 token: a @25
                 element: <null>
                 staticType: null
@@ -6027,7 +6027,7 @@
           initializer: expression_1
             RecordLiteral
               leftParenthesis: ( @23
-              fields
+              fields2
                 SimpleIdentifier
                   token: a @24
                   element: <testLibrary>::@getter::a
@@ -6035,7 +6035,7 @@
                 RecordLiteralNamedField
                   name: a @27
                   colon: : @28
-                  fieldExpression: SimpleIdentifier
+                  fieldExpression2: SimpleIdentifier
                     token: a @30
                     element: <testLibrary>::@getter::a
                     staticType: int
@@ -6105,7 +6105,7 @@
             RecordLiteral
               constKeyword: const @23
               leftParenthesis: ( @29
-              fields
+              fields2
                 SimpleIdentifier
                   token: a @30
                   element: <testLibrary>::@getter::a
@@ -6113,7 +6113,7 @@
                 RecordLiteralNamedField
                   name: a @33
                   colon: : @34
-                  fieldExpression: SimpleIdentifier
+                  fieldExpression2: SimpleIdentifier
                     token: a @36
                     element: <testLibrary>::@getter::a
                     staticType: int
@@ -6338,7 +6338,7 @@
           element: <testLibrary>::@topLevelVariable::V
           initializer: expression_0
             PropertyAccess
-              target: PrefixedIdentifier
+              target2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: p @33
                   element: <testLibraryFragment>::@prefix::p
@@ -6552,7 +6552,7 @@
           element: <testLibrary>::@topLevelVariable::V
           initializer: expression_0
             PropertyAccess
-              target: PrefixedIdentifier
+              target2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: p @33
                   element: <testLibraryFragment>::@prefix::p
@@ -6927,12 +6927,12 @@
           element: <testLibrary>::@topLevelVariable::B
           initializer: expression_1
             BinaryExpression
-              leftOperand: SimpleIdentifier
+              leftOperand2: SimpleIdentifier
                 token: A @23
                 element: <testLibrary>::@getter::A
                 staticType: int
               operator: + @25
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @27
                 staticType: int
               element: dart:core::@class::num::@method::+
@@ -6999,12 +6999,12 @@
           element: <testLibrary>::@topLevelVariable::B
           initializer: expression_0
             BinaryExpression
-              leftOperand: SimpleIdentifier
+              leftOperand2: SimpleIdentifier
                 token: A @28
                 element: package:test/a.dart::@getter::A
                 staticType: int
               operator: + @30
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @32
                 staticType: int
               element: dart:core::@class::num::@method::+
@@ -7058,7 +7058,7 @@
           element: <testLibrary>::@topLevelVariable::B
           initializer: expression_0
             BinaryExpression
-              leftOperand: PrefixedIdentifier
+              leftOperand2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: p @33
                   element: <testLibraryFragment>::@prefix::p
@@ -7071,7 +7071,7 @@
                 element: package:test/a.dart::@getter::A
                 staticType: int
               operator: + @37
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @39
                 staticType: int
               element: dart:core::@class::num::@method::+
@@ -7193,7 +7193,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
@@ -7983,7 +7983,7 @@
           element: <testLibrary>::@topLevelVariable::V
           initializer: expression_0
             PropertyAccess
-              target: PrefixedIdentifier
+              target2: PrefixedIdentifier
                 prefix: SimpleIdentifier
                   token: p @35
                   element: <testLibraryFragment>::@prefix::p
@@ -8049,15 +8049,15 @@
                     type: int
                 rightBracket: > @27
               leftBracket: { @28
-              elements
+              elements2
                 IfElement
                   ifKeyword: if @29
                   leftParenthesis: ( @32
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true @33
                     staticType: bool
                   rightParenthesis: ) @37
-                  thenElement: IntegerLiteral
+                  thenElement2: IntegerLiteral
                     literal: 1 @39
                     staticType: int
               rightBracket: } @40
@@ -8106,7 +8106,7 @@
             SetOrMapLiteral
               constKeyword: const @17
               leftBracket: { @23
-              elements
+              elements2
                 IntegerLiteral
                   literal: 1 @24
                   staticType: int
@@ -8163,10 +8163,10 @@
                     type: int
                 rightBracket: > @27
               leftBracket: { @28
-              elements
+              elements2
                 SpreadElement
                   spreadOperator: ... @32
-                  expression: SetOrMapLiteral
+                  expression2: SetOrMapLiteral
                     typeArguments: TypeArgumentList
                       leftBracket: < @35
                       arguments
@@ -8176,7 +8176,7 @@
                           type: int
                       rightBracket: > @39
                     leftBracket: { @40
-                    elements
+                    elements2
                       IntegerLiteral
                         literal: 1 @41
                         staticType: int
@@ -8236,10 +8236,10 @@
                     type: int
                 rightBracket: > @27
               leftBracket: { @28
-              elements
+              elements2
                 SpreadElement
                   spreadOperator: ...? @32
-                  expression: SetOrMapLiteral
+                  expression2: SetOrMapLiteral
                     typeArguments: TypeArgumentList
                       leftBracket: < @36
                       arguments
@@ -8249,7 +8249,7 @@
                           type: int
                       rightBracket: > @40
                     leftBracket: { @41
-                    elements
+                    elements2
                       IntegerLiteral
                         literal: 1 @42
                         staticType: int
@@ -8314,11 +8314,11 @@
           element: <testLibrary>::@topLevelVariable::vEqual
           initializer: expression_0
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @15
                 staticType: int
               operator: == @17
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @20
                 staticType: int
               element: dart:core::@class::num::@method::==
@@ -8329,11 +8329,11 @@
           element: <testLibrary>::@topLevelVariable::vAnd
           initializer: expression_1
             BinaryExpression
-              leftOperand: BooleanLiteral
+              leftOperand2: BooleanLiteral
                 literal: true @36
                 staticType: bool
               operator: && @41
-              rightOperand: BooleanLiteral
+              rightOperand2: BooleanLiteral
                 literal: false @44
                 staticType: bool
               element: <null>
@@ -8344,11 +8344,11 @@
           element: <testLibrary>::@topLevelVariable::vOr
           initializer: expression_2
             BinaryExpression
-              leftOperand: BooleanLiteral
+              leftOperand2: BooleanLiteral
                 literal: false @63
                 staticType: bool
               operator: || @69
-              rightOperand: BooleanLiteral
+              rightOperand2: BooleanLiteral
                 literal: true @72
                 staticType: bool
               element: <null>
@@ -8359,11 +8359,11 @@
           element: <testLibrary>::@topLevelVariable::vBitXor
           initializer: expression_3
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @94
                 staticType: int
               operator: ^ @96
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @98
                 staticType: int
               element: dart:core::@class::int::@method::^
@@ -8374,11 +8374,11 @@
           element: <testLibrary>::@topLevelVariable::vBitAnd
           initializer: expression_4
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @117
                 staticType: int
               operator: & @119
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @121
                 staticType: int
               element: dart:core::@class::int::@method::&
@@ -8389,11 +8389,11 @@
           element: <testLibrary>::@topLevelVariable::vBitOr
           initializer: expression_5
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @139
                 staticType: int
               operator: | @141
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @143
                 staticType: int
               element: dart:core::@class::int::@method::|
@@ -8404,11 +8404,11 @@
           element: <testLibrary>::@topLevelVariable::vBitShiftLeft
           initializer: expression_6
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @168
                 staticType: int
               operator: << @170
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @173
                 staticType: int
               element: dart:core::@class::int::@method::<<
@@ -8419,11 +8419,11 @@
           element: <testLibrary>::@topLevelVariable::vBitShiftRight
           initializer: expression_7
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @199
                 staticType: int
               operator: >> @201
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @204
                 staticType: int
               element: dart:core::@class::int::@method::>>
@@ -8434,11 +8434,11 @@
           element: <testLibrary>::@topLevelVariable::vAdd
           initializer: expression_8
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @220
                 staticType: int
               operator: + @222
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @224
                 staticType: int
               element: dart:core::@class::num::@method::+
@@ -8449,11 +8449,11 @@
           element: <testLibrary>::@topLevelVariable::vSubtract
           initializer: expression_9
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @245
                 staticType: int
               operator: - @247
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @249
                 staticType: int
               element: dart:core::@class::num::@method::-
@@ -8464,11 +8464,11 @@
           element: <testLibrary>::@topLevelVariable::vMiltiply
           initializer: expression_10
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @270
                 staticType: int
               operator: * @272
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @274
                 staticType: int
               element: dart:core::@class::num::@method::*
@@ -8479,11 +8479,11 @@
           element: <testLibrary>::@topLevelVariable::vDivide
           initializer: expression_11
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @293
                 staticType: int
               operator: / @295
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @297
                 staticType: int
               element: dart:core::@class::num::@method::/
@@ -8494,11 +8494,11 @@
           element: <testLibrary>::@topLevelVariable::vFloorDivide
           initializer: expression_12
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @321
                 staticType: int
               operator: ~/ @323
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @326
                 staticType: int
               element: dart:core::@class::num::@method::~/
@@ -8509,11 +8509,11 @@
           element: <testLibrary>::@topLevelVariable::vModulo
           initializer: expression_13
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @345
                 staticType: int
               operator: % @347
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @349
                 staticType: int
               element: dart:core::@class::num::@method::%
@@ -8524,11 +8524,11 @@
           element: <testLibrary>::@topLevelVariable::vGreater
           initializer: expression_14
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @369
                 staticType: int
               operator: > @371
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @373
                 staticType: int
               element: dart:core::@class::num::@method::>
@@ -8539,11 +8539,11 @@
           element: <testLibrary>::@topLevelVariable::vGreaterEqual
           initializer: expression_15
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @398
                 staticType: int
               operator: >= @400
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @403
                 staticType: int
               element: dart:core::@class::num::@method::>=
@@ -8554,11 +8554,11 @@
           element: <testLibrary>::@topLevelVariable::vLess
           initializer: expression_16
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @420
                 staticType: int
               operator: < @422
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @424
                 staticType: int
               element: dart:core::@class::num::@method::<
@@ -8569,11 +8569,11 @@
           element: <testLibrary>::@topLevelVariable::vLessEqual
           initializer: expression_17
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @446
                 staticType: int
               operator: <= @448
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @451
                 staticType: int
               element: dart:core::@class::num::@method::<=
@@ -8889,14 +8889,14 @@
           element: <testLibrary>::@topLevelVariable::vConditional
           initializer: expression_0
             ConditionalExpression
-              condition: ParenthesizedExpression
+              condition2: ParenthesizedExpression
                 leftParenthesis: ( @21
-                expression: BinaryExpression
-                  leftOperand: IntegerLiteral
+                expression2: BinaryExpression
+                  leftOperand2: IntegerLiteral
                     literal: 1 @22
                     staticType: int
                   operator: == @24
-                  rightOperand: IntegerLiteral
+                  rightOperand2: IntegerLiteral
                     literal: 2 @27
                     staticType: int
                   element: dart:core::@class::num::@method::==
@@ -8905,11 +8905,11 @@
                 rightParenthesis: ) @28
                 staticType: bool
               question: ? @30
-              thenExpression: IntegerLiteral
+              thenExpression2: IntegerLiteral
                 literal: 11 @32
                 staticType: int
               colon: : @35
-              elseExpression: IntegerLiteral
+              elseExpression2: IntegerLiteral
                 literal: 22 @37
                 staticType: int
               staticType: int
@@ -8951,14 +8951,14 @@
           element: <testLibrary>::@topLevelVariable::vIdentical
           initializer: expression_0
             ConditionalExpression
-              condition: ParenthesizedExpression
+              condition2: ParenthesizedExpression
                 leftParenthesis: ( @19
-                expression: BinaryExpression
-                  leftOperand: IntegerLiteral
+                expression2: BinaryExpression
+                  leftOperand2: IntegerLiteral
                     literal: 1 @20
                     staticType: int
                   operator: == @22
-                  rightOperand: IntegerLiteral
+                  rightOperand2: IntegerLiteral
                     literal: 2 @25
                     staticType: int
                   element: dart:core::@class::num::@method::==
@@ -8967,11 +8967,11 @@
                 rightParenthesis: ) @26
                 staticType: bool
               question: ? @28
-              thenExpression: IntegerLiteral
+              thenExpression2: IntegerLiteral
                 literal: 11 @30
                 staticType: int
               colon: : @33
-              elseExpression: IntegerLiteral
+              elseExpression2: IntegerLiteral
                 literal: 22 @35
                 staticType: int
               staticType: int
@@ -9013,11 +9013,11 @@
           element: <testLibrary>::@topLevelVariable::vIfNull
           initializer: expression_0
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @16
                 staticType: int
               operator: ?? @18
-              rightOperand: DoubleLiteral
+              rightOperand2: DoubleLiteral
                 literal: 2.0 @21
                 staticType: double
               element: <null>
@@ -9104,7 +9104,7 @@
           initializer: expression_4
             PrefixExpression
               operator: - @115
-              operand: IntegerLiteral
+              operand2: IntegerLiteral
                 literal: 2 @116
                 staticType: int
               element: dart:core::@class::int::@method::unary-
@@ -9165,7 +9165,7 @@
                   contents: 'aaa  @349
                 InterpolationExpression
                   leftBracket: ${ @354
-                  expression: BooleanLiteral
+                  expression2: BooleanLiteral
                     literal: true @356
                     staticType: bool
                   rightBracket: } @360
@@ -9173,7 +9173,7 @@
                   contents:   @361
                 InterpolationExpression
                   leftBracket: ${ @362
-                  expression: IntegerLiteral
+                  expression2: IntegerLiteral
                     literal: 42 @364
                     staticType: int
                   rightBracket: } @366
@@ -9429,7 +9429,7 @@
           element: <testLibrary>::@topLevelVariable::b
           initializer: expression_1
             MethodInvocation
-              target: SimpleIdentifier
+              target2: SimpleIdentifier
                 token: a @28
                 element: <testLibrary>::@getter::a
                 staticType: int?
@@ -9505,11 +9505,11 @@
           element: <testLibrary>::@topLevelVariable::b
           initializer: expression_1
             CascadeExpression
-              target: SimpleIdentifier
+              target2: SimpleIdentifier
                 token: a @28
                 element: <testLibrary>::@getter::a
                 staticType: int?
-              cascadeSections
+              cascadeSections2
                 MethodInvocation
                   operator: ?.. @29
                   methodName: SimpleIdentifier
@@ -9585,9 +9585,9 @@
           initializer: expression_1
             ListLiteral
               leftBracket: [ @44
-              elements
+              elements2
                 PropertyAccess
-                  target: SimpleIdentifier
+                  target2: SimpleIdentifier
                     token: a @45
                     element: <testLibrary>::@getter::a
                     staticType: String?
@@ -9655,14 +9655,14 @@
           element: <testLibrary>::@topLevelVariable::v1
           initializer: expression_0
             BinaryExpression
-              leftOperand: ParenthesizedExpression
+              leftOperand2: ParenthesizedExpression
                 leftParenthesis: ( @15
-                expression: BinaryExpression
-                  leftOperand: IntegerLiteral
+                expression2: BinaryExpression
+                  leftOperand2: IntegerLiteral
                     literal: 1 @16
                     staticType: int
                   operator: + @18
-                  rightOperand: IntegerLiteral
+                  rightOperand2: IntegerLiteral
                     literal: 2 @20
                     staticType: int
                   element: dart:core::@class::num::@method::+
@@ -9671,7 +9671,7 @@
                 rightParenthesis: ) @21
                 staticType: int
               operator: * @23
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 3 @25
                 staticType: int
               element: dart:core::@class::num::@method::*
@@ -9683,14 +9683,14 @@
           initializer: expression_1
             PrefixExpression
               operator: - @43
-              operand: ParenthesizedExpression
+              operand2: ParenthesizedExpression
                 leftParenthesis: ( @44
-                expression: BinaryExpression
-                  leftOperand: IntegerLiteral
+                expression2: BinaryExpression
+                  leftOperand2: IntegerLiteral
                     literal: 1 @45
                     staticType: int
                   operator: + @47
-                  rightOperand: IntegerLiteral
+                  rightOperand2: IntegerLiteral
                     literal: 2 @49
                     staticType: int
                   element: dart:core::@class::num::@method::+
@@ -9705,13 +9705,13 @@
           element: <testLibrary>::@topLevelVariable::v3
           initializer: expression_2
             PropertyAccess
-              target: ParenthesizedExpression
+              target2: ParenthesizedExpression
                 leftParenthesis: ( @68
-                expression: BinaryExpression
-                  leftOperand: SimpleStringLiteral
+                expression2: BinaryExpression
+                  leftOperand2: SimpleStringLiteral
                     literal: 'aaa' @69
                   operator: + @75
-                  rightOperand: SimpleStringLiteral
+                  rightOperand2: SimpleStringLiteral
                     literal: 'bbb' @77
                   element: dart:core::@class::String::@method::+
                   staticInvokeType: String Function(String)
@@ -9797,11 +9797,11 @@
           element: <testLibrary>::@topLevelVariable::vNotEqual
           initializer: expression_0
             BinaryExpression
-              leftOperand: IntegerLiteral
+              leftOperand2: IntegerLiteral
                 literal: 1 @18
                 staticType: int
               operator: != @20
-              rightOperand: IntegerLiteral
+              rightOperand2: IntegerLiteral
                 literal: 2 @23
                 staticType: int
               element: dart:core::@class::num::@method::==
@@ -9813,7 +9813,7 @@
           initializer: expression_1
             PrefixExpression
               operator: ! @39
-              operand: BooleanLiteral
+              operand2: BooleanLiteral
                 literal: true @40
                 staticType: bool
               element: <null>
@@ -9824,7 +9824,7 @@
           initializer: expression_2
             PrefixExpression
               operator: - @62
-              operand: IntegerLiteral
+              operand2: IntegerLiteral
                 literal: 1 @63
                 staticType: int
               element: dart:core::@class::int::@method::unary-
@@ -9835,7 +9835,7 @@
           initializer: expression_3
             PrefixExpression
               operator: ~ @86
-              operand: IntegerLiteral
+              operand2: IntegerLiteral
                 literal: 1 @87
                 staticType: int
               element: dart:core::@class::int::@method::~
@@ -10007,7 +10007,7 @@
           initializer: expression_0
             ThrowExpression
               throwKeyword: throw @10
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 42 @16
                 staticType: int
               staticType: Never
@@ -10081,7 +10081,7 @@
                     type: dynamic
                 rightBracket: > @61
               leftBracket: [ @62
-              elements
+              elements2
                 IntegerLiteral
                   literal: 1 @63
                   staticType: int
@@ -10108,7 +10108,7 @@
                     type: int
                 rightBracket: > @118
               leftBracket: [ @119
-              elements
+              elements2
                 IntegerLiteral
                   literal: 1 @120
                   staticType: int
@@ -10809,7 +10809,7 @@
             ListLiteral
               constKeyword: const @10
               leftBracket: [ @16
-              elements
+              elements2
                 IntegerLiteral
                   literal: 1 @17
                   staticType: int
@@ -10861,27 +10861,27 @@
             SetOrMapLiteral
               constKeyword: const @10
               leftBracket: { @16
-              elements
+              elements2
                 MapLiteralEntry
-                  key: IntegerLiteral
+                  key2: IntegerLiteral
                     literal: 0 @17
                     staticType: int
                   separator: : @18
-                  value: SimpleStringLiteral
+                  value2: SimpleStringLiteral
                     literal: 'aaa' @20
                 MapLiteralEntry
-                  key: IntegerLiteral
+                  key2: IntegerLiteral
                     literal: 1 @27
                     staticType: int
                   separator: : @28
-                  value: SimpleStringLiteral
+                  value2: SimpleStringLiteral
                     literal: 'bbb' @30
                 MapLiteralEntry
-                  key: IntegerLiteral
+                  key2: IntegerLiteral
                     literal: 2 @37
                     staticType: int
                   separator: : @38
-                  value: SimpleStringLiteral
+                  value2: SimpleStringLiteral
                     literal: 'ccc' @40
               rightBracket: } @45
               isMap: true
@@ -10926,7 +10926,7 @@
             SetOrMapLiteral
               constKeyword: const @10
               leftBracket: { @16
-              elements
+              elements2
                 IntegerLiteral
                   literal: 0 @17
                   staticType: int
@@ -11081,7 +11081,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
@@ -11269,7 +11269,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
diff --git a/pkg/analyzer/test/src/summary/elements/default_value_test.dart b/pkg/analyzer/test/src/summary/elements/default_value_test.dart
index 941fe4f..00c2969 100644
--- a/pkg/analyzer/test/src/summary/elements/default_value_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/default_value_test.dart
@@ -110,7 +110,7 @@
                   element: <testLibrary>::@class::X::@constructor::new::@formalParameter::f
                   initializer: expression_0
                     FunctionReference
-                      function: SimpleIdentifier
+                      function2: SimpleIdentifier
                         token: defaultF @93
                         element: <testLibrary>::@function::defaultF
                         staticType: void Function<T>(T)
@@ -391,17 +391,17 @@
               initializer: expression_0
                 RecordLiteral
                   leftParenthesis: ( @32
-                  fields
+                  fields2
                     RecordLiteralNamedField
                       name: f1 @33
                       colon: : @35
-                      fieldExpression: IntegerLiteral
+                      fieldExpression2: IntegerLiteral
                         literal: 1 @37
                         staticType: int
                     RecordLiteralNamedField
                       name: f2 @40
                       colon: : @42
-                      fieldExpression: BooleanLiteral
+                      fieldExpression2: BooleanLiteral
                         literal: true @44
                         staticType: bool
                   rightParenthesis: ) @48
@@ -441,17 +441,17 @@
                 RecordLiteral
                   constKeyword: const @32
                   leftParenthesis: ( @38
-                  fields
+                  fields2
                     RecordLiteralNamedField
                       name: f1 @39
                       colon: : @41
-                      fieldExpression: IntegerLiteral
+                      fieldExpression2: IntegerLiteral
                         literal: 1 @43
                         staticType: int
                     RecordLiteralNamedField
                       name: f2 @46
                       colon: : @48
-                      fieldExpression: BooleanLiteral
+                      fieldExpression2: BooleanLiteral
                         literal: true @50
                         staticType: bool
                   rightParenthesis: ) @54
@@ -490,7 +490,7 @@
               initializer: expression_0
                 RecordLiteral
                   leftParenthesis: ( @24
-                  fields
+                  fields2
                     IntegerLiteral
                       literal: 1 @25
                       staticType: int
@@ -534,7 +534,7 @@
                 RecordLiteral
                   constKeyword: const @24
                   leftParenthesis: ( @30
-                  fields
+                  fields2
                     IntegerLiteral
                       literal: 1 @31
                       staticType: int
diff --git a/pkg/analyzer/test/src/summary/elements/duplicate_declaration_test.dart b/pkg/analyzer/test/src/summary/elements/duplicate_declaration_test.dart
index fcad1fa..a945fd1 100644
--- a/pkg/analyzer/test/src/summary/elements/duplicate_declaration_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/duplicate_declaration_test.dart
@@ -585,7 +585,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
@@ -664,7 +664,7 @@
               initializer: expression_6
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: c @-1
                       element: <testLibrary>::@enum::E#1::@getter::c
diff --git a/pkg/analyzer/test/src/summary/elements/enum_test.dart b/pkg/analyzer/test/src/summary/elements/enum_test.dart
index c4ad71c..65b0717 100644
--- a/pkg/analyzer/test/src/summary/elements/enum_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/enum_test.dart
@@ -47,7 +47,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @12
-                    arguments
+                    arguments2
                       SymbolLiteral
                         poundSign: # @13
                         components
@@ -61,7 +61,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -175,7 +175,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::A::@getter::v1
@@ -359,7 +359,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::A::@getter::v1
@@ -558,7 +558,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::A::@getter::v1
@@ -753,7 +753,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -893,7 +893,7 @@
                     element: <null>
                   argumentList: ArgumentList
                     leftParenthesis: ( @13
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 1 @14
                         staticType: null
@@ -913,7 +913,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @20
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 2 @21
                         staticType: int
@@ -925,7 +925,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::A::@getter::v1
@@ -976,7 +976,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @79
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 3 @80
                         staticType: int
@@ -1089,7 +1089,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::A::@getter::v1
@@ -1226,7 +1226,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -1326,7 +1326,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -1426,7 +1426,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -1511,7 +1511,7 @@
               initializer: expression_0
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -1704,7 +1704,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::A::@getter::v1
@@ -1924,7 +1924,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
@@ -2085,7 +2085,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
@@ -2246,7 +2246,7 @@
                       substitution: {T: int}
                   argumentList: ArgumentList
                     leftParenthesis: ( @17
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 1 @18
                         staticType: int
@@ -2267,7 +2267,7 @@
                       substitution: {T: String}
                   argumentList: ArgumentList
                     leftParenthesis: ( @30
-                    arguments
+                    arguments2
                       SimpleStringLiteral
                         literal: '2' @31
                     rightParenthesis: ) @34
@@ -2278,7 +2278,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: int @-1
                       element: <testLibrary>::@enum::E::@getter::int
@@ -2416,7 +2416,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -2566,7 +2566,7 @@
                     staticType: null
                   arguments: ArgumentList
                     leftParenthesis: ( @72
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 100 @73
                         staticType: int
@@ -2611,7 +2611,7 @@
                     staticType: null
                   arguments: ArgumentList
                     leftParenthesis: ( @92
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 300 @93
                         staticType: int
@@ -2635,7 +2635,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
@@ -2711,7 +2711,7 @@
                 staticType: null
               arguments: ArgumentList
                 leftParenthesis: ( @72
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 100 @73
                     staticType: int
@@ -2742,7 +2742,7 @@
                 staticType: null
               arguments: ArgumentList
                 leftParenthesis: ( @92
-                arguments
+                arguments2
                   IntegerLiteral
                     literal: 300 @93
                     staticType: int
@@ -2835,7 +2835,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -2954,7 +2954,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -3069,7 +3069,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: _name @-1
                       element: <testLibrary>::@enum::E::@getter::_name
@@ -3172,7 +3172,7 @@
                       substitution: {T: double}
                   argumentList: ArgumentList
                     leftParenthesis: ( @23
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 42 @24
                         staticType: double
@@ -3184,7 +3184,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -3289,7 +3289,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: _ @-1
                       element: <testLibrary>::@enum::E::@getter::_
@@ -3391,7 +3391,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -3500,7 +3500,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -3551,7 +3551,7 @@
             AssertInitializer
               assertKeyword: assert @26
               leftParenthesis: ( @32
-              condition: BooleanLiteral
+              condition2: BooleanLiteral
                 literal: true @33
                 staticType: bool
               rightParenthesis: ) @37
@@ -3609,7 +3609,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -3674,7 +3674,7 @@
                 element: <testLibrary>::@enum::E::@field::x
                 staticType: null
               equals: = @43
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @45
                 staticType: int
           superConstructor: dart:core::@class::Enum::@constructor::new
@@ -3739,7 +3739,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -3762,7 +3762,7 @@
                     staticType: null
                   arguments: ArgumentList
                     leftParenthesis: ( @45
-                    arguments
+                    arguments2
                       SimpleStringLiteral
                         literal: '0' @46
                     rightParenthesis: ) @49
@@ -3820,7 +3820,7 @@
                 staticType: null
               arguments: ArgumentList
                 leftParenthesis: ( @45
-                arguments
+                arguments2
                   SimpleStringLiteral
                     literal: '0' @46
                 rightParenthesis: ) @49
@@ -3832,7 +3832,7 @@
                 element: <testLibrary>::@enum::E::@field::y
                 staticType: null
               equals: = @62
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @64
                 staticType: int
           superConstructor: dart:core::@class::Enum::@constructor::new
@@ -3886,7 +3886,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @19
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @20
                         staticType: int
@@ -3898,7 +3898,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -4026,7 +4026,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -4078,7 +4078,7 @@
             AssertInitializer
               assertKeyword: assert @40
               leftParenthesis: ( @46
-              condition: BooleanLiteral
+              condition2: BooleanLiteral
                 literal: true @47
                 staticType: bool
               rightParenthesis: ) @51
@@ -4135,7 +4135,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -4233,7 +4233,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -4284,7 +4284,7 @@
             AssertInitializer
               assertKeyword: assert @26
               leftParenthesis: ( @32
-              condition: BooleanLiteral
+              condition2: BooleanLiteral
                 literal: true @33
                 staticType: bool
               rightParenthesis: ) @37
@@ -4333,7 +4333,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @19
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 1 @20
                         staticType: int
@@ -4345,7 +4345,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -4403,13 +4403,13 @@
             AssertInitializer
               assertKeyword: assert @34
               leftParenthesis: ( @40
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: x @41
                   element: <testLibrary>::@enum::E::@constructor::new::@formalParameter::x
                   staticType: int
                 operator: > @43
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 0 @45
                   staticType: int
                 element: dart:core::@class::num::@method::>
@@ -4459,11 +4459,11 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @30
-                    arguments
+                    arguments2
                       NamedArgument
                         name: foo @31
                         colon: : @34
-                        argumentExpression: IntegerLiteral
+                        argumentExpression2: IntegerLiteral
                           literal: 0 @36
                           staticType: int
                     rightParenthesis: ) @37
@@ -4474,7 +4474,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -4588,7 +4588,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @30
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @31
                         staticType: int
@@ -4600,7 +4600,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -4714,11 +4714,11 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @38
-                    arguments
+                    arguments2
                       NamedArgument
                         name: foo @39
                         colon: : @42
-                        argumentExpression: IntegerLiteral
+                        argumentExpression2: IntegerLiteral
                           literal: 0 @44
                           staticType: int
                     rightParenthesis: ) @45
@@ -4729,7 +4729,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -4855,7 +4855,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -5000,7 +5000,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @69
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @70
                         staticType: int
@@ -5012,7 +5012,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -5153,7 +5153,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @25
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @26
                         staticType: int
@@ -5165,7 +5165,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -5315,7 +5315,7 @@
                     element: <testLibrary>::@enum::B::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @69
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @70
                         staticType: int
@@ -5327,7 +5327,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::B::@getter::v
@@ -5468,7 +5468,7 @@
                       substitution: {T: int}
                   argumentList: ArgumentList
                     leftParenthesis: ( @28
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @29
                         staticType: int
@@ -5480,7 +5480,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -5599,7 +5599,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @22
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @23
                         staticType: int
@@ -5611,7 +5611,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -5724,7 +5724,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @23
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @24
                         staticType: int
@@ -5736,7 +5736,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -5832,7 +5832,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @21
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @22
                         staticType: int
@@ -5844,7 +5844,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -5953,7 +5953,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -6056,7 +6056,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -6171,7 +6171,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -6359,7 +6359,7 @@
                       substitution: {T: int, U: int}
                   argumentList: ArgumentList
                     leftParenthesis: ( @50
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @51
                         staticType: int
@@ -6374,7 +6374,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -6490,7 +6490,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -6587,7 +6587,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -6696,7 +6696,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -6825,7 +6825,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -6948,7 +6948,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -7065,7 +7065,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -7173,7 +7173,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -7291,7 +7291,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -7359,7 +7359,7 @@
                 element: <testLibrary>::@enum::A::@field::f
                 staticType: null
               equals: = @72
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @74
                 staticType: int
           superConstructor: dart:core::@class::Enum::@constructor::new
@@ -7418,7 +7418,7 @@
                     element: <null>
                   argumentList: ArgumentList
                     leftParenthesis: ( @12
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @13
                         staticType: int
@@ -7430,7 +7430,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -7565,7 +7565,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -7687,7 +7687,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -7786,7 +7786,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -7893,7 +7893,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8004,7 +8004,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8112,7 +8112,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8133,11 +8133,11 @@
                   element: <testLibrary>::@enum::E::@constructor::new::@formalParameter::x
                   initializer: expression_2
                     BinaryExpression
-                      leftOperand: IntegerLiteral
+                      leftOperand2: IntegerLiteral
                         literal: 1 @50
                         staticType: int
                       operator: + @52
-                      rightOperand: IntegerLiteral
+                      rightOperand2: IntegerLiteral
                         literal: 2 @54
                         staticType: int
                       element: dart:core::@class::num::@method::+
@@ -8251,7 +8251,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8375,7 +8375,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8499,7 +8499,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8623,7 +8623,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8749,7 +8749,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -8888,7 +8888,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9001,7 +9001,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9072,8 +9072,8 @@
             AssertInitializer
               assertKeyword: assert @51
               leftParenthesis: ( @57
-              condition: IsExpression
-                expression: SimpleIdentifier
+              condition2: IsExpression
+                expression2: SimpleIdentifier
                   token: a @58
                   element: <testLibrary>::@enum::E::@constructor::new::@formalParameter::a
                   staticType: T?
@@ -9090,7 +9090,7 @@
                 element: <testLibrary>::@enum::E::@field::x
                 staticType: null
               equals: = @69
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @71
                 staticType: int
           superConstructor: dart:core::@class::Enum::@constructor::new
@@ -9154,7 +9154,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9293,7 +9293,7 @@
                     element: <testLibrary>::@enum::E::@constructor::named
                   argumentList: ArgumentList
                     leftParenthesis: ( @18
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 42 @19
                         staticType: int
@@ -9305,7 +9305,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9417,7 +9417,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9521,7 +9521,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9620,7 +9620,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9719,7 +9719,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9824,7 +9824,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -9925,7 +9925,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -10016,7 +10016,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @12
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 42 @13
                         staticType: int
@@ -10028,7 +10028,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -10166,7 +10166,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A#1::@getter::v
@@ -10443,7 +10443,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -10632,7 +10632,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -10732,7 +10732,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -10888,7 +10888,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: aaa @-1
                       element: <testLibrary>::@enum::E::@getter::aaa
@@ -11026,7 +11026,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -11382,7 +11382,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
@@ -11591,7 +11591,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -11717,7 +11717,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -11863,7 +11863,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -12029,7 +12029,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -12188,7 +12188,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -12330,7 +12330,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -12473,7 +12473,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -12600,7 +12600,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -12850,7 +12850,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -12993,7 +12993,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -13174,7 +13174,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::#0::@getter::v
@@ -13270,7 +13270,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -13384,7 +13384,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -13527,7 +13527,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -13701,7 +13701,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -13831,7 +13831,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -14019,7 +14019,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -14129,7 +14129,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -14248,7 +14248,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -14368,7 +14368,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -14496,7 +14496,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -14628,7 +14628,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -14748,7 +14748,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -15069,7 +15069,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -15480,7 +15480,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::E::@getter::v1
@@ -15596,7 +15596,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: <testLibrary>::@enum::E1::@getter::v1
@@ -15638,7 +15638,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v2 @-1
                       element: <testLibrary>::@enum::E2::@getter::v2
@@ -15773,7 +15773,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -15900,7 +15900,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -16069,7 +16069,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -16217,7 +16217,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -16286,7 +16286,7 @@
                 element: <testLibrary>::@enum::A::@field::foo
                 staticType: null
               equals: = @32
-              expression: IntegerLiteral
+              expression2: IntegerLiteral
                 literal: 0 @34
                 staticType: int
           superConstructor: dart:core::@class::Enum::@constructor::new
@@ -16345,7 +16345,7 @@
                     element: <testLibrary>::@enum::A::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @12
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @13
                         staticType: int
@@ -16357,7 +16357,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -16491,7 +16491,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -16641,7 +16641,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -16800,7 +16800,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -16968,7 +16968,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -17116,7 +17116,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -17259,7 +17259,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -17411,7 +17411,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -17598,7 +17598,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -17716,7 +17716,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -17867,7 +17867,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -18012,7 +18012,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -18152,7 +18152,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -18291,7 +18291,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -18436,7 +18436,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -18554,7 +18554,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -18690,7 +18690,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -18819,7 +18819,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -18952,7 +18952,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -19088,7 +19088,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -19225,7 +19225,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::B::@getter::v
@@ -19357,7 +19357,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::B::@getter::v
@@ -19489,7 +19489,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::B::@getter::v
@@ -19611,7 +19611,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -19741,7 +19741,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -19881,7 +19881,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -20011,7 +20011,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -20141,7 +20141,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -20267,7 +20267,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -20424,7 +20424,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -20591,7 +20591,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -20745,7 +20745,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -20894,7 +20894,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -20992,7 +20992,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @21
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @22
                         staticType: int
@@ -21004,7 +21004,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -21126,7 +21126,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @27
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @28
                         staticType: int
@@ -21138,7 +21138,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -21278,7 +21278,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @21
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @22
                         staticType: int
@@ -21290,7 +21290,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -21412,7 +21412,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @22
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @23
                         staticType: int
@@ -21424,7 +21424,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -21436,25 +21436,25 @@
               element: <testLibrary>::@enum::E::@field::bar
               initializer: expression_2
                 ConditionalExpression
-                  condition: BinaryExpression
-                    leftOperand: SimpleIdentifier
+                  condition2: BinaryExpression
+                    leftOperand2: SimpleIdentifier
                       token: foo @42
                       element: <testLibrary>::@enum::E::@constructor::new::@formalParameter::foo
                       staticType: int?
                     operator: != @46
-                    rightOperand: NullLiteral
+                    rightOperand2: NullLiteral
                       literal: null @49
                       staticType: Null
                     element: dart:core::@class::num::@method::==
                     staticInvokeType: bool Function(Object)
                     staticType: bool
                   question: ? @54
-                  thenExpression: SimpleIdentifier
+                  thenExpression2: SimpleIdentifier
                     token: foo @56
                     element: <testLibrary>::@enum::E::@constructor::new::@formalParameter::foo
                     staticType: int
                   colon: : @60
-                  elseExpression: IntegerLiteral
+                  elseExpression2: IntegerLiteral
                     literal: 0 @62
                     staticType: int
                   staticType: int
@@ -21565,7 +21565,7 @@
                     element: <testLibrary>::@enum::E::@constructor::new
                   argumentList: ArgumentList
                     leftParenthesis: ( @21
-                    arguments
+                    arguments2
                       IntegerLiteral
                         literal: 0 @22
                         staticType: int
@@ -21577,7 +21577,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -21699,7 +21699,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -21826,7 +21826,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -21980,7 +21980,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -22141,7 +22141,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
@@ -22288,7 +22288,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::A::@getter::v
diff --git a/pkg/analyzer/test/src/summary/elements/extension_test.dart b/pkg/analyzer/test/src/summary/elements/extension_test.dart
index cf841a5..eb64d8e 100644
--- a/pkg/analyzer/test/src/summary/elements/extension_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/extension_test.dart
@@ -704,7 +704,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: foo @-1
                       element: <testLibrary>::@enum::A::@getter::foo
diff --git a/pkg/analyzer/test/src/summary/elements/extension_type_test.dart b/pkg/analyzer/test/src/summary/elements/extension_type_test.dart
index d867d17..e4051d6 100644
--- a/pkg/analyzer/test/src/summary/elements/extension_type_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/extension_type_test.dart
@@ -76,13 +76,13 @@
             AssertInitializer
               assertKeyword: assert @42
               leftParenthesis: ( @48
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: it @49
                   element: <testLibrary>::@extensionType::E::@constructor::new::@formalParameter::it
                   staticType: int
                 operator: > @52
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 0 @54
                   staticType: int
                 element: dart:core::@class::num::@method::>
@@ -132,7 +132,7 @@
                     staticType: null
                   arguments: ArgumentList
                     leftParenthesis: ( @46
-                    arguments
+                    arguments2
                       SimpleStringLiteral
                         literal: '0' @47
                     rightParenthesis: ) @50
@@ -174,7 +174,7 @@
                 staticType: null
               arguments: ArgumentList
                 leftParenthesis: ( @46
-                arguments
+                arguments2
                   SimpleStringLiteral
                     literal: '0' @47
                 rightParenthesis: ) @50
@@ -188,13 +188,13 @@
             AssertInitializer
               assertKeyword: assert @61
               leftParenthesis: ( @67
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: it @68
                   element: <testLibrary>::@extensionType::E::@constructor::new::@formalParameter::it
                   staticType: int
                 operator: >= @71
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 0 @74
                   staticType: int
                 element: dart:core::@class::num::@method::>=
@@ -351,13 +351,13 @@
             AssertInitializer
               assertKeyword: assert @48
               leftParenthesis: ( @54
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: it @55
                   element: <testLibrary>::@extensionType::E::@constructor::named::@formalParameter::it
                   staticType: int
                 operator: > @58
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 0 @60
                   staticType: int
                 element: dart:core::@class::num::@method::>
@@ -432,13 +432,13 @@
             AssertInitializer
               assertKeyword: assert @42
               leftParenthesis: ( @48
-              condition: BinaryExpression
-                leftOperand: SimpleIdentifier
+              condition2: BinaryExpression
+                leftOperand2: SimpleIdentifier
                   token: it @49
                   element: <testLibrary>::@extensionType::E::@constructor::new::@formalParameter::it
                   staticType: int
                 operator: > @52
-                rightOperand: IntegerLiteral
+                rightOperand2: IntegerLiteral
                   literal: 0 @54
                   staticType: int
                 element: dart:core::@class::num::@method::>
@@ -6261,7 +6261,7 @@
                 element: <testLibrary>::@extensionType::A::@field::it
                 staticType: null
               equals: = @55
-              expression: SimpleIdentifier
+              expression2: SimpleIdentifier
                 token: a @57
                 element: <testLibrary>::@extensionType::A::@constructor::named::@formalParameter::a
                 staticType: int
diff --git a/pkg/analyzer/test/src/summary/elements/metadata_test.dart b/pkg/analyzer/test/src/summary/elements/metadata_test.dart
index f73387a..088c171 100644
--- a/pkg/analyzer/test/src/summary/elements/metadata_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/metadata_test.dart
@@ -1549,11 +1549,11 @@
                 staticType: null
               arguments: ArgumentList
                 leftParenthesis: ( @20
-                arguments
+                arguments2
                   NamedArgument
                     name: value @21
                     colon: : @26
-                    argumentExpression: IntegerLiteral
+                    argumentExpression2: IntegerLiteral
                       literal: 42 @28
                       staticType: int
                 rightParenthesis: ) @30
@@ -1571,11 +1571,11 @@
             staticType: null
           arguments: ArgumentList
             leftParenthesis: ( @20
-            arguments
+            arguments2
               NamedArgument
                 name: value @21
                 colon: : @26
-                argumentExpression: IntegerLiteral
+                argumentExpression2: IntegerLiteral
                   literal: 42 @28
                   staticType: int
             rightParenthesis: ) @30
@@ -4470,7 +4470,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: e1 @-1
                       element: <testLibrary>::@enum::E::@getter::e1
@@ -7198,7 +7198,7 @@
               initializer: expression_3
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
diff --git a/pkg/analyzer/test/src/summary/elements/non_synthetic_test.dart b/pkg/analyzer/test/src/summary/elements/non_synthetic_test.dart
index 253e8f4..3ff0146 100644
--- a/pkg/analyzer/test/src/summary/elements/non_synthetic_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/non_synthetic_test.dart
@@ -241,7 +241,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: a @-1
                       element: <testLibrary>::@enum::E::@getter::a
diff --git a/pkg/analyzer/test/src/summary/elements/since_sdk_version_test.dart b/pkg/analyzer/test/src/summary/elements/since_sdk_version_test.dart
index c9e57af..687bc61 100644
--- a/pkg/analyzer/test/src/summary/elements/since_sdk_version_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/since_sdk_version_test.dart
@@ -418,7 +418,7 @@
               initializer: expression_2
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v1 @-1
                       element: dart:foo::@enum::E::@getter::v1
@@ -532,7 +532,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: dart:foo::@enum::E::@getter::v
diff --git a/pkg/analyzer/test/src/summary/elements/top_level_variable_test.dart b/pkg/analyzer/test/src/summary/elements/top_level_variable_test.dart
index 2ef5e1d..d7e50d3 100644
--- a/pkg/analyzer/test/src/summary/elements/top_level_variable_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/top_level_variable_test.dart
@@ -4633,7 +4633,7 @@
           initializer: expression_0
             RecordLiteral
               leftParenthesis: ( @10
-              fields
+              fields2
                 IntegerLiteral
                   literal: 1 @11
                   staticType: int
diff --git a/pkg/analyzer/test/src/summary/elements/type_inference_test.dart b/pkg/analyzer/test/src/summary/elements/type_inference_test.dart
index 3e330d2..135a20b 100644
--- a/pkg/analyzer/test/src/summary/elements/type_inference_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/type_inference_test.dart
@@ -224,7 +224,7 @@
                   substitution: {V: int}
               argumentList: ArgumentList
                 leftParenthesis: ( @135
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: f @136
                     element: <testLibrary>::@function::f
@@ -362,7 +362,7 @@
                 element: <testLibrary>::@class::C::@constructor::new
               argumentList: ArgumentList
                 leftParenthesis: ( @115
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: f @116
                     element: <testLibrary>::@function::f
@@ -4461,7 +4461,7 @@
               superKeyword: super @0
               argumentList: ArgumentList
                 leftParenthesis: ( @0
-                arguments
+                arguments2
                   SimpleIdentifier
                     token: value @-1
                     element: <testLibrary>::@class::B::@constructor::new::@formalParameter::value
@@ -6011,7 +6011,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -6303,7 +6303,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -6507,7 +6507,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -6769,7 +6769,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -7022,7 +7022,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
@@ -7469,7 +7469,7 @@
               initializer: expression_1
                 ListLiteral
                   leftBracket: [ @0
-                  elements
+                  elements2
                     SimpleIdentifier
                       token: v @-1
                       element: <testLibrary>::@enum::E::@getter::v
diff --git a/pkg/analyzer/test/src/summary/elements/types_test.dart b/pkg/analyzer/test/src/summary/elements/types_test.dart
index 4afbdd2..0facda5 100644
--- a/pkg/analyzer/test/src/summary/elements/types_test.dart
+++ b/pkg/analyzer/test/src/summary/elements/types_test.dart
@@ -453,9 +453,9 @@
                 staticType: null
               argumentList: ArgumentList
                 leftParenthesis: ( @67
-                arguments
+                arguments2
                   ImplicitCallReference
-                    expression: SimpleIdentifier
+                    expression2: SimpleIdentifier
                       token: c @68
                       element: <testLibrary>::@class::D::@constructor::new::@formalParameter::c
                       staticType: C
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index 3852a70..81a55c7 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -2055,11 +2055,20 @@
         ? <ChildEntity>[]
         : node.namedChildEntities.toList();
     var entitiesByName = {for (var entity in entities) entity.name: entity};
+    var matchedV1Names = <String>{};
 
     for (var entity2 in entities2) {
+      var entity = entitiesByName[entity2.name];
+      if (entity == null && entity2.name.endsWith('2')) {
+        var v1Name = entity2.name.substring(0, entity2.name.length - 1);
+        entity = entitiesByName[v1Name];
+      }
+      if (entity != null) {
+        matchedV1Names.add(entity.name);
+      }
+
       _writeNamedChildEntity(node, entity2);
 
-      var entity = entitiesByName[entity2.name];
       var entityValue = entity?.value;
       // TODO(scheglov): https://github.com/dart-lang/sdk/issues/63806
       if (entity2.value is FormalParameterListImpl &&
@@ -2068,6 +2077,12 @@
         _withView(_AstView.v1, () {
           _writeNamedChildEntity(node, entity!, name: '${entity.name}(v1)');
         });
+      } else if (entity != null &&
+          entity.name != entity2.name &&
+          !_sameChildEntityValue(entity2.value, entity.value)) {
+        _withView(_AstView.v1, () {
+          _writeNamedChildEntity(node, entity!, name: '${entity.name}(v1)');
+        });
       }
     }
 
@@ -2079,10 +2094,9 @@
       return;
     }
 
-    var names2 = {for (var entity in entities2) entity.name};
     _withView(_AstView.v1, () {
       for (var entity in entities) {
-        if (!names2.contains(entity.name)) {
+        if (!matchedV1Names.contains(entity.name)) {
           _writeNamedChildEntity(node, entity);
         }
       }
@@ -2336,6 +2350,24 @@
       '(${parametersParent.runtimeType}) $parametersParent',
     );
   }
+
+  static bool _sameChildEntityValue(Object value2, Object value) {
+    if (identical(value2, value)) {
+      return true;
+    }
+    if (value2 is List<AstNode> && value is List<AstNode>) {
+      if (value2.length != value.length) {
+        return false;
+      }
+      for (var i = 0; i < value2.length; i++) {
+        if (!identical(value2[i], value[i])) {
+          return false;
+        }
+      }
+      return true;
+    }
+    return false;
+  }
 }
 
 class ResolvedNodeTextConfiguration {
diff --git a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
index 4c0d30b..71dda48 100644
--- a/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
+++ b/pkg/analyzer/test/src/task/strong/dart2_inference_test.dart
@@ -38,14 +38,14 @@
 AssertInitializer
   assertKeyword: assert
   leftParenthesis: (
-  condition: MethodInvocation
+  condition2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
       staticType: T Function<T>(int)
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 0
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -58,14 +58,14 @@
     typeArgumentTypes
       bool
   comma: ,
-  message: MethodInvocation
+  message2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
       staticType: T Function<T>(int)
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 1
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -95,14 +95,14 @@
 AssertStatement
   assertKeyword: assert
   leftParenthesis: (
-  condition: MethodInvocation
+  condition2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
       staticType: T Function<T>(int)
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 0
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -115,14 +115,14 @@
     typeArgumentTypes
       bool
   comma: ,
-  message: MethodInvocation
+  message2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
       staticType: T Function<T>(int)
     argumentList: ArgumentList
       leftParenthesis: (
-      arguments
+      arguments2
         IntegerLiteral
           literal: 1
           correspondingParameter: SubstitutedFormalParameterElementImpl
@@ -352,7 +352,7 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: MethodInvocation
+  leftOperand2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -365,7 +365,7 @@
     typeArgumentTypes
       bool
   operator: &&
-  rightOperand: MethodInvocation
+  rightOperand2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -396,7 +396,7 @@
     var node = result.findNode.singleBinaryExpression;
     assertResolvedNodeText(node, r'''
 BinaryExpression
-  leftOperand: MethodInvocation
+  leftOperand2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
@@ -409,7 +409,7 @@
     typeArgumentTypes
       bool
   operator: ||
-  rightOperand: MethodInvocation
+  rightOperand2: MethodInvocation
     methodName: SimpleIdentifier
       token: foo
       element: <testLibrary>::@function::foo
diff --git a/pkg/analyzer/test/utilities/dot_shorthands_test.dart b/pkg/analyzer/test/utilities/dot_shorthands_test.dart
index a821a72..9892170 100644
--- a/pkg/analyzer/test/utilities/dot_shorthands_test.dart
+++ b/pkg/analyzer/test/utilities/dot_shorthands_test.dart
@@ -17,12 +17,12 @@
 @reflectiveTest
 class HasDependentDotShorthandTest extends PubPackageResolutionTest {
   void assertHasDependentDotShorthand(TestResolvedUnitResult result) async {
-    var initializer = result.findNode.singleVariableDeclaration.initializer;
+    var initializer = result.findNode.singleVariableDeclaration.initializer2;
     expect(hasDependentDotShorthand(initializer!), isTrue);
   }
 
   void assertHasNoDependentDotShorthand(TestResolvedUnitResult result) async {
-    var initializer = result.findNode.singleVariableDeclaration.initializer;
+    var initializer = result.findNode.singleVariableDeclaration.initializer2;
     expect(hasDependentDotShorthand(initializer!), isFalse);
   }
 
diff --git a/pkg/analyzer/tool/generators/ast_generator.dart b/pkg/analyzer/tool/generators/ast_generator.dart
index 0890500..2cbb063 100644
--- a/pkg/analyzer/tool/generators/ast_generator.dart
+++ b/pkg/analyzer/tool/generators/ast_generator.dart
@@ -160,6 +160,12 @@
 
     for (var property in properties) {
       if (property.v1Name case var v1Name?) {
+        if (api != _AstNodeApi.shared) {
+          throw StateError(
+            '${interfaceElement.name}.${property.name}: V1 child projections '
+            'are only supported on nodes shared by both AST views.',
+          );
+        }
         if (!_astVersionPolicy.hasV1Projection) {
           throw StateError(
             '${interfaceElement.name}.${property.name}: v1Name is only '
@@ -632,7 +638,6 @@
 
     buffer.writeln(' {');
 
-    var becomeParentMethod = implClass.api.becomeParentMethod;
     for (var property in implClass.properties) {
       if (property.isSuper) {
         continue;
@@ -643,10 +648,25 @@
         case _PropertyTypeKindOther():
           break; // nothing
         case _PropertyTypeKindNode():
-          buffer.writeln('$becomeParentMethod(${property.name});');
+          var name = property.name;
+          if (property.v1Name != null) {
+            buffer.writeln('_becomeParentOf2($name);');
+            buffer.writeln(
+              '_becomeParentOf1(${property.projectToV1Code(name)});',
+            );
+          } else {
+            buffer.writeln('${implClass.api.becomeParentMethod}($name);');
+          }
         case _PropertyTypeKindNodeList():
           var name = property.name;
-          buffer.writeln('this.$name._initialize(this, $name);');
+          if (property.v1Name != null) {
+            buffer.writeln(
+              'this.$name._initializeProjected('
+              'this, $name, ${property.v1ProjectionMethod});',
+            );
+          } else {
+            buffer.writeln('this.$name._initialize(this, $name);');
+          }
       }
     }
 
@@ -900,12 +920,17 @@
 ${property.typeCode} get $propertyName => _$propertyName;
 ''');
         var setterAnnotations = property.v2MigrationAnnotations;
-        var becomeParentMethod = implClass.api.becomeParentMethod;
+        var setterBody = property.v1Name == null
+            ? '_$propertyName = '
+                  '${implClass.api.becomeParentMethod}($propertyName);'
+            : '_$propertyName = _becomeParentOf2($propertyName);\n'
+                  '_becomeParentOf1('
+                  '${property.projectToV1Code(propertyName)});';
         buffer.write('''
 \n@generated
 $setterAnnotations
 set $propertyName(${property.typeCode} $propertyName) {
-  _$propertyName = $becomeParentMethod($propertyName);
+  $setterBody
 }
 ''');
         if (property.v1Name case var v1Name?) {
@@ -1595,6 +1620,9 @@
         generatedLookupNames.add('_$propertyName');
         generatedLookupNames.add('$propertyName=');
         if (property.v1Name case var v1Name?) {
+          // Remove the field generated for the property before it was split
+          // into stored V2 and projected V1 getters.
+          generatedLookupNames.add('_$v1Name');
           generatedLookupNames.add('$v1Name=');
         }
       }
@@ -1683,10 +1711,16 @@
         'and node-list properties.',
       );
     }
-    if (v1Projection != _V1ProjectionKind.none && isSuper) {
-      throw StateError(
-        '$name: v1Projection is not supported for super properties.',
-      );
+    if (typeKind case _PropertyTypeKindNodeList typeKind) {
+      var requiredProjection = typeKind.requiredV1Projection;
+      if (_astVersionPolicy.hasV1Projection && requiredProjection != null) {
+        if (v1Projection != requiredProjection) {
+          throw StateError(
+            '$name: NodeList<${typeKind.elementTypeCode}> requires '
+            '$requiredProjection during the V2 migration.',
+          );
+        }
+      }
     }
   }
 
@@ -1733,7 +1767,13 @@
         '$name: Expected a v1 projection.',
       ),
       _V1ProjectionKind.argument => 'V1Projection.toV1Argument',
+      _V1ProjectionKind.collectionElement =>
+        'V1Projection.toV1CollectionElement',
+      _V1ProjectionKind.commentReferableExpression =>
+        'V1Projection.toV1CommentReferableExpression',
       _V1ProjectionKind.expression => 'V1Projection.toV1Expression',
+      _V1ProjectionKind.recordLiteralField =>
+        'V1Projection.toV1RecordLiteralField',
     };
   }
 
@@ -1747,10 +1787,18 @@
   }
 
   String projectToV1Code(String expression) {
+    if (v1Projection != _V1ProjectionKind.none && isNullable) {
+      return 'switch ($expression) { '
+          'var node? => $v1ProjectionMethod(node), _ => null }';
+    }
     return switch (v1Projection) {
       _V1ProjectionKind.none => expression,
       _V1ProjectionKind.argument ||
-      _V1ProjectionKind.expression => '$v1ProjectionMethod($expression)',
+      _V1ProjectionKind.collectionElement ||
+      _V1ProjectionKind.commentReferableExpression ||
+      _V1ProjectionKind.expression ||
+      _V1ProjectionKind.recordLiteralField =>
+        '$v1ProjectionMethod($expression)',
     };
   }
 }
@@ -1788,6 +1836,22 @@
   String get elementTypeCode {
     return '${elementType.element.name!}Impl';
   }
+
+  _V1ProjectionKind? get requiredV1Projection {
+    var element = elementType.element;
+    if (element.library.uri != _InterfaceElementExtension.uriAst) {
+      return null;
+    }
+    return switch (element.name) {
+      'Argument' => _V1ProjectionKind.argument,
+      'CollectionElement' => _V1ProjectionKind.collectionElement,
+      'CommentReferableExpression' =>
+        _V1ProjectionKind.commentReferableExpression,
+      'Expression' => _V1ProjectionKind.expression,
+      'RecordLiteralField' => _V1ProjectionKind.recordLiteralField,
+      _ => null,
+    };
+  }
 }
 
 class _PropertyTypeKindOther extends _PropertyTypeKind {}
@@ -1807,7 +1871,14 @@
   _Replacement(this.offset, this.end, this.text);
 }
 
-enum _V1ProjectionKind { none, argument, expression }
+enum _V1ProjectionKind {
+  none,
+  argument,
+  collectionElement,
+  commentReferableExpression,
+  expression,
+  recordLiteralField,
+}
 
 extension _DartTypeExtension on DartType {
   String get asCode {
diff --git a/pkg/dwds/lib/shared/batched_stream.dart b/pkg/dwds/lib/shared/batched_stream.dart
index b35592e..b44ce2c 100644
--- a/pkg/dwds/lib/shared/batched_stream.dart
+++ b/pkg/dwds/lib/shared/batched_stream.dart
@@ -4,6 +4,7 @@
 
 import 'dart:async';
 import 'dart:math';
+
 import 'package:async/async.dart';
 import 'package:dwds/src/utilities/shared.dart';
 
diff --git a/pkg/dwds/test/build/build_script_test.dart b/pkg/dwds/test/build/build_script_test.dart
index 55c271d..ced1916 100644
--- a/pkg/dwds/test/build/build_script_test.dart
+++ b/pkg/dwds/test/build/build_script_test.dart
@@ -15,9 +15,9 @@
 void main() {
   group('Committed file integrity tests', () {
     test('injected_client_js.dart is in sync with web/client.dart', () async {
-      final clientDartString = File(
-        await dwdsPath('web/client.dart'),
-      ).readAsStringSync().replaceAll('\r\n', '\n');
+      final clientDartString = File(await dwdsPath('web/client.dart'))
+          .readAsStringSync()
+          .replaceAll('\r\n', '\n');
       final expectedHash = sha256
           .convert(utf8.encode(clientDartString))
           .toString();
@@ -106,9 +106,8 @@
       final lines = actualClientJs.split('\n');
       final expectedSafeDartString = [
         for (var i = 0; i < lines.length; i++)
-          jsonEncode(
-            i == lines.length - 1 ? lines[i] : '${lines[i]}\n',
-          ).replaceAll(r'$', r'\$'),
+          jsonEncode(i == lines.length - 1 ? lines[i] : '${lines[i]}\n')
+              .replaceAll(r'$', r'\$'),
       ].join('\n');
 
       expect(
diff --git a/pkg/dwds/test/build/test_path_utils.dart b/pkg/dwds/test/build/test_path_utils.dart
index 32daa71..5dfb648 100644
--- a/pkg/dwds/test/build/test_path_utils.dart
+++ b/pkg/dwds/test/build/test_path_utils.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'dart:isolate';
+
 import 'package:path/path.dart' as p;
 
 /// Returns the path to the `dwds` package root directory.
diff --git a/pkg/dwds/test/integration/common/chrome_proxy_service_common.dart b/pkg/dwds/test/integration/common/chrome_proxy_service_common.dart
index 333db08..306fa02 100644
--- a/pkg/dwds/test/integration/common/chrome_proxy_service_common.dart
+++ b/pkg/dwds/test/integration/common/chrome_proxy_service_common.dart
@@ -1678,9 +1678,8 @@
       });
 
       test('break on exceptions with setIsolatePauseMode', () async {
-        final oldPauseMode = (await service.getIsolate(
-          isolateId!,
-        )).exceptionPauseMode;
+        final oldPauseMode = (await service.getIsolate(isolateId!))
+            .exceptionPauseMode;
         await service.setIsolatePauseMode(
           isolateId!,
           exceptionPauseMode: ExceptionPauseMode.kAll,
@@ -2015,12 +2014,14 @@
         final vm = await service.getVM();
         final isolateId = vm.isolates!.first.id!;
 
-        final resolvedUris = await service
-            .lookupResolvedPackageUris(isolateId, [
-              'package:does/not/exist.dart',
-              'dart:does_not_exist',
-              'file:///does_not_exist.dart',
-            ]);
+        final resolvedUris = await service.lookupResolvedPackageUris(
+          isolateId,
+          [
+            'package:does/not/exist.dart',
+            'dart:does_not_exist',
+            'file:///does_not_exist.dart',
+          ],
+        );
         expect(resolvedUris.uris, [null, null, null]);
       },
     );
@@ -2516,9 +2517,8 @@
             predicate(
               (Event event) =>
                   event.kind == EventKind.kWriteEvent &&
-                  String.fromCharCodes(
-                    base64.decode(event.bytes!),
-                  ).contains('hello'),
+                  String.fromCharCodes(base64.decode(event.bytes!))
+                      .contains('hello'),
             ),
           ),
         );
@@ -2534,9 +2534,8 @@
             predicate(
               (Event event) =>
                   event.kind == EventKind.kWriteEvent &&
-                  String.fromCharCodes(
-                    base64.decode(event.bytes!),
-                  ).contains('Error'),
+                  String.fromCharCodes(base64.decode(event.bytes!))
+                      .contains('Error'),
             ),
           ),
         );
@@ -2552,9 +2551,8 @@
             predicate(
               (Event event) =>
                   event.kind == EventKind.kWriteEvent &&
-                  String.fromCharCodes(
-                    base64.decode(event.bytes!),
-                  ).contains('main.dart'),
+                  String.fromCharCodes(base64.decode(event.bytes!))
+                      .contains('main.dart'),
             ),
           ),
         );
diff --git a/pkg/dwds/test/integration/common/hot_restart_common.dart b/pkg/dwds/test/integration/common/hot_restart_common.dart
index 580b6ed..9d0dff7 100644
--- a/pkg/dwds/test/integration/common/hot_restart_common.dart
+++ b/pkg/dwds/test/integration/common/hot_restart_common.dart
@@ -319,9 +319,8 @@
       final eventsDone = expectLater(
         client.onIsolateEvent,
         emitsThrough(
-          _hasKind(
-            EventKind.kServiceExtensionAdded,
-          ).having((e) => e.extensionRPC, 'service', 'ext.bar'),
+          _hasKind(EventKind.kServiceExtensionAdded)
+              .having((e) => e.extensionRPC, 'service', 'ext.bar'),
         ),
       );
 
diff --git a/pkg/dwds/test/integration/debug_service_common.dart b/pkg/dwds/test/integration/debug_service_common.dart
index e423ac1..1dd3cce 100644
--- a/pkg/dwds/test/integration/debug_service_common.dart
+++ b/pkg/dwds/test/integration/debug_service_common.dart
@@ -47,9 +47,8 @@
 
   test('Accepts connections with the auth token', () async {
     expect(
-      vmServiceConnectUri(
-        '${context.debugConnection.uri}/ws',
-      ).then((client) => client.dispose()),
+      vmServiceConnectUri('${context.debugConnection.uri}/ws')
+          .then((client) => client.dispose()),
       completes,
     );
   });
@@ -73,9 +72,8 @@
     // However, once DDS is disconnected, additional clients can connect again.
     await fakeDds.dispose();
     expect(
-      vmServiceConnectUri(
-        '${context.debugConnection.uri}/ws',
-      ).then((client) => client.dispose()),
+      vmServiceConnectUri('${context.debugConnection.uri}/ws')
+          .then((client) => client.dispose()),
       completes,
     );
   });
diff --git a/pkg/dwds/test/integration/fixtures/context.dart b/pkg/dwds/test/integration/fixtures/context.dart
index 5b854eb..632e7bd 100644
--- a/pkg/dwds/test/integration/fixtures/context.dart
+++ b/pkg/dwds/test/integration/fixtures/context.dart
@@ -638,16 +638,8 @@
 
       if (testSettings.launchChrome) {
         await _webDriver?.get(appUrl);
-        final tab = await connection.getTab((t) => t.url == appUrl);
-        if (tab != null) {
-          _tabConnection = await tab.connect();
-          await tabConnection.runtime.enable();
-          await tabConnection.debugger.enable().then(
-            (_) => tabConnectionCompleter.complete(),
-          );
-        } else {
-          throw StateError('Unable to connect to tab.');
-        }
+        _tabConnection = await _getTabConnection(connection, appUrl);
+        tabConnectionCompleter.complete();
 
         if (debugSettings.enableDebugExtension) {
           final extensionTab = await _fetchDartDebugExtensionTab(connection);
@@ -890,19 +882,44 @@
     print(process.stdout);
   }
 
+  Future<WipConnection> _getTabConnection(
+    ChromeConnection connection,
+    String appUrl,
+  ) async {
+    final tab = await connection.getTab(
+      (t) => t.url == appUrl,
+      retryFor: const Duration(seconds: 5),
+    );
+    if (tab == null) {
+      throw StateError(
+        'Unable to connect to tab after retrying for 5 seconds.',
+      );
+    }
+    final tabConnection = await tab.connect();
+    await tabConnection.runtime.enable();
+    await tabConnection.debugger.enable();
+    return tabConnection;
+  }
+
   Future<ChromeTab> _fetchDartDebugExtensionTab(
     ChromeConnection connection,
   ) async {
-    final extensionTabs = (await connection.getTabs()).where((tab) {
-      return tab.isChromeExtension;
-    });
-    for (final tab in extensionTabs) {
-      final tabConnection = await tab.connect();
-      final response = await tabConnection.runtime.evaluate(
-        'window.isDartDebugExtension',
-      );
-      if (response.value == true) {
-        return tab;
+    const retries = 5;
+    for (var i = 0; i < retries; i++) {
+      if (i > 0) {
+        await Future<void>.delayed(const Duration(milliseconds: 500));
+      }
+      final extensionTabs = (await connection.getTabs()).where((tab) {
+        return tab.isChromeExtension;
+      });
+      for (final tab in extensionTabs) {
+        final tabConnection = await tab.connect();
+        final response = await tabConnection.runtime.evaluate(
+          'window.isDartDebugExtension',
+        );
+        if (response.value == true) {
+          return tab;
+        }
       }
     }
     throw StateError('No extension installed.');
diff --git a/pkg/dwds/test/integration/inspector_test.dart b/pkg/dwds/test/integration/inspector_test.dart
index 3cc765d..0a305b9 100644
--- a/pkg/dwds/test/integration/inspector_test.dart
+++ b/pkg/dwds/test/integration/inspector_test.dart
@@ -155,8 +155,11 @@
 
     test('for num', () async {
       final remoteObject = await libraryPublicFinal();
-      final count = await inspector.loadField(remoteObject, 'count');
-      expect(count.value, 0);
+      final unchangedCount = await inspector.loadField(
+        remoteObject,
+        'unchangedCount',
+      );
+      expect(unchangedCount.value, 42);
     });
   });
 
@@ -176,6 +179,7 @@
       'myselfField',
       'notFinal',
       'tornOff',
+      'unchangedCount',
     ];
     names.sort();
     expect(names, expected);
diff --git a/pkg/dwds/test/integration/instances/common/class_inspection_common.dart b/pkg/dwds/test/integration/instances/common/class_inspection_common.dart
index 2c09d9d..da77bcc 100644
--- a/pkg/dwds/test/integration/instances/common/class_inspection_common.dart
+++ b/pkg/dwds/test/integration/instances/common/class_inspection_common.dart
@@ -11,6 +11,7 @@
 import 'package:dwds_test_common/test_sdk_configuration.dart';
 import 'package:test/test.dart';
 import 'package:vm_service/vm_service.dart';
+
 import '../../fixtures/context.dart';
 import '../../fixtures/project.dart';
 import '../../fixtures/utilities.dart';
diff --git a/pkg/dwds/test/integration/instances/common/instance_common.dart b/pkg/dwds/test/integration/instances/common/instance_common.dart
index 16575c1..492c49b 100644
--- a/pkg/dwds/test/integration/instances/common/instance_common.dart
+++ b/pkg/dwds/test/integration/instances/common/instance_common.dart
@@ -342,6 +342,7 @@
           'myselfField',
           'notFinal',
           'tornOff',
+          'unchangedCount',
         ]);
         final fieldNames = instance.fields!
             .map((boundField) => boundField.name)
diff --git a/pkg/dwds/test/integration/readers/frontend_server_asset_reader_test.dart b/pkg/dwds/test/integration/readers/frontend_server_asset_reader_test.dart
index 79559cd..e6a5793 100644
--- a/pkg/dwds/test/integration/readers/frontend_server_asset_reader_test.dart
+++ b/pkg/dwds/test/integration/readers/frontend_server_asset_reader_test.dart
@@ -31,12 +31,10 @@
   Future<void> createTempFixtures() async {
     tempFixtures = await Directory.systemTemp.createTemp('dwds_test_fixtures');
     await tempFixtures.create();
-    jsonOriginal = await File(
-      p.join(fixturesDir, 'main.dart.dill.json'),
-    ).copy(p.join(tempFixtures.path, 'main.dart.dill.json'));
-    mapOriginal = await File(
-      p.join(fixturesDir, 'main.dart.dill.map'),
-    ).copy(p.join(tempFixtures.path, 'main.dart.dill.map'));
+    jsonOriginal = await File(p.join(fixturesDir, 'main.dart.dill.json'))
+        .copy(p.join(tempFixtures.path, 'main.dart.dill.json'));
+    mapOriginal = await File(p.join(fixturesDir, 'main.dart.dill.map'))
+        .copy(p.join(tempFixtures.path, 'main.dart.dill.map'));
   }
 
   setUp(() async {
@@ -112,22 +110,20 @@
         expect(missingResult, isNull);
 
         // Update fixture.
-        await File(
-          p.join(tempFixtures.path, 'main.dart.dill.incremental.json'),
-        ).writeAsString(
-          (await jsonOriginal.readAsString()).replaceAll(
-            'web/main.dart.lib.js',
-            'web/foo.dart.lib.js',
-          ),
-        );
-        await File(
-          p.join(tempFixtures.path, 'main.dart.dill.incremental.map'),
-        ).writeAsString(
-          (await mapOriginal.readAsString()).replaceAll(
-            'web/main.dart.lib.js',
-            'web/foo.dart.lib.js',
-          ),
-        );
+        await File(p.join(tempFixtures.path, 'main.dart.dill.incremental.json'))
+            .writeAsString(
+              (await jsonOriginal.readAsString()).replaceAll(
+                'web/main.dart.lib.js',
+                'web/foo.dart.lib.js',
+              ),
+            );
+        await File(p.join(tempFixtures.path, 'main.dart.dill.incremental.map'))
+            .writeAsString(
+              (await mapOriginal.readAsString()).replaceAll(
+                'web/main.dart.lib.js',
+                'web/foo.dart.lib.js',
+              ),
+            );
 
         assetReader.updateCaches();
 
diff --git a/pkg/dwds/test/integration/sdk_configuration_test.dart b/pkg/dwds/test/integration/sdk_configuration_test.dart
index b8d6455..bf9014c 100644
--- a/pkg/dwds/test/integration/sdk_configuration_test.dart
+++ b/pkg/dwds/test/integration/sdk_configuration_test.dart
@@ -68,9 +68,8 @@
       final workerDir = p.dirname(compilerWorkerPath);
 
       Directory(workerDir).createSync(recursive: true);
-      File(
-        defaultSdkConfiguration.compilerWorkerPath!,
-      ).copySync(compilerWorkerPath);
+      File(defaultSdkConfiguration.compilerWorkerPath!)
+          .copySync(compilerWorkerPath);
 
       expect(sdkConfiguration.sdkDirectory, equals(sdkDirectory));
       expect(sdkConfiguration.sdkSummaryPath, equals(sdkSummaryPath));
diff --git a/pkg/dwds/tool/build.dart b/pkg/dwds/tool/build.dart
index a0b6193..4e437aa 100644
--- a/pkg/dwds/tool/build.dart
+++ b/pkg/dwds/tool/build.dart
@@ -53,9 +53,9 @@
   // 5. Generate injected_client_js.dart
   print('Generating injected_client_js.dart...');
 
-  final clientDartString = File(
-    'web/client.dart',
-  ).readAsStringSync().replaceAll('\r\n', '\n');
+  final clientDartString = File('web/client.dart')
+      .readAsStringSync()
+      .replaceAll('\r\n', '\n');
   final clientDartHash = sha256
       .convert(utf8.encode(clientDartString))
       .toString();
@@ -68,9 +68,8 @@
   // sign ($) to avoid Dart interpolation.
   final safeDartString = [
     for (var i = 0; i < lines.length; i++)
-      jsonEncode(
-        i == lines.length - 1 ? lines[i] : '${lines[i]}\n',
-      ).replaceAll(r'$', r'\$'),
+      jsonEncode(i == lines.length - 1 ? lines[i] : '${lines[i]}\n')
+          .replaceAll(r'$', r'\$'),
   ].join('\n');
 
   final injectedClientJsFile = File('lib/src/handlers/injected_client_js.dart');
diff --git a/pkg/dwds/web/run_main.dart b/pkg/dwds/web/run_main.dart
index 70fcb5a..9ead9dd 100644
--- a/pkg/dwds/web/run_main.dart
+++ b/pkg/dwds/web/run_main.dart
@@ -3,6 +3,7 @@
 // BSD-style license that can be found in the LICENSE file.
 
 import 'dart:js_interop';
+
 import 'package:web/web.dart';
 
 // According to the CSP3 spec a nonce must be a valid base64 string.
diff --git a/pkg/dwds_test_common/fixtures/_test/example/scopes/main.dart b/pkg/dwds_test_common/fixtures/_test/example/scopes/main.dart
index 4744a2d..4b21bd5 100644
--- a/pkg/dwds_test_common/fixtures/_test/example/scopes/main.dart
+++ b/pkg/dwds_test_common/fixtures/_test/example/scopes/main.dart
@@ -145,6 +145,8 @@
   late final MyTestClass myselfField;
 
   var count = 0;
+  // This should never be updated during execution.
+  var unchangedCount = 42;
 
   // An easy location to add a breakpoint.
   void printCount() {
diff --git a/runtime/vm/interpreter.cc b/runtime/vm/interpreter.cc
index 549e7af..b2bfb46 100644
--- a/runtime/vm/interpreter.cc
+++ b/runtime/vm/interpreter.cc
@@ -2649,8 +2649,26 @@
       SP[1] = 0;  // Unused space for result.
       SP[2] = function;
       SP[3] = Smi::New(rD);
+      // Set up the new API scope _prior_ to making the runtime call so that
+      // it is not unwound within Dart_PropagateError due to being associated
+      // with that exit frame. Otherwise, there may not be an appropriate API
+      // scope in place for Dart_PropagateError to use for allocating a handle.
+      //
+      // This is done manually instead of via Api::Scope as an exception being
+      // thrown in native code will go through Exceptions::JumpToFrame, which
+      // unwinds all StackResources before calling Interpreter::JumpToFrame,
+      // including any Api::Scope objects.
+      thread->EnterApiScope();
       Exit(thread, FP, SP + 4, pc);
-      INVOKE_RUNTIME(DRT_FfiCall, NativeArguments(thread, 2, SP + 2, SP + 1));
+      const bool normal_exit =
+          InvokeRuntime(thread, this, DRT_FfiCall,
+                        NativeArguments(thread, 2, SP + 2, SP + 1));
+      thread->ExitApiScope();
+      if (!normal_exit) {
+        HANDLE_EXCEPTION;
+      } else {
+        HANDLE_RETURN;
+      }
       ++SP;
     }
 
diff --git a/runtime/vm/runtime_entry.cc b/runtime/vm/runtime_entry.cc
index 29b5cb0..96f76f8 100644
--- a/runtime/vm/runtime_entry.cc
+++ b/runtime/vm/runtime_entry.cc
@@ -1295,13 +1295,12 @@
   }
 }
 
-static const void* GetDataAddress(const Instance& inst,
-                                  intptr_t offset_in_bytes) {
+static void* GetDataAddress(const Instance& inst, intptr_t offset_in_bytes) {
   if (inst.IsTypedDataBase()) {
     return TypedDataBase::Cast(inst).DataAddr(offset_in_bytes);
   } else if (inst.IsPointer()) {
-    return reinterpret_cast<const void*>(
-        reinterpret_cast<const uint8_t*>(Pointer::Cast(inst).NativeAddress()) +
+    return reinterpret_cast<void*>(
+        reinterpret_cast<uint8_t*>(Pointer::Cast(inst).NativeAddress()) +
         offset_in_bytes);
   } else {
     UNIMPLEMENTED();
@@ -1362,7 +1361,8 @@
     Thread* thread,
     const compiler::ffi::CallMarshaller& marshaller,
     ObjectPtr* argv,
-    FfiCallArguments* args) {
+    FfiCallArguments* args,
+    bool is_leaf) {
   Zone* zone = thread->zone();
   ApiLocalScope* scope = thread->api_top_scope();
   auto* const stack_top = reinterpret_cast<uint8_t*>(args->stack_area);
@@ -1427,13 +1427,20 @@
         value = reinterpret_cast<uword>(handle);
       } else if (marshaller.IsPointerPointer(i)) {
         value = Pointer::Cast(arg).NativeAddress();
-      } else if (marshaller.IsTypedDataPointer(i)) {
-        value = reinterpret_cast<uword>(TypedDataBase::Cast(arg).DataAddr(0));
-      } else if (marshaller.IsCompoundPointer(i)) {
-        compound_contents ^= Instance::Cast(arg).GetField(typed_data_field);
-        intptr_t offset_in_bytes = Smi::Value(
-            Smi::RawCast(Instance::Cast(arg).GetField(offset_in_bytes_field)));
-        NoSafepointScope scope;
+      } else if (marshaller.IsTypedDataPointer(i) ||
+                 marshaller.IsCompoundPointer(i)) {
+        compound_contents ^= arg.ptr();
+        intptr_t offset_in_bytes = 0;
+        if (marshaller.IsCompoundPointer(i)) {
+          offset_in_bytes = Smi::Value(
+              Smi::RawCast(compound_contents.GetField(offset_in_bytes_field)));
+          compound_contents ^= compound_contents.GetField(typed_data_field);
+        }
+        // Object holding the contents should not be moved by GC, and only
+        // Pointers are allowed for non-leaf calls.
+        ASSERT(is_leaf || compound_contents.IsPointer());
+        // The caller of PassFfiCallArgument should have set an appropriate
+        // NoSafepointScope if TypedData is a possibility here (the leaf case).
         value = reinterpret_cast<uword>(
             GetDataAddress(compound_contents, offset_in_bytes));
       } else if (marshaller.IsBool(i)) {
@@ -1768,27 +1775,24 @@
   args.stack_area_end = reinterpret_cast<uword>(stack_area + stack_area_size);
   args.target = target;
 
-  Api::Scope api_scope(thread);
-
   argv = argv - first_argument_parameter_offset - marshaller.num_args();
 
   PRINT_IF_TRACING_INTERPRETER("calling native entry point %#" Px "\n", target);
   if (is_leaf) {
     NoSafepointScope no_safepoint;
-
-    PassFfiCallArguments(thread, marshaller, argv, &args);
+    PassFfiCallArguments(thread, marshaller, argv, &args, is_leaf);
     FfiCallTrampoline(&args);
   } else {
-    PassFfiCallArguments(thread, marshaller, argv, &args);
-
+    PassFfiCallArguments(thread, marshaller, argv, &args, is_leaf);
     TransitionVMToNative transition(thread);
     FfiCallTrampoline(&args);
   }
   PRINT_IF_TRACING_INTERPRETER("returned from native entry point %#" Px "\n",
                                target);
-
-  arguments.SetReturn(
-      Object::Handle(zone, ReceiveFfiCallResult(thread, marshaller, args)));
+  const auto& result =
+      Object::Handle(zone, ReceiveFfiCallResult(thread, marshaller, args));
+  ThrowIfError(result);
+  arguments.SetReturn(result);
 #else
   UNREACHABLE();
 #endif  // defined(DART_DYNAMIC_MODULES) && !defined(DART_PRECOMPILED_RUNTIME)
@@ -5113,11 +5117,15 @@
       interpreter->Call(function, argdesc, argc, argv, Array::null(), thread);
   DEBUG_ASSERT(thread->top_exit_frame_info() == exit_fp);
   if (IsErrorClassId(result->GetClassId())) [[unlikely]] {
-    // Must not leak handles in the caller's zone.
-    HANDLESCOPE(thread);
+    // Since there may not be an active zone (e.g., an isolate group bound
+    // callback), make one. This also ensures that any handles allocated due
+    // to things like debugging prints or throwing exceptions are not leaked
+    // into the caller's zone (when present).
+    StackZone stack_zone(thread);
     // Protect the result in a handle before transitioning, which may trigger
     // GC.
-    const Error& error = Error::Handle(Error::RawCast(result));
+    Zone* const zone = stack_zone.GetZone();
+    const Error& error = Error::Handle(zone, Error::RawCast(result));
     // Propagating an error may cause allocation. Check if we need to block for
     // a safepoint by switching to "in VM" execution state.
     TransitionGeneratedToVM transition(thread);
diff --git a/tests/ffi/vmspecific_handle_test.dart b/tests/ffi/vmspecific_handle_test.dart
index 0983710..b035b67 100644
--- a/tests/ffi/vmspecific_handle_test.dart
+++ b/tests/ffi/vmspecific_handle_test.dart
@@ -243,23 +243,33 @@
 
 void testDeepRecursive() {
   // works on arm.
+  print("checking handleRecursion(123, recurseAbove0Pointer, 1) throws");
   Expect.throws(() {
     handleRecursion(123, recurseAbove0Pointer, 1);
-  });
+  }, (e) => e is! StackOverflowError);
 
+  print(
+    "checking handleRecursion(SomeClassWithMethod(), recurseAbove0Pointer, 1) throws",
+  );
   Expect.throws(() {
     handleRecursion(SomeClassWithMethod(), recurseAbove0Pointer, 1);
-  });
+  }, (e) => e is! StackOverflowError);
 
+  // Even depths throw. This depth currently works for the intepreter as well
+  // as compiled code.
+  int maxRecursiveDepth = 43;
+  print("checking recurseAbove0(${maxRecursiveDepth - 1}) throws");
   Expect.throws(() {
-    recurseAbove0(100);
-  });
+    recurseAbove0(maxRecursiveDepth - 1);
+  }, (e) => e is! StackOverflowError);
 
-  final result = recurseAbove0(101);
+  print("checking recurseAbove0($maxRecursiveDepth) does not throw");
+  final result = recurseAbove0(maxRecursiveDepth);
   Expect.isTrue(identical(someObject, result));
 }
 
 void testNoHandlePropagateError() {
+  print("testNoHandlePropagateError");
   bool throws = false;
   try {
     final result = propagateErrorWithoutHandle(exceptionHandleCallbackPointer);
@@ -274,6 +284,7 @@
 }
 
 void testThrowOnReturnOfError() {
+  print("testThrowOnReturnOfError");
   bool throws = false;
   try {
     final result = autoPropagateErrorInHandle(exceptionHandleCallbackPointer);
diff --git a/tools/VERSION b/tools/VERSION
index c7ffe21..d69ea7a 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 3
 MINOR 14
 PATCH 0
-PRERELEASE 40
+PRERELEASE 41
 PRERELEASE_PATCH 0
