Version 2.17.0-127.0.dev

Merge commit 'ab6d76844a128aa68c48e6aa5d8db804c7101980' into 'dev'
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart
index 978a6f5..0e05694 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_class_to_enum.dart
@@ -179,6 +179,7 @@
     // being converted.
     var members = classDeclaration.members;
     var indent = utils.getIndent(1);
+    var eol = utils.endOfLine;
     var constantsBuffer = StringBuffer();
     var fieldsToConvert = fields.fieldsToConvert;
     fieldsToConvert
@@ -186,7 +187,7 @@
     for (var field in fieldsToConvert) {
       // Compute the declaration of the corresponding enum constant.
       if (constantsBuffer.isNotEmpty) {
-        constantsBuffer.write(',\n$indent');
+        constantsBuffer.write(',$eol$indent');
       }
       constantsBuffer.write(field.name);
       var invocation = field.instanceCreation;
@@ -264,8 +265,8 @@
 
     // Insert the declarations of the enum constants.
     var semicolon = ';';
-    var prefix = '${utils.endOfLine}$indent';
-    var suffix = '$semicolon${utils.endOfLine}';
+    var prefix = '$eol$indent';
+    var suffix = '$semicolon$eol';
     builder.addSimpleInsertion(bodyOffset, '$prefix$constantsBuffer$suffix');
 
     // Delete any members that are no longer needed.
diff --git a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart
index c71ea13..7b052fa 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix/data_driven/modify_parameters.dart
@@ -6,6 +6,7 @@
 import 'package:analysis_server/src/services/correction/fix/data_driven/change.dart';
 import 'package:analysis_server/src/services/correction/fix/data_driven/code_template.dart';
 import 'package:analysis_server/src/services/correction/fix/data_driven/parameter_reference.dart';
+import 'package:analysis_server/src/utilities/index_range.dart';
 import 'package:analyzer/dart/ast/ast.dart';
 import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart';
 import 'package:analyzer_plugin/utilities/range_factory.dart';
@@ -109,14 +110,14 @@
       }
     }
 
-    var insertionRanges = argumentsToInsert.contiguousSubRanges.toList();
-    var deletionRanges = argumentsToDelete.contiguousSubRanges.toList();
+    var insertionRanges = IndexRange.contiguousSubRanges(argumentsToInsert);
+    var deletionRanges = IndexRange.contiguousSubRanges(argumentsToDelete);
     if (insertionRanges.isNotEmpty) {
       /// Write to the [builder] the new arguments in the [insertionRange]. If
       /// [needsInitialComma] is `true` then we need to write a comma before the
       /// first of the new arguments.
       void writeInsertionRange(DartEditBuilder builder,
-          _IndexRange insertionRange, bool needsInitialComma) {
+          IndexRange insertionRange, bool needsInitialComma) {
         var needsComma = needsInitialComma;
         for (var argumentIndex = insertionRange.lower;
             argumentIndex <= insertionRange.upper;
@@ -199,7 +200,7 @@
         }
         if (upper >= lower) {
           builder.addInsertion(offset, (builder) {
-            writeInsertionRange(builder, _IndexRange(lower, upper),
+            writeInsertionRange(builder, IndexRange(lower, upper),
                 nextRemaining > 0 || insertionCount > 0);
           });
         }
@@ -255,7 +256,7 @@
 
   /// Return the range from the list of [ranges] that contains the given
   /// [index], or `null` if there is no such range.
-  _IndexRange? _rangeContaining(List<_IndexRange> ranges, int index) {
+  IndexRange? _rangeContaining(List<IndexRange> ranges, int index) {
     for (var range in ranges) {
       if (index >= range.lower && index <= range.upper) {
         return range;
@@ -295,44 +296,3 @@
   /// invocation site.
   _Data(this.argumentList);
 }
-
-/// A range of indexes within a list.
-class _IndexRange {
-  /// The index of the first element in the range.
-  final int lower;
-
-  /// The index of the last element in the range. This will be the same as the
-  /// [lower] if there is a single element in the range.
-  final int upper;
-
-  /// Initialize a newly created range.
-  _IndexRange(this.lower, this.upper);
-
-  /// Return the number of indices in this range.
-  int get count => upper - lower + 1;
-
-  @override
-  String toString() => '[$lower..$upper]';
-}
-
-extension on List<int> {
-  Iterable<_IndexRange> get contiguousSubRanges sync* {
-    if (isEmpty) {
-      return;
-    }
-    var lower = this[0];
-    var previous = lower;
-    var index = 1;
-    while (index < length) {
-      var current = this[index];
-      if (current == previous + 1) {
-        previous = current;
-      } else {
-        yield _IndexRange(lower, previous);
-        lower = previous = current;
-      }
-      index++;
-    }
-    yield _IndexRange(lower, previous);
-  }
-}
diff --git a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart
index 3b7c79d..3048a8c 100644
--- a/pkg/analysis_server/test/analysis/notification_highlights2_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_highlights2_test.dart
@@ -1336,6 +1336,19 @@
     assertHasRegion(HighlightRegionType.PARAMETER_REFERENCE, 'bbb: 2');
   }
 
+  Future<void> test_PARAMETER_named_anywhere() async {
+    addTestFile('''
+void f(int aaa, int bbb, {int? ccc, int? ddd}) {}
+
+void g() {
+  f(0, ccc: 2, 1, ddd: 3);
+}
+''');
+    await prepareHighlights();
+    assertHasRegion(HighlightRegionType.PARAMETER_REFERENCE, 'ccc: 2');
+    assertHasRegion(HighlightRegionType.PARAMETER_REFERENCE, 'ddd: 3');
+  }
+
   Future<void> test_PARAMETER_super_children() async {
     addTestFile('''
 class A {
diff --git a/pkg/analysis_server/test/analysis/notification_navigation_test.dart b/pkg/analysis_server/test/analysis/notification_navigation_test.dart
index d25b5c0..e67e5f2 100644
--- a/pkg/analysis_server/test/analysis/notification_navigation_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_navigation_test.dart
@@ -995,6 +995,19 @@
     assertNoRegionAt('TEST');
   }
 
+  Future<void> test_namedExpression_name() async {
+    addTestFile('''
+void f(int a, int b, {int? c, int? d}) {}
+
+void g() {
+  f(0, c: 2, 1, d: 3);
+}
+''');
+    await prepareNavigation();
+    assertHasRegionTarget('c: 2', 'c,');
+    assertHasRegionTarget('d: 3', 'd}) {}');
+  }
+
   Future<void> test_operator_arithmetic() async {
     addTestFile('''
 class A {
diff --git a/pkg/analysis_server/test/analysis/notification_occurrences_test.dart b/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
index 777e230..1b04dee 100644
--- a/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
+++ b/pkg/analysis_server/test/analysis/notification_occurrences_test.dart
@@ -193,6 +193,32 @@
     assertHasOffset('mmm(); // b');
   }
 
+  Future<void> test_parameter_named() async {
+    addTestFile('''
+void f(int aaa, int bbb, {int? ccc, int? ddd}) {
+  ccc;
+  ddd;
+}
+
+void g() {
+  f(0, ccc: 2, 1, ddd: 3);
+}
+''');
+    await prepareOccurrences();
+
+    assertHasRegion('ccc: 2');
+    expect(testOccurrences.element.kind, ElementKind.PARAMETER);
+    assertHasOffset('ccc,');
+    assertHasOffset('ccc;');
+    assertHasOffset('ccc: 2');
+
+    assertHasRegion('ddd: 3');
+    expect(testOccurrences.element.kind, ElementKind.PARAMETER);
+    assertHasOffset('ddd})');
+    assertHasOffset('ddd;');
+    assertHasOffset('ddd: 3');
+  }
+
   Future<void> test_topLevelVariable() async {
     addTestFile('''
 var VVV = 1;
diff --git a/pkg/analysis_server/test/search/element_references_test.dart b/pkg/analysis_server/test/search/element_references_test.dart
index 85ebbb8..2902a26 100644
--- a/pkg/analysis_server/test/search/element_references_test.dart
+++ b/pkg/analysis_server/test/search/element_references_test.dart
@@ -972,6 +972,23 @@
     assertHasResult(SearchResultKind.REFERENCE, 'ppp.Stream');
   }
 
+  Future<void> test_topFunction_parameter_optionalNamed_anywhere() async {
+    addTestFile('''
+void foo(int a, int b, {int? test}) {
+  test;
+}
+
+void g() {
+  foo(0, test: 2, 1);
+}
+''');
+    await findElementReferences('test})', false);
+    expect(searchElement!.kind, ElementKind.PARAMETER);
+    expect(results, hasLength(2));
+    assertHasResult(SearchResultKind.READ, 'test;');
+    assertHasResult(SearchResultKind.REFERENCE, 'test: 2');
+  }
+
   Future<void> test_topLevelVariable_explicit() async {
     addTestFile('''
 var vvv = 1;
diff --git a/pkg/analysis_server/test/services/search/search_engine_test.dart b/pkg/analysis_server/test/services/search/search_engine_test.dart
index a5479ae..30fa39f 100644
--- a/pkg/analysis_server/test/services/search/search_engine_test.dart
+++ b/pkg/analysis_server/test/services/search/search_engine_test.dart
@@ -436,6 +436,32 @@
     );
   }
 
+  Future<void>
+      test_searchReferences_topFunction_parameter_optionalNamed_anywhere() async {
+    var code = '''
+void foo(int a, int b, {int? test}) {}
+
+void g() {
+  foo(1, test: 0, 2);
+}
+''';
+    await resolveTestCode(code);
+
+    var element = findElement.parameter('test');
+    var matches = await searchEngine.searchReferences(element);
+    expect(
+      matches,
+      unorderedEquals([
+        predicate((SearchMatch m) {
+          return m.kind == MatchKind.REFERENCE &&
+              identical(m.element, findElement.topFunction('g')) &&
+              m.sourceRange.offset == code.indexOf('test: 0') &&
+              m.sourceRange.length == 'test'.length;
+        }),
+      ]),
+    );
+  }
+
   Future<void> test_searchTopLevelDeclarations() async {
     newFile('$testPackageLibPath/a.dart', content: '''
 class A {}
diff --git a/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart b/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
index e55c554..e405c98 100644
--- a/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
+++ b/pkg/analysis_server/test/src/flutter/flutter_outline_computer_test.dart
@@ -442,6 +442,46 @@
     }
   }
 
+  Future<void> test_namedArgument_anywhere() async {
+    newFile('$testPackageLibPath/a.dart', content: r'''
+import 'package:flutter/widgets.dart';
+
+class WidgetA extends StatelessWidget {
+  final Widget top;
+  final Widget bottom;
+  final Widget left;
+  final Widget right;
+
+  WidgetA(this.top, this.bottom, {this.left, this.right});
+}
+''');
+    var unitOutline = await _computeOutline('''
+import 'package:flutter/widgets.dart';
+import 'a.dart';
+
+class MyWidget extends StatelessWidget {
+  @override
+  Widget build(BuildContext context) {
+    return new WidgetA(
+      const Container(),
+      left: const Text('left'),
+      const Flex(),
+      right: const Text('right'),
+    );
+  }
+}
+''');
+    expect(_toText(unitOutline), r'''
+(D) MyWidget
+  (D) build
+    WidgetA
+      Container
+      left: Text
+      Flex
+      right: Text
+''');
+  }
+
   Future<void> test_parentAssociationLabel() async {
     newFile('$testPackageLibPath/a.dart', content: r'''
 import 'package:flutter/widgets.dart';
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 92e0825..8dacad1 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -82,7 +82,7 @@
 /// TODO(scheglov) Clean up the list of implicitly analyzed files.
 class AnalysisDriver implements AnalysisDriverGeneric {
   /// The version of data format, should be incremented on every format change.
-  static const int DATA_VERSION = 206;
+  static const int DATA_VERSION = 207;
 
   /// The number of exception contexts allowed to write. Once this field is
   /// zero, we stop writing any new exception contexts in this process.
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 9e07497..2d47ef2 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -3590,6 +3590,7 @@
     ..addNode('implementsClause', implementsClause)
     ..addToken('leftBracket', leftBracket)
     ..addNodeList('constants', constants)
+    ..addToken('semicolon', semicolon)
     ..addNodeList('members', members)
     ..addToken('rightBracket', rightBracket);
 
@@ -10167,6 +10168,7 @@
     ..addToken('superKeyword', superKeyword)
     ..addToken('period', period)
     ..addNode('identifier', identifier)
+    ..addNode('typeParameters', typeParameters)
     ..addNode('parameters', parameters);
 
   @override
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 114c5ec..6adfbee 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -207,7 +207,7 @@
       atSign: Tokens.at(),
       name: name,
       typeArguments: typeArguments,
-      period: Tokens.period(),
+      period: constructorName != null ? Tokens.period() : null,
       constructorName: constructorName,
       arguments: arguments,
     );
@@ -240,7 +240,7 @@
       Tokens.assert_(),
       Tokens.openParenthesis(),
       condition,
-      Tokens.comma(),
+      message != null ? Tokens.comma() : null,
       message,
       Tokens.closeParenthesis(),
     );
diff --git a/pkg/analyzer/lib/src/summary2/informative_data.dart b/pkg/analyzer/lib/src/summary2/informative_data.dart
index 4d66405..58891f8 100644
--- a/pkg/analyzer/lib/src/summary2/informative_data.dart
+++ b/pkg/analyzer/lib/src/summary2/informative_data.dart
@@ -1754,6 +1754,7 @@
   @override
   void visitAnnotation(Annotation node) {
     _tokenOrNull(node.atSign);
+    _tokenOrNull(node.period);
     super.visitAnnotation(node);
   }
 
@@ -1774,6 +1775,7 @@
   void visitAssertInitializer(AssertInitializer node) {
     _tokenOrNull(node.assertKeyword);
     _tokenOrNull(node.leftParenthesis);
+    _tokenOrNull(node.comma);
     _tokenOrNull(node.rightParenthesis);
     super.visitAssertInitializer(node);
   }
@@ -1824,6 +1826,8 @@
   @override
   void visitFormalParameterList(FormalParameterList node) {
     _tokenOrNull(node.leftParenthesis);
+    _tokenOrNull(node.leftDelimiter);
+    _tokenOrNull(node.rightDelimiter);
     _tokenOrNull(node.rightParenthesis);
     super.visitFormalParameterList(node);
   }
@@ -1835,6 +1839,15 @@
   }
 
   @override
+  void visitIfElement(IfElement node) {
+    _tokenOrNull(node.ifKeyword);
+    _tokenOrNull(node.leftParenthesis);
+    _tokenOrNull(node.rightParenthesis);
+    _tokenOrNull(node.elseKeyword);
+    super.visitIfElement(node);
+  }
+
+  @override
   void visitIndexExpression(IndexExpression node) {
     _tokenOrNull(node.leftBracket);
     _tokenOrNull(node.rightBracket);
@@ -1872,6 +1885,12 @@
   }
 
   @override
+  void visitLabel(Label node) {
+    _tokenOrNull(node.colon);
+    super.visitLabel(node);
+  }
+
+  @override
   void visitListLiteral(ListLiteral node) {
     _tokenOrNull(node.constKeyword);
     _tokenOrNull(node.leftBracket);
@@ -1880,6 +1899,12 @@
   }
 
   @override
+  void visitMapLiteralEntry(MapLiteralEntry node) {
+    _tokenOrNull(node.separator);
+    super.visitMapLiteralEntry(node);
+  }
+
+  @override
   void visitMethodInvocation(MethodInvocation node) {
     node.target?.accept(this);
     _tokenOrNull(node.operator);
@@ -1889,6 +1914,12 @@
   }
 
   @override
+  void visitNamedType(NamedType node) {
+    _tokenOrNull(node.question);
+    super.visitNamedType(node);
+  }
+
+  @override
   void visitNullLiteral(NullLiteral node) {
     _tokenOrNull(node.literal);
   }
diff --git a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
index a053e01..93c1f40 100644
--- a/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/metadata_test.dart
@@ -33,11 +33,11 @@
     _assertResolvedNodeText(annotation, r'''
 Annotation
   atSign: @
-  element: self::@getter::a
   name: SimpleIdentifier
+    token: a
     staticElement: self::@getter::a
     staticType: null
-    token: a
+  element: self::@getter::a
 ''');
     _assertAnnotationValueText(annotation, '''
 int 42
@@ -112,33 +112,33 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       InstanceCreationExpression
+        constructorName: ConstructorName
+          type: NamedType
+            name: SimpleIdentifier
+              token: A
+              staticElement: self::@class::A
+              staticType: null
+            type: A
+          staticElement: self::@class::A::@constructor::•
         argumentList: ArgumentList
+          leftParenthesis: (
           arguments
             IntegerLiteral
               literal: 0
               staticType: int
-          leftParenthesis: (
           rightParenthesis: )
-        constructorName: ConstructorName
-          staticElement: self::@class::A::@constructor::•
-          type: NamedType
-            name: SimpleIdentifier
-              staticElement: self::@class::A
-              staticType: null
-              token: A
-            type: A
         staticType: A
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: self::@class::A::@constructor::•
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
 ''');
     _assertAnnotationValueText(annotation, r'''
 A
@@ -164,19 +164,19 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, '''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 3
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: self::@class::A::@constructor::•
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
 ''');
 
     final localVariable = findElement.localVar('x');
@@ -454,27 +454,27 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: A
+      staticElement: self::@class::A
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: named
+      staticElement: self::@class::A::@constructor::named
+      staticType: null
+    staticElement: self::@class::A::@constructor::named
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: self::@class::A::@constructor::named
-  name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: self::@class::A::@constructor::named
-      staticType: null
-      token: named
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@class::A
-      staticType: null
-      token: A
-    staticElement: self::@class::A::@constructor::named
-    staticType: null
 ''');
     _assertAnnotationValueText(annotation, '''
 A
@@ -501,19 +501,19 @@
     _assertResolvedNodeText(annotation, r'''
 Annotation
   atSign: @
-  element: self::@class::A::@getter::foo
   name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: self::@class::A::@getter::foo
-      staticType: null
-      token: foo
-    period: .
     prefix: SimpleIdentifier
+      token: A
       staticElement: self::@class::A
       staticType: null
-      token: A
+    period: .
+    identifier: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@getter::foo
+      staticType: null
     staticElement: self::@class::A::@getter::foo
     staticType: null
+  element: self::@class::A::@getter::foo
 ''');
     _assertAnnotationValueText(annotation, '''
 int 42
@@ -534,19 +534,19 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: self::@class::A::@constructor::•
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
 ''');
     _assertAnnotationValueText(annotation, r'''
 A
@@ -573,34 +573,34 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: A
+      staticElement: self::@class::A
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: named
+      staticElement: ConstructorMember
+        base: self::@class::A::@constructor::named
+        substitution: {T: Object?}
+      staticType: null
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::named
+      substitution: {T: Object?}
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       ListLiteral
         leftBracket: [
         rightBracket: ]
         staticType: List<List<Object?>>
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::named
     substitution: {T: Object?}
-  name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: ConstructorMember
-        base: self::@class::A::@constructor::named
-        substitution: {T: Object?}
-      staticType: null
-      token: named
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@class::A
-      staticType: null
-      token: A
-    staticElement: ConstructorMember
-      base: self::@class::A::@constructor::named
-      substitution: {T: Object?}
-    staticType: null
 ''');
     _assertAnnotationValueText(annotation, '''
 A<Object?>
@@ -628,22 +628,22 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       ListLiteral
         leftBracket: [
         rightBracket: ]
         staticType: List<List<Object?>>
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: Object?}
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<Object?>
@@ -671,33 +671,33 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
-  element: ConstructorMember
-    base: self::@class::A::@constructor::named
-    substitution: {T: int}
   name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: A
+      staticElement: self::@class::A
+      staticType: null
+    period: .
     identifier: SimpleIdentifier
+      token: named
       staticElement: ConstructorMember
         base: self::@class::A::@constructor::named
         substitution: {T: int}
       staticType: null
-      token: named
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@class::A
-      staticType: null
-      token: A
     staticElement: ConstructorMember
       base: self::@class::A::@constructor::named
       substitution: {T: int}
     staticType: null
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
+  element: ConstructorMember
+    base: self::@class::A::@constructor::named
+    substitution: {T: int}
 ''');
     _assertAnnotationValueText(annotation, '''
 A<int>
@@ -724,21 +724,21 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -764,19 +764,19 @@
     _assertResolvedNodeText(findNode.annotation('@A'), r'''
 Annotation
   atSign: @
-  element: self::@class::A::@getter::foo
   name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: self::@class::A::@getter::foo
-      staticType: null
-      token: foo
-    period: .
     prefix: SimpleIdentifier
+      token: A
       staticElement: self::@class::A
       staticType: null
-      token: A
+    period: .
+    identifier: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@getter::foo
+      staticType: null
     staticElement: self::@class::A::@getter::foo
     staticType: null
+  element: self::@class::A::@getter::foo
 ''');
   }
 
@@ -794,33 +794,33 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
-  element: ConstructorMember
-    base: self::@class::A::@constructor::named
-    substitution: {T: dynamic}
   name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: A
+      staticElement: self::@class::A
+      staticType: null
+    period: .
     identifier: SimpleIdentifier
+      token: named
       staticElement: ConstructorMember
         base: self::@class::A::@constructor::named
         substitution: {T: dynamic}
       staticType: null
-      token: named
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@class::A
-      staticType: null
-      token: A
     staticElement: ConstructorMember
       base: self::@class::A::@constructor::named
       substitution: {T: dynamic}
     staticType: null
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
+  element: ConstructorMember
+    base: self::@class::A::@constructor::named
+    substitution: {T: dynamic}
 ''');
     _assertAnnotationValueText(annotation, '''
 A<dynamic>
@@ -842,19 +842,19 @@
     _assertResolvedNodeText(annotation, r'''
 Annotation
   atSign: @
-  element: self::@class::A::@getter::foo
   name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: self::@class::A::@getter::foo
-      staticType: null
-      token: foo
-    period: .
     prefix: SimpleIdentifier
+      token: A
       staticElement: self::@class::A
       staticType: null
-      token: A
+    period: .
+    identifier: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@getter::foo
+      staticType: null
     staticElement: self::@class::A::@getter::foo
     staticType: null
+  element: self::@class::A::@getter::foo
 ''');
     _assertAnnotationValueText(annotation, '''
 <null>
@@ -875,37 +875,38 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
+  period: .
   constructorName: SimpleIdentifier
+    token: named
     staticElement: ConstructorMember
       base: self::@class::A::@constructor::named
       substitution: {T: int}
     staticType: null
-    token: named
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
   element: ConstructorMember
     base: self::@class::A::@constructor::named
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, '''
 A<int>
@@ -932,31 +933,31 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -984,21 +985,21 @@
     var annotation = findNode.annotation('@A');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: A
+    staticElement: self::@class::A
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: dynamic}
-  name: SimpleIdentifier
-    staticElement: self::@class::A
-    staticType: null
-    token: A
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<dynamic>
@@ -1029,21 +1030,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@class::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::B::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 B<int>
@@ -1073,21 +1074,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@class::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::B::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 B<int>
@@ -1114,21 +1115,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@class::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::B::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 B<int>
@@ -1154,21 +1155,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@class::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::B::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 B<int>
@@ -1195,21 +1196,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@class::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::B::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 B<int>
@@ -1238,21 +1239,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@class::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::B::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 B<int>
@@ -1279,31 +1280,31 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@class::B
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::B::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@class::B
-    staticType: null
-    token: B
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 B<int>
@@ -1420,23 +1421,24 @@
     _assertResolvedNodeText(annotation, r'''
 Annotation
   atSign: @
-  constructorName: SimpleIdentifier
-    staticElement: package:test/a.dart::@class::A::@getter::foo
-    staticType: null
-    token: foo
-  element: package:test/a.dart::@class::A::@getter::foo
   name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: package:test/a.dart::@typeAlias::B
-      staticType: null
-      token: B
-    period: .
     prefix: SimpleIdentifier
+      token: prefix
       staticElement: self::@prefix::prefix
       staticType: null
-      token: prefix
+    period: .
+    identifier: SimpleIdentifier
+      token: B
+      staticElement: package:test/a.dart::@typeAlias::B
+      staticType: null
     staticElement: package:test/a.dart::@typeAlias::B
     staticType: null
+  period: .
+  constructorName: SimpleIdentifier
+    token: foo
+    staticElement: package:test/a.dart::@class::A::@getter::foo
+    staticType: null
+  element: package:test/a.dart::@class::A::@getter::foo
 ''');
     _assertAnnotationValueText(annotation, '''
 int 42
@@ -1462,35 +1464,36 @@
     var annotation = findNode.annotation('@prefix.B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
+  name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: prefix
+      staticElement: self::@prefix::prefix
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: B
+      staticElement: package:test/a.dart::@typeAlias::B
+      staticType: null
+    staticElement: package:test/a.dart::@typeAlias::B
+    staticType: null
+  period: .
   constructorName: SimpleIdentifier
+    token: named
     staticElement: ConstructorMember
       base: package:test/a.dart::@class::A::@constructor::named
       substitution: {T: int}
     staticType: null
-    token: named
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
   element: ConstructorMember
     base: package:test/a.dart::@class::A::@constructor::named
     substitution: {T: int}
-  name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: package:test/a.dart::@typeAlias::B
-      staticType: null
-      token: B
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@prefix::prefix
-      staticType: null
-      token: prefix
-    staticElement: package:test/a.dart::@typeAlias::B
-    staticType: null
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -1523,29 +1526,29 @@
     var annotation = findNode.annotation('@prefix.B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: prefix
+      staticElement: self::@prefix::prefix
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: B
+      staticElement: package:test/a.dart::@typeAlias::B
+      staticType: null
+    staticElement: package:test/a.dart::@typeAlias::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: package:test/a.dart::@class::A::@constructor::•
     substitution: {T: int}
-  name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: package:test/a.dart::@typeAlias::B
-      staticType: null
-      token: B
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@prefix::prefix
-      staticType: null
-      token: prefix
-    staticElement: package:test/a.dart::@typeAlias::B
-    staticType: null
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -1578,45 +1581,46 @@
     var annotation = findNode.annotation('@prefix.B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
+  name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: prefix
+      staticElement: self::@prefix::prefix
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: B
+      staticElement: package:test/a.dart::@typeAlias::B
+      staticType: null
+    staticElement: package:test/a.dart::@typeAlias::B
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
+  period: .
   constructorName: SimpleIdentifier
+    token: named
     staticElement: ConstructorMember
       base: package:test/a.dart::@class::A::@constructor::named
       substitution: {T: int}
     staticType: null
-    token: named
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
   element: ConstructorMember
     base: package:test/a.dart::@class::A::@constructor::named
     substitution: {T: int}
-  name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: package:test/a.dart::@typeAlias::B
-      staticType: null
-      token: B
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@prefix::prefix
-      staticType: null
-      token: prefix
-    staticElement: package:test/a.dart::@typeAlias::B
-    staticType: null
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -1649,39 +1653,39 @@
     var annotation = findNode.annotation('@prefix.B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: prefix
+      staticElement: self::@prefix::prefix
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: B
+      staticElement: package:test/a.dart::@typeAlias::B
+      staticType: null
+    staticElement: package:test/a.dart::@typeAlias::B
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: package:test/a.dart::@class::A::@constructor::•
     substitution: {T: int}
-  name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: package:test/a.dart::@typeAlias::B
-      staticType: null
-      token: B
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@prefix::prefix
-      staticType: null
-      token: prefix
-    staticElement: package:test/a.dart::@typeAlias::B
-    staticType: null
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -1711,19 +1715,19 @@
     _assertResolvedNodeText(annotation, r'''
 Annotation
   atSign: @
-  element: self::@class::A::@getter::foo
   name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: self::@class::A::@getter::foo
-      staticType: null
-      token: foo
-    period: .
     prefix: SimpleIdentifier
+      token: B
       staticElement: self::@typeAlias::B
       staticType: null
-      token: B
+    period: .
+    identifier: SimpleIdentifier
+      token: foo
+      staticElement: self::@class::A::@getter::foo
+      staticType: null
     staticElement: self::@class::A::@getter::foo
     staticType: null
+  element: self::@class::A::@getter::foo
 ''');
     _assertAnnotationValueText(annotation, '''
 int 42
@@ -1747,7 +1751,30 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@typeAlias::B
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
+  period: .
+  constructorName: SimpleIdentifier
+    token: named
+    staticElement: ConstructorMember
+      base: self::@class::A::@constructor::named
+      substitution: {T: int, U: double}
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
@@ -1755,32 +1782,10 @@
       DoubleLiteral
         literal: 1.2
         staticType: double
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
-  constructorName: SimpleIdentifier
-    staticElement: ConstructorMember
-      base: self::@class::A::@constructor::named
-      substitution: {T: int, U: double}
-    staticType: null
-    token: named
   element: ConstructorMember
     base: self::@class::A::@constructor::named
     substitution: {T: int, U: double}
-  name: SimpleIdentifier
-    staticElement: self::@typeAlias::B
-    staticType: null
-    token: B
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int, double>
@@ -1818,7 +1823,23 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@typeAlias::B
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
@@ -1826,26 +1847,10 @@
       DoubleLiteral
         literal: 1.2
         staticType: double
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: int, U: double}
-  name: SimpleIdentifier
-    staticElement: self::@typeAlias::B
-    staticType: null
-    token: B
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int, double>
@@ -1882,33 +1887,33 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
-  element: ConstructorMember
-    base: self::@class::A::@constructor::named
-    substitution: {T: int}
   name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: B
+      staticElement: self::@typeAlias::B
+      staticType: null
+    period: .
     identifier: SimpleIdentifier
+      token: named
       staticElement: ConstructorMember
         base: self::@class::A::@constructor::named
         substitution: {T: int}
       staticType: null
-      token: named
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@typeAlias::B
-      staticType: null
-      token: B
     staticElement: ConstructorMember
       base: self::@class::A::@constructor::named
       substitution: {T: int}
     staticType: null
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
+  element: ConstructorMember
+    base: self::@class::A::@constructor::named
+    substitution: {T: int}
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -1938,21 +1943,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@typeAlias::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@typeAlias::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -1982,37 +1987,38 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@typeAlias::B
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
+  period: .
   constructorName: SimpleIdentifier
+    token: named
     staticElement: ConstructorMember
       base: self::@class::A::@constructor::named
       substitution: {T: int}
     staticType: null
-    token: named
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
   element: ConstructorMember
     base: self::@class::A::@constructor::named
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@typeAlias::B
-    staticType: null
-    token: B
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -2042,31 +2048,31 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@typeAlias::B
+    staticType: null
+  typeArguments: TypeArgumentList
+    leftBracket: <
+    arguments
+      NamedType
+        name: SimpleIdentifier
+          token: int
+          staticElement: dart:core::@class::int
+          staticType: null
+        type: int
+    rightBracket: >
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@typeAlias::B
-    staticType: null
-    token: B
-  typeArguments: TypeArgumentList
-    arguments
-      NamedType
-        name: SimpleIdentifier
-          staticElement: dart:core::@class::int
-          staticType: null
-          token: int
-        type: int
-    leftBracket: <
-    rightBracket: >
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -2096,33 +2102,33 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
-  arguments: ArgumentList
-    arguments
-      IntegerLiteral
-        literal: 42
-        staticType: int
-    leftParenthesis: (
-    rightParenthesis: )
   atSign: @
-  element: ConstructorMember
-    base: self::@class::A::@constructor::named
-    substitution: {T: int}
   name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: B
+      staticElement: self::@typeAlias::B
+      staticType: null
+    period: .
     identifier: SimpleIdentifier
+      token: named
       staticElement: ConstructorMember
         base: self::@class::A::@constructor::named
         substitution: {T: int}
       staticType: null
-      token: named
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@typeAlias::B
-      staticType: null
-      token: B
     staticElement: ConstructorMember
       base: self::@class::A::@constructor::named
       substitution: {T: int}
     staticType: null
+  arguments: ArgumentList
+    leftParenthesis: (
+    arguments
+      IntegerLiteral
+        literal: 42
+        staticType: int
+    rightParenthesis: )
+  element: ConstructorMember
+    base: self::@class::A::@constructor::named
+    substitution: {T: int}
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -2152,21 +2158,21 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@typeAlias::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: ConstructorMember
     base: self::@class::A::@constructor::•
     substitution: {T: int}
-  name: SimpleIdentifier
-    staticElement: self::@typeAlias::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 A<int>
@@ -2196,27 +2202,27 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: PrefixedIdentifier
+    prefix: SimpleIdentifier
+      token: B
+      staticElement: self::@typeAlias::B
+      staticType: null
+    period: .
+    identifier: SimpleIdentifier
+      token: named
+      staticElement: self::@class::A::@constructor::named
+      staticType: null
+    staticElement: self::@class::A::@constructor::named
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: self::@class::A::@constructor::named
-  name: PrefixedIdentifier
-    identifier: SimpleIdentifier
-      staticElement: self::@class::A::@constructor::named
-      staticType: null
-      token: named
-    period: .
-    prefix: SimpleIdentifier
-      staticElement: self::@typeAlias::B
-      staticType: null
-      token: B
-    staticElement: self::@class::A::@constructor::named
-    staticType: null
 ''');
     _assertAnnotationValueText(annotation, r'''
 A
@@ -2245,19 +2251,19 @@
     var annotation = findNode.annotation('@B');
     _assertResolvedNodeText(annotation, r'''
 Annotation
+  atSign: @
+  name: SimpleIdentifier
+    token: B
+    staticElement: self::@typeAlias::B
+    staticType: null
   arguments: ArgumentList
+    leftParenthesis: (
     arguments
       IntegerLiteral
         literal: 42
         staticType: int
-    leftParenthesis: (
     rightParenthesis: )
-  atSign: @
   element: self::@class::A::@constructor::•
-  name: SimpleIdentifier
-    staticElement: self::@typeAlias::B
-    staticType: null
-    token: B
 ''');
     _assertAnnotationValueText(annotation, r'''
 A
diff --git a/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart b/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart
index 5687d0b..99c0eb9 100644
--- a/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/extraneous_modifier_test.dart
@@ -28,9 +28,9 @@
     var node = parseResult.findNode.simpleFormalParameter('a);');
     assertParsedNodeText(node, r'''
 SimpleFormalParameter
+  keyword: const
   identifier: SimpleIdentifier
     token: a
-  keyword: const
 ''');
   }
 
@@ -45,9 +45,9 @@
     var node = parseResult.findNode.simpleFormalParameter('a);');
     assertParsedNodeText(node, r'''
 SimpleFormalParameter
+  keyword: var
   identifier: SimpleIdentifier
     token: a
-  keyword: var
 ''');
   }
 
@@ -64,11 +64,11 @@
     var node = parseResult.findNode.superFormalParameter('super.a');
     assertParsedNodeText(node, r'''
 SuperFormalParameter
+  keyword: var
+  superKeyword: super
+  period: .
   identifier: SimpleIdentifier
     token: a
-  keyword: var
-  period: .
-  superKeyword: super
 ''');
   }
 }
diff --git a/pkg/analyzer/test/src/diagnostics/function_typed_parameter_var_test.dart b/pkg/analyzer/test/src/diagnostics/function_typed_parameter_var_test.dart
index 7dd9f51..9ebed01 100644
--- a/pkg/analyzer/test/src/diagnostics/function_typed_parameter_var_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/function_typed_parameter_var_test.dart
@@ -28,20 +28,20 @@
     var node = parseResult.findNode.superFormalParameter('super.a');
     assertParsedNodeText(node, r'''
 SuperFormalParameter
+  superKeyword: super
+  period: .
   identifier: SimpleIdentifier
     token: a
-  parameters: FormalParameterList
-    leftParenthesis: (
-    rightParenthesis: )
-  period: .
-  superKeyword: super
   typeParameters: TypeParameterList
     leftBracket: <
-    rightBracket: >
     typeParameters
       TypeParameter
         name: SimpleIdentifier
           token: T
+    rightBracket: >
+  parameters: FormalParameterList
+    leftParenthesis: (
+    rightParenthesis: )
 ''');
   }
 }
diff --git a/pkg/analyzer/test/src/fasta/ast_builder_test.dart b/pkg/analyzer/test/src/fasta/ast_builder_test.dart
index 3498d93..059b211 100644
--- a/pkg/analyzer/test/src/fasta/ast_builder_test.dart
+++ b/pkg/analyzer/test/src/fasta/ast_builder_test.dart
@@ -26,17 +26,17 @@
     var node = parseResult.findNode.constructor('B()');
     assertParsedNodeText(node, r'''
 ConstructorDeclaration
-  body: ExpressionFunctionBody
-    expression: NullLiteral
-      literal: null
-    functionDefinition: =>
-    semicolon: ;
   factoryKeyword: factory
+  returnType: SimpleIdentifier
+    token: B
   parameters: FormalParameterList
     leftParenthesis: (
     rightParenthesis: )
-  returnType: SimpleIdentifier
-    token: B
+  body: ExpressionFunctionBody
+    functionDefinition: =>
+    expression: NullLiteral
+      literal: null
+    semicolon: ;
 ''');
   }
 
@@ -53,19 +53,20 @@
     var node = parseResult.findNode.constructor('B()');
     assertParsedNodeText(node, r'''
 ConstructorDeclaration
-  body: EmptyFunctionBody
-    semicolon: ;
-  initializers
-    SuperConstructorInvocation
-      argumentList: ArgumentList
-        leftParenthesis: (
-        rightParenthesis: )
-      superKeyword: super
+  returnType: SimpleIdentifier
+    token: B
   parameters: FormalParameterList
     leftParenthesis: (
     rightParenthesis: )
-  returnType: SimpleIdentifier
-    token: B
+  separator: :
+  initializers
+    SuperConstructorInvocation
+      superKeyword: super
+      argumentList: ArgumentList
+        leftParenthesis: (
+        rightParenthesis: )
+  body: EmptyFunctionBody
+    semicolon: ;
 ''');
   }
 
@@ -82,16 +83,16 @@
     var node = parseResult.findNode.enumConstantDeclaration('v.');
     assertParsedNodeText(node, r'''
 EnumConstantDeclaration
+  name: SimpleIdentifier
+    token: v
   arguments: EnumConstantArguments
+    constructorSelector: ConstructorSelector
+      period: .
+      name: SimpleIdentifier
+        token: <empty> <synthetic>
     argumentList: ArgumentList
       leftParenthesis: ( <synthetic>
       rightParenthesis: ) <synthetic>
-    constructorSelector: ConstructorSelector
-      name: SimpleIdentifier
-        token: <empty> <synthetic>
-      period: .
-  name: SimpleIdentifier
-    token: v
 ''');
   }
 
@@ -106,16 +107,16 @@
     var node = parseResult.findNode.enumConstantDeclaration('v.');
     assertParsedNodeText(node, r'''
 EnumConstantDeclaration
+  name: SimpleIdentifier
+    token: v
   arguments: EnumConstantArguments
+    constructorSelector: ConstructorSelector
+      period: .
+      name: SimpleIdentifier
+        token: named
     argumentList: ArgumentList
       leftParenthesis: ( <synthetic>
       rightParenthesis: ) <synthetic>
-    constructorSelector: ConstructorSelector
-      name: SimpleIdentifier
-        token: named
-      period: .
-  name: SimpleIdentifier
-    token: v
 ''');
   }
 
@@ -132,16 +133,16 @@
     var node = parseResult.findNode.enumConstantDeclaration('v.');
     assertParsedNodeText(node, r'''
 EnumConstantDeclaration
+  name: SimpleIdentifier
+    token: v
   arguments: EnumConstantArguments
+    constructorSelector: ConstructorSelector
+      period: .
+      name: SimpleIdentifier
+        token: <empty> <synthetic>
     argumentList: ArgumentList
       leftParenthesis: ( <synthetic>
       rightParenthesis: ) <synthetic>
-    constructorSelector: ConstructorSelector
-      name: SimpleIdentifier
-        token: <empty> <synthetic>
-      period: .
-  name: SimpleIdentifier
-    token: v
 ''');
   }
 
@@ -160,23 +161,23 @@
     var node = parseResult.findNode.enumConstantDeclaration('v<int>.');
     assertParsedNodeText(node, r'''
 EnumConstantDeclaration
+  name: SimpleIdentifier
+    token: v
   arguments: EnumConstantArguments
-    argumentList: ArgumentList
-      leftParenthesis: ( <synthetic>
-      rightParenthesis: ) <synthetic>
-    constructorSelector: ConstructorSelector
-      name: SimpleIdentifier
-        token: <empty> <synthetic>
-      period: .
     typeArguments: TypeArgumentList
+      leftBracket: <
       arguments
         NamedType
           name: SimpleIdentifier
             token: int
-      leftBracket: <
       rightBracket: >
-  name: SimpleIdentifier
-    token: v
+    constructorSelector: ConstructorSelector
+      period: .
+      name: SimpleIdentifier
+        token: <empty> <synthetic>
+    argumentList: ArgumentList
+      leftParenthesis: ( <synthetic>
+      rightParenthesis: ) <synthetic>
 ''');
   }
 
@@ -233,19 +234,19 @@
     var node = parseResult.findNode.enumConstantDeclaration('v<int>');
     assertParsedNodeText(node, r'''
 EnumConstantDeclaration
+  name: SimpleIdentifier
+    token: v
   arguments: EnumConstantArguments
-    argumentList: ArgumentList
-      leftParenthesis: ( <synthetic>
-      rightParenthesis: ) <synthetic>
     typeArguments: TypeArgumentList
+      leftBracket: <
       arguments
         NamedType
           name: SimpleIdentifier
             token: int
-      leftBracket: <
       rightBracket: >
-  name: SimpleIdentifier
-    token: v
+    argumentList: ArgumentList
+      leftParenthesis: ( <synthetic>
+      rightParenthesis: ) <synthetic>
 ''');
   }
 
@@ -260,12 +261,15 @@
     var node = parseResult.findNode.enumDeclaration('enum E');
     assertParsedNodeText(node, r'''
 EnumDeclaration
+  enumKeyword: enum
+  name: SimpleIdentifier
+    token: E
+  leftBracket: {
   constants
     EnumConstantDeclaration
       name: SimpleIdentifier
         token: v
-  name: SimpleIdentifier
-    token: E
+  rightBracket: }
 ''');
   }
 
@@ -280,13 +284,16 @@
     var node = parseResult.findNode.enumDeclaration('enum E');
     assertParsedNodeText(node, r'''
 EnumDeclaration
+  enumKeyword: enum
+  name: SimpleIdentifier
+    token: E
+  leftBracket: {
   constants
     EnumConstantDeclaration
       name: SimpleIdentifier
         token: v
-  name: SimpleIdentifier
-    token: E
   semicolon: ;
+  rightBracket: }
 ''');
   }
 
@@ -303,14 +310,14 @@
     var node = parseResult.findNode.methodDeclaration('get A');
     assertParsedNodeText(node, r'''
 MethodDeclaration
-  body: ExpressionFunctionBody
-    expression: IntegerLiteral
-      literal: 0
-    functionDefinition: =>
-    semicolon: ;
+  propertyKeyword: get
   name: SimpleIdentifier
     token: A
-  propertyKeyword: get
+  body: ExpressionFunctionBody
+    functionDefinition: =>
+    expression: IntegerLiteral
+      literal: 0
+    semicolon: ;
 ''');
   }
 
@@ -325,10 +332,10 @@
     var node = parseResult.findNode.superFormalParameter('super.a');
     assertParsedNodeText(node, r'''
 SuperFormalParameter
+  superKeyword: super
+  period: .
   identifier: SimpleIdentifier
     token: a
-  period: .
-  superKeyword: super
 ''');
   }
 }
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index d2903bd..94a2866 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -67,10 +67,9 @@
     _writeNextCodeLine(node);
     _writeln('AdjacentStrings');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('strings', node.strings);
-      _addStringLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
+      _writeRaw('stringValue', node.stringValue);
     });
   }
 
@@ -79,12 +78,8 @@
     _writeNextCodeLine(node);
     _writeln('Annotation');
     _withIndent(() {
-      _writeNode('arguments', node.arguments);
-      _writeToken('atSign', node.atSign);
-      _writeNode('constructorName', node.constructorName);
+      _writeNamedChildEntities(node);
       _writeElement('element', node.element);
-      _writeNode('name', node.name);
-      _writeNode('typeArguments', node.typeArguments);
     });
   }
 
@@ -93,11 +88,7 @@
     _writeNextCodeLine(node);
     _writeln('ArgumentList');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftParenthesis', node.leftParenthesis);
-      properties.addNodeList('arguments', node.arguments);
-      properties.addToken('rightParenthesis', node.rightParenthesis);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -106,12 +97,8 @@
     _writeNextCodeLine(node);
     _writeln('AsExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addToken('asOperator', node.asOperator);
-      properties.addNode('type', node.type);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -120,10 +107,7 @@
     _writeNextCodeLine(node);
     _writeln('AssertInitializer');
     _withIndent(() {
-      var properties = _Properties();
-      _addAssertion(properties, node);
-      _addConstructorInitializer(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -132,11 +116,7 @@
     _writeNextCodeLine(node);
     _writeln('AssertStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('semicolon', node.semicolon);
-      _addAssertion(properties, node);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -145,17 +125,13 @@
     _writeNextCodeLine(node);
     _writeln('AssignmentExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('leftHandSide', node.leftHandSide);
-      properties.addToken('operator', node.operator);
-      properties.addNode('rightHandSide', node.rightHandSide);
-      properties.addElement('readElement', node.readElement);
-      properties.addType('readType', node.readType);
-      properties.addElement('writeElement', node.writeElement);
-      properties.addType('writeType', node.writeType);
-      _addExpression(properties, node);
-      _addMethodReferenceExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('readElement', node.readElement);
+      _writeType('readType', node.readType);
+      _writeElement('writeElement', node.writeElement);
+      _writeType('writeType', node.writeType);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -164,11 +140,8 @@
     _writeNextCodeLine(node);
     _writeln('AwaitExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('awaitKeyword', node.awaitKeyword);
-      properties.addNode('expression', node.expression);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -177,14 +150,10 @@
     _writeNextCodeLine(node);
     _writeln('BinaryExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('leftOperand', node.leftOperand);
-      properties.addToken('operator', node.operator);
-      properties.addNode('rightOperand', node.rightOperand);
-      properties.addType('staticInvokeType', node.staticInvokeType);
-      _addExpression(properties, node);
-      _addMethodReferenceExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticInvokeType', node.staticInvokeType);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -193,12 +162,7 @@
     _writeNextCodeLine(node);
     _writeln('Block');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftBracket', node.leftBracket);
-      properties.addToken('rightBracket', node.rightBracket);
-      properties.addNodeList('statements', node.statements);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -207,10 +171,7 @@
     _writeNextCodeLine(node);
     _writeln('BlockFunctionBody');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('block', node.block);
-      _addFunctionBody(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -219,10 +180,8 @@
     _writeNextCodeLine(node);
     _writeln('BooleanLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('literal', node.literal);
-      _addLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -231,11 +190,7 @@
     _writeNextCodeLine(node);
     _writeln('BreakStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('breakKeyword', node.breakKeyword);
-      properties.addNode('label', node.label);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -244,11 +199,8 @@
     _writeNextCodeLine(node);
     _writeln('CascadeExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('cascadeSections', node.cascadeSections);
-      properties.addNode('target', node.target);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -257,15 +209,7 @@
     _writeNextCodeLine(node);
     _writeln('CatchClause');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
-      properties.addToken('catchKeyword', node.catchKeyword);
-      properties.addNode('exceptionParameter', node.exceptionParameter);
-      properties.addNode('exceptionType', node.exceptionType);
-      properties.addToken('onKeyword', node.onKeyword);
-      properties.addNode('stackTraceParameter', node.stackTraceParameter);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -274,14 +218,10 @@
     _writeNextCodeLine(node);
     _writeln('ClassDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('abstractKeyword', node.abstractKeyword);
-      properties.addToken('classKeyword', node.classKeyword);
-      properties.addNode('extendsClause', node.extendsClause);
-      properties.addNode('nativeClause', node.nativeClause);
-      properties.addNode('withClause', node.withClause);
-      _addClassOrMixinDeclaration(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -290,9 +230,7 @@
     _writeNextCodeLine(node);
     _writeln('Comment');
     _withIndent(() {
-      var properties = _Properties();
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -301,9 +239,7 @@
     _writeNextCodeLine(node);
     _writeln('CompilationUnit');
     _withIndent(() {
-      _writeNode('scriptTag', node.scriptTag);
-      _writeNodeList('directives', node.directives);
-      _writeNodeList('declarations', node.declarations);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -312,14 +248,8 @@
     _writeNextCodeLine(node);
     _writeln('ConditionalExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('colon', node.colon);
-      properties.addNode('condition', node.condition);
-      properties.addNode('elseExpression', node.elseExpression);
-      properties.addToken('question', node.question);
-      properties.addNode('thenExpression', node.thenExpression);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -328,18 +258,10 @@
     _writeNextCodeLine(node);
     _writeln('ConstructorDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
-      properties.addToken('constKeyword', node.constKeyword);
-      properties.addToken('externalKeyword', node.externalKeyword);
-      properties.addToken('factoryKeyword', node.factoryKeyword);
-      properties.addNodeList('initializers', node.initializers);
-      properties.addNode('name', node.name);
-      properties.addNode('parameters', node.parameters);
-      properties.addNode('redirectedConstructor', node.redirectedConstructor);
-      properties.addNode('returnType', node.returnType);
-      _addClassMember(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -348,14 +270,7 @@
     _writeNextCodeLine(node);
     _writeln('ConstructorFieldInitializer');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('equals', node.equals);
-      properties.addNode('expression', node.expression);
-      properties.addNode('fieldName', node.fieldName);
-      properties.addToken('period', node.period);
-      properties.addToken('thisKeyword', node.thisKeyword);
-      _addConstructorInitializer(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -364,12 +279,8 @@
     _writeNextCodeLine(node);
     _writeln('ConstructorName');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('name', node.name);
-      properties.addToken('period', node.period);
-      properties.addElement('staticElement', node.staticElement);
-      properties.addNode('type', node.type);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('staticElement', node.staticElement);
     });
   }
 
@@ -377,10 +288,8 @@
   void visitConstructorReference(ConstructorReference node) {
     _writeln('ConstructorReference');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('constructorName', node.constructorName);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -389,10 +298,7 @@
     _checkChildrenEntitiesLinking(node);
     _writeln('ConstructorSelector');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('name', node.name);
-      properties.addToken('period', node.period);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -401,11 +307,7 @@
     _writeNextCodeLine(node);
     _writeln('ContinueStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('continueKeyword', node.continueKeyword);
-      properties.addNode('label', node.label);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -414,12 +316,10 @@
     _writeNextCodeLine(node);
     _writeln('DeclaredIdentifier');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('identifier', node.identifier);
-      properties.addToken('keyword', node.keyword);
-      properties.addNode('type', node.type);
-      _addDeclaration(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -428,11 +328,11 @@
     _writeNextCodeLine(node);
     _writeln('DefaultFormalParameter');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('defaultValue', node.defaultValue);
-      properties.addNode('parameter', node.parameter);
-      _addFormalParameter(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+        _writeType('declaredElementType', node.declaredElement!.type);
+      }
     });
   }
 
@@ -441,11 +341,7 @@
     _writeNextCodeLine(node);
     _writeln('DoStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
-      properties.addNode('condition', node.condition);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -454,10 +350,8 @@
     _writeNextCodeLine(node);
     _writeln('DoubleLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('literal', node.literal);
-      _addLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -466,10 +360,7 @@
     _writeNextCodeLine(node);
     _writeln('EmptyFunctionBody');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('semicolon', node.semicolon);
-      _addFunctionBody(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -480,11 +371,7 @@
     }
     _writeln('EnumConstantArguments');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('argumentList', node.argumentList);
-      properties.addNode('constructorSelector', node.constructorSelector);
-      properties.addNode('typeArguments', node.typeArguments);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -494,11 +381,10 @@
     _writeNextCodeLine(node);
     _writeln('EnumConstantDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('arguments', node.arguments);
-      properties.addNode('name', node.name);
-      _addDeclaration(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -507,11 +393,10 @@
     _writeNextCodeLine(node);
     _writeln('EnumDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('constants', node.constants);
-      properties.addToken('semicolon', node.semicolon);
-      _addNamedCompilationUnitMember(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -520,9 +405,13 @@
     _writeNextCodeLine(node);
     _writeln('ExportDirective');
     _withIndent(() {
-      var properties = _Properties();
-      _addNamespaceDirective(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('element', node.element);
+      _writeSource('selectedSource', node.selectedSource);
+      _writeRaw('selectedUriContent', node.selectedUriContent);
+      _writeRaw('uriContent', node.uriContent);
+      _writeElement('uriElement', node.uriElement);
+      _writeSource('uriSource', node.uriSource);
     });
   }
 
@@ -531,12 +420,7 @@
     _writeNextCodeLine(node);
     _writeln('ExpressionFunctionBody');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addToken('functionDefinition', node.functionDefinition);
-      properties.addToken('semicolon', node.semicolon);
-      _addFunctionBody(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -545,11 +429,7 @@
     _writeNextCodeLine(node);
     _writeln('ExpressionStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addToken('semicolon', node.semicolon);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -558,10 +438,7 @@
     _writeNextCodeLine(node);
     _writeln('ExtendsClause');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('superclass', node.superclass);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -570,15 +447,10 @@
     _writeNextCodeLine(node);
     _writeln('FieldDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('abstractKeyword', node.abstractKeyword);
-      properties.addToken('externalKeyword', node.externalKeyword);
-      properties.addToken('covariantKeyword', node.covariantKeyword);
-      properties.addNode('fields', node.fields);
-      properties.addToken('semicolon', node.semicolon);
-      properties.addToken('staticKeyword', node.staticKeyword);
-      _addClassMember(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -587,15 +459,11 @@
     _writeNextCodeLine(node);
     _writeln('FieldFormalParameter');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('keyword', node.keyword);
-      properties.addNode('parameters', node.parameters);
-      properties.addToken('period', node.period);
-      properties.addToken('thisKeyword', node.thisKeyword);
-      properties.addNode('type', node.type);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addNormalFormalParameter(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+        _writeType('declaredElementType', node.declaredElement!.type);
+      }
     });
   }
 
@@ -604,10 +472,7 @@
     _writeNextCodeLine(node);
     _writeln('ForEachPartsWithDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('loopVariable', node.loopVariable);
-      _addForEachParts(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -616,10 +481,7 @@
     _writeNextCodeLine(node);
     _writeln('ForEachPartsWithIdentifier');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('identifier', node.identifier);
-      _addForEachParts(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -628,12 +490,7 @@
     _writeNextCodeLine(node);
     _writeln('FormalParameterList');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftParenthesis', node.leftParenthesis);
-      properties.addToken('rightParenthesis', node.rightParenthesis);
-      properties.addNodeList('parameters', node.parameters);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -642,10 +499,7 @@
     _writeNextCodeLine(node);
     _writeln('ForPartsWithDeclarations');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('variables', node.variables);
-      _addForParts(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -654,10 +508,7 @@
     _writeNextCodeLine(node);
     _writeln('ForPartsWithExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('initialization', node.initialization);
-      _addForParts(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -666,11 +517,7 @@
     _writeNextCodeLine(node);
     _writeln('ForStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
-      properties.addNode('forLoopParts', node.forLoopParts);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -679,14 +526,11 @@
     _writeNextCodeLine(node);
     _writeln('FunctionDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addType('declaredElementType', node.declaredElement!.type);
-      properties.addToken('externalKeyword', node.externalKeyword);
-      properties.addNode('functionExpression', node.functionExpression);
-      properties.addToken('propertyKeyword', node.propertyKeyword);
-      properties.addNode('returnType', node.returnType);
-      _addNamedCompilationUnitMember(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+        _writeType('declaredElementType', node.declaredElement!.type);
+      }
     });
   }
 
@@ -695,10 +539,7 @@
     _writeNextCodeLine(node);
     _writeln('FunctionDeclarationStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('functionDeclaration', node.functionDeclaration);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -707,13 +548,11 @@
     _writeNextCodeLine(node);
     _writeln('FunctionExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
-      properties.addElement('declaredElement', node.declaredElement);
-      properties.addNode('parameters', node.parameters);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -722,11 +561,11 @@
     _writeNextCodeLine(node);
     _writeln('FunctionExpressionInvocation');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('function', node.function);
-      properties.addElement('staticElement', node.staticElement);
-      _addInvocationExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticInvokeType', node.staticInvokeType);
+      _writeType('staticType', node.staticType);
+      _writeTypeList('typeArgumentTypes', node.typeArgumentTypes);
     });
   }
 
@@ -734,12 +573,9 @@
   void visitFunctionReference(FunctionReference node) {
     _writeln('FunctionReference');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('function', node.function);
-      properties.addNode('typeArguments', node.typeArguments);
-      properties.addTypeList('typeArgumentTypes', node.typeArgumentTypes);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
+      _writeTypeList('typeArgumentTypes', node.typeArgumentTypes);
     });
   }
 
@@ -748,13 +584,10 @@
     _writeNextCodeLine(node);
     _writeln('FunctionTypeAlias');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addElement('declaredElement', node.declaredElement);
-      properties.addNode('parameters', node.parameters);
-      properties.addNode('returnType', node.returnType);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addTypeAlias(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -763,13 +596,11 @@
     _writeNextCodeLine(node);
     _writeln('FunctionTypedFormalParameter');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('parameters', node.parameters);
-      properties.addToken('question', node.question);
-      properties.addNode('returnType', node.returnType);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addNormalFormalParameter(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+        _writeType('declaredElementType', node.declaredElement!.type);
+      }
     });
   }
 
@@ -778,17 +609,14 @@
     _writeNextCodeLine(node);
     _writeln('GenericFunctionType');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addGenericFunctionTypeElement(
-        'declaredElement',
-        node.declaredElement,
-      );
-      properties.addToken('functionKeyword', node.functionKeyword);
-      properties.addNode('parameters', node.parameters);
-      properties.addNode('returnType', node.returnType);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addTypeAnnotation(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeGenericFunctionTypeElement(
+          'declaredElement',
+          node.declaredElement,
+        );
+      }
+      _writeType('type', node.type);
     });
   }
 
@@ -797,12 +625,10 @@
     _writeNextCodeLine(node);
     _writeln('GenericTypeAlias');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('equals', node.equals);
-      properties.addNode('functionType', node.functionType);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addTypeAlias(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -811,10 +637,7 @@
     _writeNextCodeLine(node);
     _writeln('HideCombinator');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('hiddenNames', node.hiddenNames);
-      _addCombinator(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -822,12 +645,7 @@
   void visitIfElement(IfElement node) {
     _writeln('IfElement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('condition', node.condition);
-      properties.addNode('elseStatement', node.elseElement);
-      properties.addNode('thenStatement', node.thenElement);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -836,12 +654,7 @@
     _writeNextCodeLine(node);
     _writeln('IfStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('condition', node.condition);
-      properties.addNode('elseStatement', node.elseStatement);
-      properties.addNode('thenStatement', node.thenStatement);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -850,11 +663,7 @@
     _writeNextCodeLine(node);
     _writeln('ImplementsClause');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('implementsKeyword', node.implementsKeyword);
-      properties.addNodeList('interfaces', node.interfaces);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -862,12 +671,9 @@
   void visitImplicitCallReference(ImplicitCallReference node) {
     _writeln('ImplicitCallReference');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addNode('typeArguments', node.typeArguments);
-      properties.addTypeList('typeArgumentTypes', node.typeArgumentTypes);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
+      _writeTypeList('typeArgumentTypes', node.typeArgumentTypes);
     });
   }
 
@@ -876,10 +682,13 @@
     _writeNextCodeLine(node);
     _writeln('ImportDirective');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('prefix', node.prefix);
-      _addNamespaceDirective(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('element', node.element);
+      _writeSource('selectedSource', node.selectedSource);
+      _writeRaw('selectedUriContent', node.selectedUriContent);
+      _writeRaw('uriContent', node.uriContent);
+      _writeElement('uriElement', node.uriElement);
+      _writeSource('uriSource', node.uriSource);
     });
   }
 
@@ -888,15 +697,9 @@
     _writeNextCodeLine(node);
     _writeln('IndexExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftBracket', node.leftBracket);
-      properties.addNode('index', node.index);
-      properties.addToken('period', node.period);
-      properties.addToken('rightBracket', node.rightBracket);
-      properties.addNode('target', node.target);
-      _addExpression(properties, node);
-      _addMethodReferenceExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
+      _writeElement('staticElement', node.staticElement);
     });
   }
 
@@ -905,12 +708,8 @@
     _writeNextCodeLine(node);
     _writeln('InstanceCreationExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('argumentList', node.argumentList);
-      properties.addNode('constructorName', node.constructorName);
-      properties.addToken('keyword', node.keyword);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -919,10 +718,8 @@
     _writeNextCodeLine(node);
     _writeln('IntegerLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('literal', node.literal);
-      _addLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -931,12 +728,7 @@
     _writeNextCodeLine(node);
     _writeln('InterpolationExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addToken('leftBracket', node.leftBracket);
-      properties.addToken('rightBracket', node.rightBracket);
-      _addInterpolationElement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -945,10 +737,7 @@
     _writeNextCodeLine(node);
     _writeln('InterpolationString');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('contents', node.contents);
-      _addInterpolationElement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -957,12 +746,8 @@
     _writeNextCodeLine(node);
     _writeln('IsExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addToken('isOperator', node.isOperator);
-      properties.addNode('type', node.type);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -971,7 +756,7 @@
     _writeNextCodeLine(node);
     _writeln('Label');
     _withIndent(() {
-      _writeNode('label', node.label);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -980,10 +765,8 @@
     _writeNextCodeLine(node);
     _writeln('LibraryDirective');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('name', node.name);
-      _addDirective(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('element', node.element);
     });
   }
 
@@ -992,10 +775,9 @@
     _writeNextCodeLine(node);
     _writeln('LibraryIdentifier');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('components', node.components);
-      _addIdentifier(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1004,12 +786,8 @@
     _writeNextCodeLine(node);
     _writeln('ListLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftBracket', node.leftBracket);
-      properties.addNodeList('elements', node.elements);
-      properties.addToken('rightBracket', node.rightBracket);
-      _addTypedLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1018,11 +796,7 @@
     _writeNextCodeLine(node);
     _writeln('SetOrMapLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('key', node.key);
-      properties.addNode('value', node.value);
-      _addCollectionElement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1031,21 +805,11 @@
     _writeNextCodeLine(node);
     _writeln('MethodDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
+      _writeNamedChildEntities(node);
       if (_withResolution) {
-        properties.addType('declaredElementType', node.declaredElement!.type);
+        _writeElement('declaredElement', node.declaredElement);
+        _writeType('declaredElementType', node.declaredElement!.type);
       }
-      properties.addToken('externalKeyword', node.externalKeyword);
-      properties.addToken('modifierKeyword', node.modifierKeyword);
-      properties.addNode('name', node.name);
-      properties.addToken('operatorKeyword', node.operatorKeyword);
-      properties.addNode('parameters', node.parameters);
-      properties.addToken('propertyKeyword', node.propertyKeyword);
-      properties.addNode('returnType', node.returnType);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addClassMember(properties, node);
-      _writeProperties(properties);
     });
   }
 
@@ -1054,12 +818,10 @@
     _writeNextCodeLine(node);
     _writeln('MethodInvocation');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('methodName', node.methodName);
-      properties.addToken('operator', node.operator);
-      properties.addNode('target', node.target);
-      _addInvocationExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticInvokeType', node.staticInvokeType);
+      _writeType('staticType', node.staticType);
+      _writeTypeList('typeArgumentTypes', node.typeArgumentTypes);
     });
   }
 
@@ -1068,11 +830,10 @@
     _writeNextCodeLine(node);
     _writeln('MixinDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('mixinKeyword', node.mixinKeyword);
-      properties.addNode('onClause', node.onClause);
-      _addClassOrMixinDeclaration(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -1081,8 +842,7 @@
     _writeNextCodeLine(node);
     _writeln('NamedExpression');
     _withIndent(() {
-      _writeNode('name', node.name);
-      _writeNode('expression', node.expression);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1091,9 +851,8 @@
     _writeNextCodeLine(node);
     _writeln('NamedType');
     _withIndent(() {
-      _writeNode('name', node.name);
+      _writeNamedChildEntities(node);
       _writeType('type', node.type);
-      _writeNode('typeArguments', node.typeArguments);
     });
   }
 
@@ -1102,10 +861,8 @@
     _writeNextCodeLine(node);
     _writeln('NullLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('literal', node.literal);
-      _addLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1114,12 +871,7 @@
     _writeNextCodeLine(node);
     _writeln('OnClause');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('onKeyword', node.onKeyword);
-      properties.addNodeList(
-          'superclassConstraints', node.superclassConstraints);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1128,12 +880,8 @@
     _writeNextCodeLine(node);
     _writeln('ParenthesizedExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftParenthesis', node.leftParenthesis);
-      properties.addNode('expression', node.expression);
-      properties.addToken('rightParenthesis', node.rightParenthesis);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1142,9 +890,11 @@
     _writeNextCodeLine(node);
     _writeln('PartDirective');
     _withIndent(() {
-      var properties = _Properties();
-      _addUriBasedDirective(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('element', node.element);
+      _writeRaw('uriContent', node.uriContent);
+      _writeElement('uriElement', node.uriElement);
+      _writeSource('uriSource', node.uriSource);
     });
   }
 
@@ -1153,13 +903,8 @@
     _writeNextCodeLine(node);
     _writeln('PartOfDirective');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('libraryName', node.libraryName);
-      properties.addToken('ofKeyword', node.ofKeyword);
-      properties.addToken('partKeyword', node.partKeyword);
-      properties.addToken('semicolon', node.semicolon);
-      _addDirective(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('element', node.element);
     });
   }
 
@@ -1168,18 +913,15 @@
     _writeNextCodeLine(node);
     _writeln('PostfixExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('operand', node.operand);
-      properties.addToken('operator', node.operator);
+      _writeNamedChildEntities(node);
       if (node.operator.type.isIncrementOperator) {
-        properties.addElement('readElement', node.readElement);
-        properties.addType('readType', node.readType);
-        properties.addElement('writeElement', node.writeElement);
-        properties.addType('writeType', node.writeType);
+        _writeElement('readElement', node.readElement);
+        _writeType('readType', node.readType);
+        _writeElement('writeElement', node.writeElement);
+        _writeType('writeType', node.writeType);
       }
-      _addExpression(properties, node);
-      _addMethodReferenceExpression(properties, node);
-      _writeProperties(properties);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1188,12 +930,9 @@
     _writeNextCodeLine(node);
     _writeln('PrefixedIdentifier');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('identifier', node.identifier);
-      properties.addToken('period', node.period);
-      properties.addNode('prefix', node.prefix);
-      _addIdentifier(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1202,18 +941,15 @@
     _writeNextCodeLine(node);
     _writeln('PrefixExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('operand', node.operand);
-      properties.addToken('operator', node.operator);
+      _writeNamedChildEntities(node);
       if (node.operator.type.isIncrementOperator) {
-        properties.addElement('readElement', node.readElement);
-        properties.addType('readType', node.readType);
-        properties.addElement('writeElement', node.writeElement);
-        properties.addType('writeType', node.writeType);
+        _writeElement('readElement', node.readElement);
+        _writeType('readType', node.readType);
+        _writeElement('writeElement', node.writeElement);
+        _writeType('writeType', node.writeType);
       }
-      _addExpression(properties, node);
-      _addMethodReferenceExpression(properties, node);
-      _writeProperties(properties);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1222,12 +958,8 @@
     _writeNextCodeLine(node);
     _writeln('PropertyAccess');
     _withIndent(() {
-      var properties = _Properties();
-      _writeToken('operator', node.operator);
-      properties.addNode('propertyName', node.propertyName);
-      properties.addNode('target', node.target);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1238,11 +970,8 @@
     _writeNextCodeLine(node);
     _writeln('RedirectingConstructorInvocation');
     _withIndent(() {
-      _writeNode('argumentList', node.argumentList);
-      _writeNode('constructorName', node.constructorName);
-      _writeToken('period', node.period);
+      _writeNamedChildEntities(node);
       _writeElement('staticElement', node.staticElement);
-      _writeToken('thisKeyword', node.thisKeyword);
     });
   }
 
@@ -1251,12 +980,7 @@
     _writeNextCodeLine(node);
     _writeln('ReturnStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addToken('returnKeyword', node.returnKeyword);
-      properties.addToken('semicolon', node.semicolon);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1265,13 +989,9 @@
     _writeNextCodeLine(node);
     _writeln('SetOrMapLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('elements', node.elements);
-      properties.addRaw('isMap', node.isMap);
-      properties.addToken('leftBracket', node.leftBracket);
-      properties.addToken('rightBracket', node.rightBracket);
-      _addTypedLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeRaw('isMap', node.isMap);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1280,10 +1000,7 @@
     _writeNextCodeLine(node);
     _writeln('ShowCombinator');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('shownNames', node.shownNames);
-      _addCombinator(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1292,11 +1009,11 @@
     _writeNextCodeLine(node);
     _writeln('SimpleFormalParameter');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('keyword', node.keyword);
-      properties.addNode('type', node.type);
-      _addNormalFormalParameter(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+        _writeType('declaredElementType', node.declaredElement!.type);
+      }
     });
   }
 
@@ -1305,15 +1022,13 @@
     _writeNextCodeLine(node);
     _writeln('SimpleIdentifier');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addElement('staticElement', node.staticElement);
-      properties.addType('staticType', node.staticType);
-      properties.addTypeList(
+      _writeNamedChildEntities(node);
+      _writeElement('staticElement', node.staticElement);
+      _writeType('staticType', node.staticType);
+      _writeTypeList(
         'tearOffTypeArgumentTypes',
         node.tearOffTypeArgumentTypes,
       );
-      properties.addToken('token', node.token);
-      _writeProperties(properties);
     });
   }
 
@@ -1322,7 +1037,7 @@
     _writeNextCodeLine(node);
     _writeln('SimpleStringLiteral');
     _withIndent(() {
-      _writeToken('literal', node.literal);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1330,8 +1045,7 @@
   void visitSpreadElement(SpreadElement node) {
     _writeln('SpreadElement');
     _withIndent(() {
-      _writeNode('expression', node.expression);
-      _writeToken('spreadOperator', node.spreadOperator);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1340,10 +1054,9 @@
     _writeNextCodeLine(node);
     _writeln('StringInterpolation');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNodeList('elements', node.elements);
-      _addSingleStringLiteral(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
+      _writeRaw('stringValue', node.stringValue);
     });
   }
 
@@ -1352,11 +1065,8 @@
     _writeNextCodeLine(node);
     _writeln('SuperConstructorInvocation');
     _withIndent(() {
-      _writeNode('argumentList', node.argumentList);
-      _writeNode('constructorName', node.constructorName);
-      _writeToken('period', node.period);
+      _writeNamedChildEntities(node);
       _writeElement('staticElement', node.staticElement);
-      _writeToken('superKeyword', node.superKeyword);
     });
   }
 
@@ -1365,10 +1075,8 @@
     _writeNextCodeLine(node);
     _writeln('SuperExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('superKeyword', node.superKeyword);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1380,15 +1088,11 @@
     _writeNextCodeLine(node);
     _writeln('SuperFormalParameter');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('keyword', node.keyword);
-      properties.addNode('parameters', node.parameters);
-      properties.addToken('period', node.period);
-      properties.addToken('superKeyword', node.superKeyword);
-      properties.addNode('type', node.type);
-      properties.addNode('typeParameters', node.typeParameters);
-      _addNormalFormalParameter(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+        _writeType('declaredElementType', node.declaredElement!.type);
+      }
     });
   }
 
@@ -1397,10 +1101,7 @@
     _writeNextCodeLine(node);
     _writeln('SwitchCase');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      _addSwitchMember(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1409,9 +1110,7 @@
     _writeNextCodeLine(node);
     _writeln('SwitchDefault');
     _withIndent(() {
-      var properties = _Properties();
-      _addSwitchMember(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1420,11 +1119,7 @@
     _writeNextCodeLine(node);
     _writeln('SwitchStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addNodeList('members', node.members);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1432,11 +1127,7 @@
   void visitSymbolLiteral(SymbolLiteral node) {
     _writeln('SymbolLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('poundSign', node.poundSign);
-      properties.addTokenList('components', node.components);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1445,10 +1136,8 @@
     _writeNextCodeLine(node);
     _writeln('ThisExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('thisKeyword', node.thisKeyword);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1457,10 +1146,8 @@
     _writeNextCodeLine(node);
     _writeln('ThrowExpression');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1469,12 +1156,10 @@
     _writeNextCodeLine(node);
     _writeln('TopLevelVariableDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('externalKeyword', node.externalKeyword);
-      properties.addToken('semicolon', node.semicolon);
-      properties.addNode('variables', node.variables);
-      _addCompilationUnitMember(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -1483,12 +1168,7 @@
     _writeNextCodeLine(node);
     _writeln('TryStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
-      properties.addNodeList('catchClauses', node.catchClauses);
-      properties.addNode('finallyBlock', node.finallyBlock);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1497,12 +1177,7 @@
     _writeNextCodeLine(node);
     _writeln('TypeArgumentList');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftBracket', node.leftBracket);
-      properties.addNodeList('arguments', node.arguments);
-      properties.addToken('rightBracket', node.rightBracket);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1510,10 +1185,8 @@
   void visitTypeLiteral(TypeLiteral node) {
     _writeln('TypeLiteral');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('type', node.type);
-      _addExpression(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      _writeType('staticType', node.staticType);
     });
   }
 
@@ -1522,16 +1195,10 @@
     _writeNextCodeLine(node);
     _writeln('TypeParameter');
     _withIndent(() {
-      var properties = _Properties();
-      // TODO (kallentu) : Clean up TypeParameterImpl casting once variance is
-      // added to the interface.
-      if ((node as TypeParameterImpl).varianceKeyword != null) {
-        properties.addToken('variance', node.varianceKeyword);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
       }
-      properties.addNode('bound', node.bound);
-      properties.addNode('name', node.name);
-      _addDeclaration(properties, node);
-      _writeProperties(properties);
     });
   }
 
@@ -1540,12 +1207,7 @@
     _writeNextCodeLine(node);
     _writeln('TypeParameterList');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('leftBracket', node.leftBracket);
-      properties.addNodeList('typeParameters', node.typeParameters);
-      properties.addToken('rightBracket', node.rightBracket);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1554,11 +1216,10 @@
     _writeNextCodeLine(node);
     _writeln('VariableDeclaration');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('initializer', node.initializer);
-      properties.addNode('name', node.name);
-      _addDeclaration(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
+      if (_withResolution) {
+        _writeElement('declaredElement', node.declaredElement);
+      }
     });
   }
 
@@ -1567,13 +1228,7 @@
     _writeNextCodeLine(node);
     _writeln('VariableDeclarationList');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('keyword', node.keyword);
-      properties.addToken('lateKeyword', node.lateKeyword);
-      properties.addNode('type', node.type);
-      properties.addNodeList('variables', node.variables);
-      _addAnnotatedNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1582,11 +1237,7 @@
     _writeNextCodeLine(node);
     _writeln('VariableDeclarationStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('semicolon', node.semicolon);
-      properties.addNode('variables', node.variables);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1595,11 +1246,7 @@
     _writeNextCodeLine(node);
     _writeln('WhileStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('body', node.body);
-      properties.addNode('condition', node.condition);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1608,11 +1255,7 @@
     _writeNextCodeLine(node);
     _writeln('WithClause');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addToken('withKeyword', node.withKeyword);
-      properties.addNodeList('mixinTypes', node.mixinTypes);
-      _addAstNode(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1621,12 +1264,7 @@
     _writeNextCodeLine(node);
     _writeln('YieldStatement');
     _withIndent(() {
-      var properties = _Properties();
-      properties.addNode('expression', node.expression);
-      properties.addToken('star', node.star);
-      properties.addToken('yieldKeyword', node.yieldKeyword);
-      _addStatement(properties, node);
-      _writeProperties(properties);
+      _writeNamedChildEntities(node);
     });
   }
 
@@ -1634,229 +1272,6 @@
     _writeElement(name, element);
   }
 
-  void _addAnnotatedNode(_Properties properties, AnnotatedNode node) {
-    properties.addNode('documentationComment', node.documentationComment);
-    properties.addNodeList('metadata', node.metadata);
-    _addAstNode(properties, node);
-  }
-
-  void _addAssertion(_Properties properties, Assertion node) {
-    properties.addToken('assertKeyword', node.assertKeyword);
-    properties.addNode('condition', node.condition);
-    properties.addToken('leftParenthesis', node.leftParenthesis);
-    properties.addNode('message', node.message);
-    properties.addToken('rightParenthesis', node.rightParenthesis);
-    _addAstNode(properties, node);
-  }
-
-  void _addAstNode(_Properties properties, AstNode node) {}
-
-  void _addClassMember(_Properties properties, ClassMember node) {
-    _addDeclaration(properties, node);
-  }
-
-  void _addClassOrMixinDeclaration(
-    _Properties properties,
-    ClassOrMixinDeclaration node,
-  ) {
-    properties.addNode('implementsClause', node.implementsClause);
-    properties.addNodeList('members', node.members);
-    properties.addNode('typeParameters', node.typeParameters);
-    _addNamedCompilationUnitMember(properties, node);
-  }
-
-  void _addCollectionElement(_Properties properties, CollectionElement node) {
-    _addAstNode(properties, node);
-  }
-
-  void _addCombinator(_Properties properties, Combinator node) {
-    properties.addToken('keyword', node.keyword);
-    _addAstNode(properties, node);
-  }
-
-  void _addCompilationUnitMember(
-    _Properties properties,
-    CompilationUnitMember node,
-  ) {
-    _addDeclaration(properties, node);
-  }
-
-  void _addConstructorInitializer(
-    _Properties properties,
-    ConstructorInitializer node,
-  ) {
-    _addAstNode(properties, node);
-  }
-
-  void _addDeclaration(_Properties properties, Declaration node) {
-    if (_withResolution) {
-      properties.addElement('declaredElement', node.declaredElement);
-    }
-    _addAnnotatedNode(properties, node);
-  }
-
-  void _addDirective(
-    _Properties properties,
-    Directive node,
-  ) {
-    properties.addElement('element', node.element);
-    _addAnnotatedNode(properties, node);
-  }
-
-  void _addExpression(_Properties properties, Expression node) {
-    properties.addType('staticType', node.staticType);
-    _addAstNode(properties, node);
-  }
-
-  void _addForEachParts(_Properties properties, ForEachParts node) {
-    properties.addToken('inKeyword', node.inKeyword);
-    properties.addNode('iterable', node.iterable);
-    _addForLoopParts(properties, node);
-  }
-
-  void _addForLoopParts(_Properties properties, ForLoopParts node) {
-    _addAstNode(properties, node);
-  }
-
-  void _addFormalParameter(_Properties properties, FormalParameter node) {
-    properties.addToken('covariantKeyword', node.covariantKeyword);
-    if (_withResolution) {
-      properties.addElement('declaredElement', node.declaredElement);
-      properties.addType('declaredElementType', node.declaredElement!.type);
-    }
-    properties.addNode('identifier', node.identifier);
-    properties.addNodeList('metadata', node.metadata);
-    properties.addToken('requiredKeyword', node.requiredKeyword);
-    _addAstNode(properties, node);
-  }
-
-  void _addForParts(_Properties properties, ForParts node) {
-    properties.addNode('condition', node.condition);
-    properties.addNodeList('updaters', node.updaters);
-    _addForLoopParts(properties, node);
-  }
-
-  void _addFunctionBody(_Properties properties, FunctionBody node) {
-    properties.addToken('keyword', node.keyword);
-    properties.addToken('star', node.star);
-    _addAstNode(properties, node);
-  }
-
-  void _addIdentifier(
-    _Properties properties,
-    Identifier node,
-  ) {
-    properties.addElement('staticElement', node.staticElement);
-    _addExpression(properties, node);
-  }
-
-  void _addInterpolationElement(
-    _Properties properties,
-    InterpolationElement node,
-  ) {
-    _addAstNode(properties, node);
-  }
-
-  void _addInvocationExpression(
-    _Properties properties,
-    InvocationExpression node,
-  ) {
-    properties.addNode('argumentList', node.argumentList);
-    properties.addType('staticInvokeType', node.staticInvokeType);
-    properties.addNode('typeArguments', node.typeArguments);
-    properties.addTypeList('typeArgumentTypes', node.typeArgumentTypes);
-    _addExpression(properties, node);
-  }
-
-  void _addLiteral(_Properties properties, Literal node) {
-    _addExpression(properties, node);
-  }
-
-  void _addMethodReferenceExpression(
-    _Properties properties,
-    MethodReferenceExpression node,
-  ) {
-    properties.addElement('staticElement', node.staticElement);
-    _addAstNode(properties, node);
-  }
-
-  void _addNamedCompilationUnitMember(
-    _Properties properties,
-    NamedCompilationUnitMember node,
-  ) {
-    properties.addNode('name', node.name);
-    _addCompilationUnitMember(properties, node);
-  }
-
-  void _addNamespaceDirective(
-    _Properties properties,
-    NamespaceDirective node,
-  ) {
-    properties.addNodeList('combinators', node.combinators);
-    properties.addNodeList('configurations', node.configurations);
-    properties.addSource('selectedSource', node.selectedSource);
-    properties.addRaw('selectedUriContent', node.selectedUriContent);
-    _addUriBasedDirective(properties, node);
-  }
-
-  void _addNormalFormalParameter(
-    _Properties properties,
-    NormalFormalParameter node,
-  ) {
-    properties.addNode('documentationComment', node.documentationComment);
-    _addFormalParameter(properties, node);
-  }
-
-  void _addSingleStringLiteral(
-      _Properties properties, SingleStringLiteral node) {
-    _addStringLiteral(properties, node);
-  }
-
-  void _addStatement(_Properties properties, Statement node) {
-    _addAstNode(properties, node);
-  }
-
-  void _addStringLiteral(_Properties properties, StringLiteral node) {
-    properties.addRaw('stringValue', node.stringValue);
-    _addLiteral(properties, node);
-  }
-
-  void _addSwitchMember(_Properties properties, SwitchMember node) {
-    properties.addToken('keyword', node.keyword);
-    properties.addNodeList('labels', node.labels);
-    properties.addNodeList('statements', node.statements);
-    _addAstNode(properties, node);
-  }
-
-  void _addTypeAlias(_Properties properties, TypeAlias node) {
-    properties.addToken('semicolon', node.semicolon);
-    properties.addToken('typedefKeyword', node.typedefKeyword);
-    _addNamedCompilationUnitMember(properties, node);
-  }
-
-  void _addTypeAnnotation(_Properties properties, TypeAnnotation node) {
-    properties.addToken('question', node.question);
-    properties.addType('type', node.type);
-    _addAstNode(properties, node);
-  }
-
-  void _addTypedLiteral(_Properties properties, TypedLiteral node) {
-    properties.addToken('constKeyword', node.constKeyword);
-    properties.addNode('typeArguments', node.typeArguments);
-    _addLiteral(properties, node);
-  }
-
-  void _addUriBasedDirective(
-    _Properties properties,
-    UriBasedDirective node,
-  ) {
-    properties.addNode('uri', node.uri);
-    properties.addRaw('uriContent', node.uriContent);
-    properties.addElement('uriElement', node.uriElement);
-    properties.addSource('uriSource', node.uriSource);
-    _addDirective(properties, node);
-  }
-
   /// Check that children entities of the [node] link to each other.
   void _checkChildrenEntitiesLinking(AstNode node) {
     Token? lastEnd;
@@ -1977,6 +1392,24 @@
     _sink.writeln(line);
   }
 
+  void _writeNamedChildEntities(AstNode node) {
+    node as AstNodeImpl;
+    for (var entity in node.namedChildEntities) {
+      var value = entity.value;
+      if (value is Token) {
+        _writeToken(entity.name, value);
+      } else if (value is AstNode) {
+        _writeNode(entity.name, value);
+      } else if (value is List<Token>) {
+        _writeTokenList(entity.name, value);
+      } else if (value is List<AstNode>) {
+        _writeNodeList(entity.name, value);
+      } else {
+        throw UnimplementedError('(${value.runtimeType}) $value');
+      }
+    }
+  }
+
   void _writeNextCodeLine(AstNode node) {
     var nextCodeLine = _codeLinesProvider?.nextLine(node.offset);
     if (nextCodeLine != null) {
@@ -1994,7 +1427,7 @@
     }
   }
 
-  void _writeNodeList(String name, NodeList nodeList) {
+  void _writeNodeList(String name, List<AstNode> nodeList) {
     if (nodeList.isNotEmpty) {
       _writelnWithIndent(name);
       _withIndent(() {
@@ -2037,12 +1470,8 @@
     }
   }
 
-  void _writeProperties(_Properties container) {
-    var properties = container.properties;
-    properties.sort((a, b) => a.name.compareTo(b.name));
-    for (var property in properties) {
-      property.write(this);
-    }
+  void _writeRaw(String name, Object? value) {
+    _writelnWithIndent('$name: $value');
   }
 
   void _writeSource(String name, Source? source) {
@@ -2126,188 +1555,3 @@
     return '${member.runtimeType}';
   }
 }
-
-class _ElementProperty extends _Property {
-  final Element? element;
-
-  _ElementProperty(String name, this.element) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeElement(name, element);
-  }
-}
-
-class _GenericFunctionTypeElementProperty extends _Property {
-  final GenericFunctionTypeElement? element;
-
-  _GenericFunctionTypeElementProperty(String name, this.element) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeGenericFunctionTypeElement(name, element);
-  }
-}
-
-class _NodeListProperty extends _Property {
-  final NodeList nodeList;
-
-  _NodeListProperty(String name, this.nodeList) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeNodeList(name, nodeList);
-  }
-}
-
-class _NodeProperty extends _Property {
-  final AstNode? node;
-
-  _NodeProperty(String name, this.node) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeNode(name, node);
-  }
-}
-
-class _Properties {
-  final properties = <_Property>[];
-
-  void addElement(String name, Element? element) {
-    properties.add(
-      _ElementProperty(name, element),
-    );
-  }
-
-  void addGenericFunctionTypeElement(
-    String name,
-    GenericFunctionTypeElement? element,
-  ) {
-    properties.add(
-      _GenericFunctionTypeElementProperty(name, element),
-    );
-  }
-
-  void addNode(String name, AstNode? node) {
-    properties.add(
-      _NodeProperty(name, node),
-    );
-  }
-
-  void addNodeList(String name, NodeList nodeList) {
-    properties.add(
-      _NodeListProperty(name, nodeList),
-    );
-  }
-
-  void addRaw(String name, Object? value) {
-    properties.add(
-      _RawProperty(name, value),
-    );
-  }
-
-  void addSource(String name, Source? source) {
-    properties.add(
-      _SourceProperty(name, source),
-    );
-  }
-
-  void addToken(String name, Token? token) {
-    properties.add(
-      _TokenProperty(name, token),
-    );
-  }
-
-  void addTokenList(String name, List<Token> tokens) {
-    properties.add(
-      _TokenListProperty(name, tokens),
-    );
-  }
-
-  void addType(String name, DartType? type) {
-    properties.add(
-      _TypeProperty(name, type),
-    );
-  }
-
-  void addTypeList(String name, List<DartType>? types) {
-    properties.add(
-      _TypeListProperty(name, types),
-    );
-  }
-}
-
-abstract class _Property {
-  final String name;
-
-  _Property(this.name);
-
-  void write(ResolvedAstPrinter printer);
-}
-
-class _RawProperty extends _Property {
-  final Object? value;
-
-  _RawProperty(String name, this.value) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writelnWithIndent('$name: $value');
-  }
-}
-
-class _SourceProperty extends _Property {
-  final Source? source;
-
-  _SourceProperty(String name, this.source) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeSource(name, source);
-  }
-}
-
-class _TokenListProperty extends _Property {
-  final List<Token> tokens;
-
-  _TokenListProperty(String name, this.tokens) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeTokenList(name, tokens);
-  }
-}
-
-class _TokenProperty extends _Property {
-  final Token? token;
-
-  _TokenProperty(String name, this.token) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeToken(name, token);
-  }
-}
-
-class _TypeListProperty extends _Property {
-  final List<DartType>? types;
-
-  _TypeListProperty(String name, this.types) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeTypeList(name, types);
-  }
-}
-
-class _TypeProperty extends _Property {
-  final DartType? type;
-
-  _TypeProperty(String name, this.type) : super(name);
-
-  @override
-  void write(ResolvedAstPrinter printer) {
-    printer._writeType(name, type);
-  }
-}
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index 111f776..a924e56 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -792,11 +792,12 @@
             constantInitializers
               AssertInitializer
                 assertKeyword: assert @29
+                leftParenthesis: ( @35
                 condition: BinaryExpression
                   leftOperand: SimpleIdentifier
+                    token: x @36
                     staticElement: x@24
                     staticType: int
-                    token: x @36
                   operator: >= @38
                   rightOperand: IntegerLiteral
                     literal: 42 @41
@@ -804,7 +805,6 @@
                   staticElement: dart:core::@class::num::@method::>=
                   staticInvokeType: bool Function(num)
                   staticType: bool
-                leftParenthesis: ( @35
                 rightParenthesis: ) @43
 ''');
   }
@@ -828,11 +828,12 @@
             constantInitializers
               AssertInitializer
                 assertKeyword: assert @29
+                leftParenthesis: ( @35
                 condition: BinaryExpression
                   leftOperand: SimpleIdentifier
+                    token: x @36
                     staticElement: x@24
                     staticType: int
-                    token: x @36
                   operator: >= @38
                   rightOperand: IntegerLiteral
                     literal: 42 @41
@@ -840,7 +841,7 @@
                   staticElement: dart:core::@class::num::@method::>=
                   staticInvokeType: bool Function(num)
                   staticType: bool
-                leftParenthesis: ( @35
+                comma: , @43
                 message: SimpleStringLiteral
                   literal: 'foo' @45
                 rightParenthesis: ) @50
@@ -866,14 +867,14 @@
           const @29
             constantInitializers
               ConstructorFieldInitializer
+                fieldName: SimpleIdentifier
+                  token: x @35
+                  staticElement: self::@class::C::@field::x
+                  staticType: null
                 equals: = @37
                 expression: IntegerLiteral
                   literal: 42 @39
                   staticType: int
-                fieldName: SimpleIdentifier
-                  staticElement: self::@class::C::@field::x
-                  staticType: null
-                  token: x @35
         accessors
           synthetic get x @-1
             returnType: dynamic
@@ -901,21 +902,21 @@
           const @29
             constantInitializers
               ConstructorFieldInitializer
+                fieldName: SimpleIdentifier
+                  token: x @35
+                  staticElement: self::@class::C::@field::x
+                  staticType: null
                 equals: = @37
                 expression: MethodInvocation
+                  methodName: SimpleIdentifier
+                    token: foo @39
+                    staticElement: self::@function::foo
+                    staticType: int Function()
                   argumentList: ArgumentList
                     leftParenthesis: ( @42
                     rightParenthesis: ) @43
-                  methodName: SimpleIdentifier
-                    staticElement: self::@function::foo
-                    staticType: int Function()
-                    token: foo @39
                   staticInvokeType: int Function()
                   staticType: int
-                fieldName: SimpleIdentifier
-                  staticElement: self::@class::C::@field::x
-                  staticType: null
-                  token: x @35
         accessors
           synthetic get x @-1
             returnType: dynamic
@@ -951,15 +952,15 @@
                     staticType: int
             constantInitializers
               ConstructorFieldInitializer
-                equals: = @54
-                expression: SimpleIdentifier
-                  staticElement: self::@class::A::@constructor::•::@parameter::f
-                  staticType: int
-                  token: f @56
                 fieldName: SimpleIdentifier
+                  token: _f @51
                   staticElement: self::@class::A::@field::_f
                   staticType: null
-                  token: _f @51
+                equals: = @54
+                expression: SimpleIdentifier
+                  token: f @56
+                  staticElement: self::@class::A::@constructor::•::@parameter::f
+                  staticType: int
         accessors
           synthetic get _f @-1
             returnType: int
@@ -988,6 +989,10 @@
                 type: int
             constantInitializers
               ConstructorFieldInitializer
+                fieldName: SimpleIdentifier
+                  token: x @40
+                  staticElement: self::@class::C::@field::x
+                  staticType: null
                 equals: = @42
                 expression: BinaryExpression
                   leftOperand: IntegerLiteral
@@ -995,16 +1000,12 @@
                     staticType: int
                   operator: + @46
                   rightOperand: SimpleIdentifier
+                    token: p @48
                     staticElement: p@35
                     staticType: int
-                    token: p @48
                   staticElement: dart:core::@class::num::@method::+
                   staticInvokeType: num Function(num)
                   staticType: int
-                fieldName: SimpleIdentifier
-                  staticElement: self::@class::C::@field::x
-                  staticType: null
-                  token: x @40
         accessors
           synthetic get x @-1
             returnType: dynamic
@@ -1043,41 +1044,41 @@
             nameEnd: 71
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @79
                 argumentList: ArgumentList
+                  leftParenthesis: ( @83
                   arguments
                     InstanceCreationExpression
-                      argumentList: ArgumentList
-                        leftParenthesis: ( @97
-                        rightParenthesis: ) @98
                       constructorName: ConstructorName
-                        staticElement: ConstructorMember
-                          base: self::@class::A::@constructor::•
-                          substitution: {T: dynamic Function()}
                         type: NamedType
                           name: SimpleIdentifier
+                            token: A @84
                             staticElement: self::@class::A
                             staticType: null
-                            token: A @84
-                          type: A<dynamic Function()>
                           typeArguments: TypeArgumentList
+                            leftBracket: < @85
                             arguments
                               GenericFunctionType
-                                declaredElement: GenericFunctionTypeElement
-                                  parameters
-                                  returnType: dynamic
-                                  type: dynamic Function()
                                 functionKeyword: Function @86
                                 parameters: FormalParameterList
                                   leftParenthesis: ( @94
                                   rightParenthesis: ) @95
+                                declaredElement: GenericFunctionTypeElement
+                                  parameters
+                                  returnType: dynamic
+                                  type: dynamic Function()
                                 type: dynamic Function()
-                            leftBracket: < @85
                             rightBracket: > @96
+                          type: A<dynamic Function()>
+                        staticElement: ConstructorMember
+                          base: self::@class::A::@constructor::•
+                          substitution: {T: dynamic Function()}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @97
+                        rightParenthesis: ) @98
                       staticType: A<dynamic Function()>
-                  leftParenthesis: ( @83
                   rightParenthesis: ) @99
                 staticElement: self::@class::B::@constructor::•
-                thisKeyword: this @79
             redirectedConstructor: self::@class::B::@constructor::•
 ''');
   }
@@ -1107,17 +1108,17 @@
           const @72
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @78
                 argumentList: ArgumentList
+                  leftParenthesis: ( @83
                   arguments
                     ListLiteral
                       constKeyword: const @84
                       leftBracket: [ @90
                       rightBracket: ] @91
                       staticType: List<String>
-                  leftParenthesis: ( @83
                   rightParenthesis: ) @92
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @78
             superConstructor: self::@class::A::@constructor::•
 ''');
   }
@@ -1149,20 +1150,20 @@
           const @62
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @68
+                period: . @73
+                constructorName: SimpleIdentifier
+                  token: aaa @74
+                  staticElement: self::@class::A::@constructor::aaa
+                  staticType: null
                 argumentList: ArgumentList
+                  leftParenthesis: ( @77
                   arguments
                     IntegerLiteral
                       literal: 42 @78
                       staticType: int
-                  leftParenthesis: ( @77
                   rightParenthesis: ) @80
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::A::@constructor::aaa
-                  staticType: null
-                  token: aaa @74
-                period: . @73
                 staticElement: self::@class::A::@constructor::aaa
-                superKeyword: super @68
             superConstructor: self::@class::A::@constructor::aaa
 ''');
   }
@@ -1191,16 +1192,16 @@
           const @55
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @61
+                period: . @66
+                constructorName: SimpleIdentifier
+                  token: _ @67
+                  staticElement: self::@class::A::@constructor::_
+                  staticType: null
                 argumentList: ArgumentList
                   leftParenthesis: ( @68
                   rightParenthesis: ) @69
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::A::@constructor::_
-                  staticType: null
-                  token: _ @67
-                period: . @66
                 staticElement: self::@class::A::@constructor::_
-                superKeyword: super @61
             superConstructor: self::@class::A::@constructor::_
 ''');
   }
@@ -1234,7 +1235,14 @@
           const @67
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @73
+                period: . @78
+                constructorName: SimpleIdentifier
+                  token: aaa @79
+                  staticElement: self::@class::A::@constructor::aaa
+                  staticType: null
                 argumentList: ArgumentList
+                  leftParenthesis: ( @82
                   arguments
                     IntegerLiteral
                       literal: 1 @83
@@ -1242,21 +1250,15 @@
                     NamedExpression
                       name: Label
                         label: SimpleIdentifier
+                          token: b @86
                           staticElement: self::@class::A::@constructor::aaa::@parameter::b
                           staticType: null
-                          token: b @86
+                        colon: : @87
                       expression: IntegerLiteral
                         literal: 2 @89
                         staticType: int
-                  leftParenthesis: ( @82
                   rightParenthesis: ) @90
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::A::@constructor::aaa
-                  staticType: null
-                  token: aaa @79
-                period: . @78
                 staticElement: self::@class::A::@constructor::aaa
-                superKeyword: super @73
             superConstructor: self::@class::A::@constructor::aaa
 ''');
   }
@@ -1288,15 +1290,15 @@
             nameEnd: 63
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @68
                 argumentList: ArgumentList
+                  leftParenthesis: ( @73
                   arguments
                     IntegerLiteral
                       literal: 42 @74
                       staticType: int
-                  leftParenthesis: ( @73
                   rightParenthesis: ) @76
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @68
             superConstructor: self::@class::A::@constructor::•
 ''');
   }
@@ -1323,17 +1325,17 @@
             nameEnd: 57
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @62
                 argumentList: ArgumentList
+                  leftParenthesis: ( @66
                   arguments
                     ListLiteral
                       constKeyword: const @67
                       leftBracket: [ @73
                       rightBracket: ] @74
                       staticType: List<String>
-                  leftParenthesis: ( @66
                   rightParenthesis: ) @75
                 staticElement: self::@class::A::@constructor::•
-                thisKeyword: this @62
             redirectedConstructor: self::@class::A::@constructor::•
 ''');
   }
@@ -1354,22 +1356,22 @@
           const @18
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @24
+                period: . @28
+                constructorName: SimpleIdentifier
+                  token: named @29
+                  staticElement: self::@class::C::@constructor::named
+                  staticType: null
                 argumentList: ArgumentList
+                  leftParenthesis: ( @34
                   arguments
                     IntegerLiteral
                       literal: 1 @35
                       staticType: int
                     SimpleStringLiteral
                       literal: 'bbb' @38
-                  leftParenthesis: ( @34
                   rightParenthesis: ) @43
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::C::@constructor::named
-                  staticType: null
-                  token: named @29
-                period: . @28
                 staticElement: self::@class::C::@constructor::named
-                thisKeyword: this @24
             redirectedConstructor: self::@class::C::@constructor::named
           const named @56
             periodOffset: 55
@@ -1398,7 +1400,14 @@
           const @18
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @24
+                period: . @28
+                constructorName: SimpleIdentifier
+                  token: named @29
+                  staticElement: self::@class::C::@constructor::named
+                  staticType: null
                 argumentList: ArgumentList
+                  leftParenthesis: ( @34
                   arguments
                     IntegerLiteral
                       literal: 1 @35
@@ -1406,21 +1415,15 @@
                     NamedExpression
                       name: Label
                         label: SimpleIdentifier
+                          token: b @38
                           staticElement: self::@class::C::@constructor::named::@parameter::b
                           staticType: null
-                          token: b @38
+                        colon: : @39
                       expression: IntegerLiteral
                         literal: 2 @41
                         staticType: int
-                  leftParenthesis: ( @34
                   rightParenthesis: ) @42
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::C::@constructor::named
-                  staticType: null
-                  token: named @29
-                period: . @28
                 staticElement: self::@class::C::@constructor::named
-                thisKeyword: this @24
             redirectedConstructor: self::@class::C::@constructor::named
           const named @55
             periodOffset: 54
@@ -1451,17 +1454,17 @@
             nameEnd: 25
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @30
                 argumentList: ArgumentList
+                  leftParenthesis: ( @34
                   arguments
                     IntegerLiteral
                       literal: 1 @35
                       staticType: int
                     SimpleStringLiteral
                       literal: 'bbb' @38
-                  leftParenthesis: ( @34
                   rightParenthesis: ) @43
                 staticElement: self::@class::C::@constructor::•
-                thisKeyword: this @30
             redirectedConstructor: self::@class::C::@constructor::•
           const @54
             parameters
@@ -2595,16 +2598,16 @@
           const @37
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @43
+                period: . @47
+                constructorName: SimpleIdentifier
+                  token: named @48
+                  staticElement: self::@class::C::@constructor::named
+                  staticType: null
                 argumentList: ArgumentList
                   leftParenthesis: ( @53
                   rightParenthesis: ) @54
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::C::@constructor::named
-                  staticType: null
-                  token: named @48
-                period: . @47
                 staticElement: self::@class::C::@constructor::named
-                thisKeyword: this @43
             redirectedConstructor: self::@class::C::@constructor::named
 ''');
   }
@@ -2631,16 +2634,16 @@
           const @40
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @46
+                period: . @50
+                constructorName: SimpleIdentifier
+                  token: named @51
+                  staticElement: self::@class::C::@constructor::named
+                  staticType: null
                 argumentList: ArgumentList
                   leftParenthesis: ( @56
                   rightParenthesis: ) @57
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::C::@constructor::named
-                  staticType: null
-                  token: named @51
-                period: . @50
                 staticElement: self::@class::C::@constructor::named
-                thisKeyword: this @46
             redirectedConstructor: self::@class::C::@constructor::named
 ''');
   }
@@ -2685,11 +2688,11 @@
             nameEnd: 38
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @43
                 argumentList: ArgumentList
                   leftParenthesis: ( @47
                   rightParenthesis: ) @48
                 staticElement: self::@class::C::@constructor::•
-                thisKeyword: this @43
             redirectedConstructor: self::@class::C::@constructor::•
 ''');
   }
@@ -2716,11 +2719,11 @@
             nameEnd: 41
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @46
                 argumentList: ArgumentList
                   leftParenthesis: ( @50
                   rightParenthesis: ) @51
                 staticElement: self::@class::C::@constructor::•
-                thisKeyword: this @46
             redirectedConstructor: self::@class::C::@constructor::•
 ''');
   }
@@ -2909,25 +2912,25 @@
           const @29
             constantInitializers
               ConstructorFieldInitializer
+                fieldName: SimpleIdentifier
+                  token: x @35
+                  staticElement: self::@class::C::@field::x
+                  staticType: null
                 equals: = @37
                 expression: InstanceCreationExpression
+                  keyword: const @39
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: SimpleIdentifier
+                        token: D @45
+                        staticElement: self::@class::D
+                        staticType: null
+                      type: D
+                    staticElement: self::@class::D::@constructor::•
                   argumentList: ArgumentList
                     leftParenthesis: ( @46
                     rightParenthesis: ) @47
-                  constructorName: ConstructorName
-                    staticElement: self::@class::D::@constructor::•
-                    type: NamedType
-                      name: SimpleIdentifier
-                        staticElement: self::@class::D
-                        staticType: null
-                        token: D @45
-                      type: D
-                  keyword: const @39
                   staticType: D
-                fieldName: SimpleIdentifier
-                  staticElement: self::@class::C::@field::x
-                  staticType: null
-                  token: x @35
         accessors
           synthetic get x @-1
             returnType: dynamic
@@ -2939,25 +2942,25 @@
           const @81
             constantInitializers
               ConstructorFieldInitializer
+                fieldName: SimpleIdentifier
+                  token: x @87
+                  staticElement: self::@class::D::@field::x
+                  staticType: null
                 equals: = @89
                 expression: InstanceCreationExpression
+                  keyword: const @91
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: SimpleIdentifier
+                        token: C @97
+                        staticElement: self::@class::C
+                        staticType: null
+                      type: C
+                    staticElement: self::@class::C::@constructor::•
                   argumentList: ArgumentList
                     leftParenthesis: ( @98
                     rightParenthesis: ) @99
-                  constructorName: ConstructorName
-                    staticElement: self::@class::C::@constructor::•
-                    type: NamedType
-                      name: SimpleIdentifier
-                        staticElement: self::@class::C
-                        staticType: null
-                        token: C @97
-                      type: C
-                  keyword: const @91
                   staticType: C
-                fieldName: SimpleIdentifier
-                  staticElement: self::@class::D::@field::x
-                  staticType: null
-                  token: x @87
         accessors
           synthetic get x @-1
             returnType: dynamic
@@ -3260,83 +3263,83 @@
         documentationComment: /// Comment 1\n/// Comment 2
         metadata
           Annotation
+            atSign: @ @28
+            name: SimpleIdentifier
+              token: Annotation @29
+              staticElement: self::@class::Annotation
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @39
               rightParenthesis: ) @40
-            atSign: @ @28
             element: self::@class::Annotation::@constructor::•
-            name: SimpleIdentifier
-              staticElement: self::@class::Annotation
-              staticType: null
-              token: Annotation @29
         constructors
           synthetic @-1
       class BeforeMetaNamed @117
         documentationComment: /// Comment 1\n/// Comment 2
         metadata
           Annotation
+            atSign: @ @91
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: Annotation @92
+                staticElement: self::@class::Annotation
+                staticType: null
+              period: . @102
+              identifier: SimpleIdentifier
+                token: named @103
+                staticElement: self::@class::Annotation::@constructor::named
+                staticType: null
+              staticElement: self::@class::Annotation::@constructor::named
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @108
               rightParenthesis: ) @109
-            atSign: @ @91
             element: self::@class::Annotation::@constructor::named
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: self::@class::Annotation::@constructor::named
-                staticType: null
-                token: named @103
-              period: . @102
-              prefix: SimpleIdentifier
-                staticElement: self::@class::Annotation
-                staticType: null
-                token: Annotation @92
-              staticElement: self::@class::Annotation::@constructor::named
-              staticType: null
         constructors
           synthetic @-1
       class AfterMeta @185
         documentationComment: /// Comment 1\n/// Comment 2
         metadata
           Annotation
+            atSign: @ @137
+            name: SimpleIdentifier
+              token: Annotation @138
+              staticElement: self::@class::Annotation
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @148
               rightParenthesis: ) @149
-            atSign: @ @137
             element: self::@class::Annotation::@constructor::•
-            name: SimpleIdentifier
-              staticElement: self::@class::Annotation
-              staticType: null
-              token: Annotation @138
         constructors
           synthetic @-1
       class AroundMeta @247
         documentationComment: /// Comment 2
         metadata
           Annotation
+            atSign: @ @213
+            name: SimpleIdentifier
+              token: Annotation @214
+              staticElement: self::@class::Annotation
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @224
               rightParenthesis: ) @225
-            atSign: @ @213
             element: self::@class::Annotation::@constructor::•
-            name: SimpleIdentifier
-              staticElement: self::@class::Annotation
-              staticType: null
-              token: Annotation @214
         constructors
           synthetic @-1
       class DocBeforeMetaNotDocAfter @319
         documentationComment: /// Doc comment.
         metadata
           Annotation
+            atSign: @ @279
+            name: SimpleIdentifier
+              token: Annotation @280
+              staticElement: self::@class::Annotation
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @290
               rightParenthesis: ) @291
-            atSign: @ @279
             element: self::@class::Annotation::@constructor::•
-            name: SimpleIdentifier
-              staticElement: self::@class::Annotation
-              staticType: null
-              token: Annotation @280
         constructors
           synthetic @-1
       class Annotation @354
@@ -3556,22 +3559,40 @@
             type: A<int Function(double)>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @81
-                  rightParenthesis: ) @82
+                keyword: const @50
                 constructorName: ConstructorName
-                  staticElement: ConstructorMember
-                    base: self::@class::A::@constructor::•
-                    substitution: {T: int Function(double)}
                   type: NamedType
                     name: SimpleIdentifier
+                      token: A @56
                       staticElement: self::@class::A
                       staticType: null
-                      token: A @56
-                    type: A<int Function(double)>
                     typeArguments: TypeArgumentList
+                      leftBracket: < @57
                       arguments
                         GenericFunctionType
+                          returnType: NamedType
+                            name: SimpleIdentifier
+                              token: int @58
+                              staticElement: dart:core::@class::int
+                              staticType: null
+                            type: int
+                          functionKeyword: Function @62
+                          parameters: FormalParameterList
+                            leftParenthesis: ( @70
+                            parameter: SimpleFormalParameter
+                              type: NamedType
+                                name: SimpleIdentifier
+                                  token: double @71
+                                  staticElement: dart:core::@class::double
+                                  staticType: null
+                                type: double
+                              identifier: SimpleIdentifier
+                                token: a @78
+                                staticElement: a@78
+                                staticType: null
+                              declaredElement: a@78
+                              declaredElementType: double
+                            rightParenthesis: ) @79
                           declaredElement: GenericFunctionTypeElement
                             parameters
                               a
@@ -3579,34 +3600,15 @@
                                 type: double
                             returnType: int
                             type: int Function(double)
-                          functionKeyword: Function @62
-                          parameters: FormalParameterList
-                            leftParenthesis: ( @70
-                            parameters
-                              SimpleFormalParameter
-                                declaredElement: a@78
-                                declaredElementType: double
-                                identifier: SimpleIdentifier
-                                  staticElement: a@78
-                                  staticType: null
-                                  token: a @78
-                                type: NamedType
-                                  name: SimpleIdentifier
-                                    staticElement: dart:core::@class::double
-                                    staticType: null
-                                    token: double @71
-                                  type: double
-                            rightParenthesis: ) @79
-                          returnType: NamedType
-                            name: SimpleIdentifier
-                              staticElement: dart:core::@class::int
-                              staticType: null
-                              token: int @58
-                            type: int
                           type: int Function(double)
-                      leftBracket: < @57
                       rightBracket: > @80
-                keyword: const @50
+                    type: A<int Function(double)>
+                  staticElement: ConstructorMember
+                    base: self::@class::A::@constructor::•
+                    substitution: {T: int Function(double)}
+                argumentList: ArgumentList
+                  leftParenthesis: ( @81
+                  rightParenthesis: ) @82
                 staticType: A<int Function(double)>
         constructors
           const @93
@@ -3869,12 +3871,12 @@
             type: List<int>
             constantInitializer
               ListLiteral
+                leftBracket: [ @111
                 elements
                   SimpleIdentifier
+                    token: a @112
                     staticElement: self::@getter::a
                     staticType: int
-                    token: a @112
-                leftBracket: [ @111
                 rightBracket: ] @113
                 staticType: List<int>
         constructors
@@ -6896,11 +6898,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @32
         constructors
@@ -6935,11 +6937,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @35
         constructors
@@ -6973,11 +6975,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @43
         constructors
@@ -7011,11 +7013,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @48
         constructors
@@ -7049,11 +7051,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @87
         constructors
@@ -7084,11 +7086,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::A::@constructor::•
       class A @42
         constructors
@@ -7130,11 +7132,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @39
         constructors
@@ -7168,11 +7170,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @29
         constructors
@@ -7203,11 +7205,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @26
         constructors
@@ -7249,25 +7251,25 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::•
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::•
           synthetic const named @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
+                period: . @0
+                constructorName: SimpleIdentifier
+                  token: named @-1
+                  staticElement: package:test/a.dart::@class::Base::@constructor::named
+                  staticType: null
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: SimpleIdentifier
-                  staticElement: package:test/a.dart::@class::Base::@constructor::named
-                  staticType: null
-                  token: named @-1
-                period: . @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::named
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::named
 ''');
   }
@@ -7311,25 +7313,25 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::•
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::•
           synthetic noArgs @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
+                period: . @0
+                constructorName: SimpleIdentifier
+                  token: noArgs @-1
+                  staticElement: package:test/a.dart::@class::Base::@constructor::noArgs
+                  staticType: null
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: SimpleIdentifier
-                  staticElement: package:test/a.dart::@class::Base::@constructor::noArgs
-                  staticType: null
-                  token: noArgs @-1
-                period: . @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::noArgs
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::noArgs
           synthetic requiredArg @-1
             parameters
@@ -7337,21 +7339,21 @@
                 type: dynamic
             constantInitializers
               SuperConstructorInvocation
-                argumentList: ArgumentList
-                  arguments
-                    SimpleIdentifier
-                      staticElement: x@-1
-                      staticType: dynamic
-                      token: x @-1
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
+                superKeyword: super @0
+                period: . @0
                 constructorName: SimpleIdentifier
+                  token: requiredArg @-1
                   staticElement: package:test/a.dart::@class::Base::@constructor::requiredArg
                   staticType: null
-                  token: requiredArg @-1
-                period: . @0
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleIdentifier
+                      token: x @-1
+                      staticElement: x@-1
+                      staticType: dynamic
+                  rightParenthesis: ) @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::requiredArg
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::requiredArg
           synthetic positionalArg @-1
             parameters
@@ -7363,21 +7365,21 @@
                     staticType: bool
             constantInitializers
               SuperConstructorInvocation
-                argumentList: ArgumentList
-                  arguments
-                    SimpleIdentifier
-                      staticElement: x@-1
-                      staticType: bool
-                      token: x @-1
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
+                superKeyword: super @0
+                period: . @0
                 constructorName: SimpleIdentifier
+                  token: positionalArg @-1
                   staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg
                   staticType: null
-                  token: positionalArg @-1
-                period: . @0
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleIdentifier
+                      token: x @-1
+                      staticElement: x@-1
+                      staticType: bool
+                  rightParenthesis: ) @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::positionalArg
           synthetic positionalArg2 @-1
             parameters
@@ -7389,21 +7391,21 @@
                     staticType: bool
             constantInitializers
               SuperConstructorInvocation
-                argumentList: ArgumentList
-                  arguments
-                    SimpleIdentifier
-                      staticElement: x@-1
-                      staticType: bool
-                      token: x @-1
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
+                superKeyword: super @0
+                period: . @0
                 constructorName: SimpleIdentifier
+                  token: positionalArg2 @-1
                   staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg2
                   staticType: null
-                  token: positionalArg2 @-1
-                period: . @0
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleIdentifier
+                      token: x @-1
+                      staticElement: x@-1
+                      staticType: bool
+                  rightParenthesis: ) @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg2
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::positionalArg2
           synthetic namedArg @-1
             parameters
@@ -7415,21 +7417,21 @@
                     staticType: int
             constantInitializers
               SuperConstructorInvocation
-                argumentList: ArgumentList
-                  arguments
-                    SimpleIdentifier
-                      staticElement: x@-1
-                      staticType: int
-                      token: x @-1
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
+                superKeyword: super @0
+                period: . @0
                 constructorName: SimpleIdentifier
+                  token: namedArg @-1
                   staticElement: package:test/a.dart::@class::Base::@constructor::namedArg
                   staticType: null
-                  token: namedArg @-1
-                period: . @0
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleIdentifier
+                      token: x @-1
+                      staticElement: x@-1
+                      staticType: int
+                  rightParenthesis: ) @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::namedArg
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::namedArg
           synthetic namedArg2 @-1
             parameters
@@ -7441,21 +7443,21 @@
                     staticType: bool
             constantInitializers
               SuperConstructorInvocation
-                argumentList: ArgumentList
-                  arguments
-                    SimpleIdentifier
-                      staticElement: x@-1
-                      staticType: bool
-                      token: x @-1
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
+                superKeyword: super @0
+                period: . @0
                 constructorName: SimpleIdentifier
+                  token: namedArg2 @-1
                   staticElement: package:test/a.dart::@class::Base::@constructor::namedArg2
                   staticType: null
-                  token: namedArg2 @-1
-                period: . @0
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleIdentifier
+                      token: x @-1
+                      staticElement: x@-1
+                      staticType: bool
+                  rightParenthesis: ) @0
                 staticElement: package:test/a.dart::@class::Base::@constructor::namedArg2
-                superKeyword: super @0
             superConstructor: package:test/a.dart::@class::Base::@constructor::namedArg2
 ''');
   }
@@ -7501,25 +7503,25 @@
                 type: List<dynamic>
             constantInitializers
               SuperConstructorInvocation
-                argumentList: ArgumentList
-                  arguments
-                    SimpleIdentifier
-                      staticElement: t@-1
-                      staticType: dynamic
-                      token: t @-1
-                    SimpleIdentifier
-                      staticElement: l@-1
-                      staticType: List<dynamic>
-                      token: l @-1
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
+                superKeyword: super @0
+                period: . @0
                 constructorName: SimpleIdentifier
+                  token: ctor @-1
                   staticElement: self::@class::Base::@constructor::ctor
                   staticType: null
-                  token: ctor @-1
-                period: . @0
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleIdentifier
+                      token: t @-1
+                      staticElement: t@-1
+                      staticType: dynamic
+                    SimpleIdentifier
+                      token: l @-1
+                      staticElement: l@-1
+                      staticType: List<dynamic>
+                  rightParenthesis: ) @0
                 staticElement: self::@class::Base::@constructor::ctor
-                superKeyword: super @0
             superConstructor: ConstructorMember
               base: self::@class::Base::@constructor::ctor
               substitution: {T: dynamic}
@@ -7570,25 +7572,25 @@
                 type: List<List<U>>
             constantInitializers
               SuperConstructorInvocation
-                argumentList: ArgumentList
-                  arguments
-                    SimpleIdentifier
-                      staticElement: t@-1
-                      staticType: List<U>
-                      token: t @-1
-                    SimpleIdentifier
-                      staticElement: l@-1
-                      staticType: List<List<U>>
-                      token: l @-1
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
+                superKeyword: super @0
+                period: . @0
                 constructorName: SimpleIdentifier
+                  token: ctor @-1
                   staticElement: self::@class::Base::@constructor::ctor
                   staticType: null
-                  token: ctor @-1
-                period: . @0
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleIdentifier
+                      token: t @-1
+                      staticElement: t@-1
+                      staticType: List<U>
+                    SimpleIdentifier
+                      token: l @-1
+                      staticElement: l@-1
+                      staticType: List<List<U>>
+                  rightParenthesis: ) @0
                 staticElement: self::@class::Base::@constructor::ctor
-                superKeyword: super @0
             superConstructor: ConstructorMember
               base: self::@class::Base::@constructor::ctor
               substitution: {T: List<U>}
@@ -7617,11 +7619,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @26
         constructors
@@ -7772,15 +7774,15 @@
       class HasAnnotation @84
         metadata
           Annotation
+            atSign: @ @68
+            name: SimpleIdentifier
+              token: Object @69
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @75
               rightParenthesis: ) @76
-            atSign: @ @68
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @69
         codeOffset: 68
         codeLength: 32
         constructors
@@ -7789,15 +7791,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @102
+            name: SimpleIdentifier
+              token: Object @103
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @109
               rightParenthesis: ) @110
-            atSign: @ @102
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @103
         codeOffset: 102
         codeLength: 70
         constructors
@@ -7806,15 +7808,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @204
+            name: SimpleIdentifier
+              token: Object @205
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @211
               rightParenthesis: ) @212
-            atSign: @ @204
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @205
         codeOffset: 174
         codeLength: 70
         constructors
@@ -7823,15 +7825,15 @@
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @261
+            name: SimpleIdentifier
+              token: Object @262
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @268
               rightParenthesis: ) @269
-            atSign: @ @261
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @262
         codeOffset: 261
         codeLength: 57
         constructors
@@ -7897,11 +7899,11 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: dart:core::@class::Object::@constructor::•
-                superKeyword: super @0
       class alias HasDocComment @91
         documentationComment: /// Comment 1.\n/// Comment 2.
         codeOffset: 55
@@ -7914,23 +7916,23 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: dart:core::@class::Object::@constructor::•
-                superKeyword: super @0
       class alias HasAnnotation @142
         metadata
           Annotation
+            atSign: @ @126
+            name: SimpleIdentifier
+              token: Object @127
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @133
               rightParenthesis: ) @134
-            atSign: @ @126
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @127
         codeOffset: 126
         codeLength: 49
         supertype: Object
@@ -7941,24 +7943,24 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: dart:core::@class::Object::@constructor::•
-                superKeyword: super @0
       class alias AnnotationThenComment @223
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @177
+            name: SimpleIdentifier
+              token: Object @178
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @184
               rightParenthesis: ) @185
-            atSign: @ @177
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @178
         codeOffset: 177
         codeLength: 87
         supertype: Object
@@ -7969,24 +7971,24 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: dart:core::@class::Object::@constructor::•
-                superKeyword: super @0
       class alias CommentThenAnnotation @312
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @296
+            name: SimpleIdentifier
+              token: Object @297
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @303
               rightParenthesis: ) @304
-            atSign: @ @296
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @297
         codeOffset: 266
         codeLength: 87
         supertype: Object
@@ -7997,24 +7999,24 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: dart:core::@class::Object::@constructor::•
-                superKeyword: super @0
       class alias CommentAroundAnnotation @401
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @370
+            name: SimpleIdentifier
+              token: Object @371
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @377
               rightParenthesis: ) @378
-            atSign: @ @370
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @371
         codeOffset: 370
         codeLength: 74
         supertype: Object
@@ -8025,11 +8027,11 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: dart:core::@class::Object::@constructor::•
-                superKeyword: super @0
 ''',
         withCodeRanges: true);
   }
@@ -8091,15 +8093,15 @@
           hasAnnotation @106
             metadata
               Annotation
+                atSign: @ @92
+                name: SimpleIdentifier
+                  token: Object @93
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @99
                   rightParenthesis: ) @100
-                atSign: @ @92
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @93
             codeOffset: 92
             codeLength: 32
             periodOffset: 105
@@ -8108,15 +8110,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @128
+                name: SimpleIdentifier
+                  token: Object @129
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @135
                   rightParenthesis: ) @136
-                atSign: @ @128
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @129
             codeOffset: 128
             codeLength: 74
             periodOffset: 175
@@ -8125,15 +8127,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @240
+                name: SimpleIdentifier
+                  token: Object @241
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @247
                   rightParenthesis: ) @248
-                atSign: @ @240
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @241
             codeOffset: 206
             codeLength: 74
             periodOffset: 253
@@ -8142,15 +8144,15 @@
             documentationComment: /// Comment 2.
             metadata
               Annotation
+                atSign: @ @301
+                name: SimpleIdentifier
+                  token: Object @302
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @308
                   rightParenthesis: ) @309
-                atSign: @ @301
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @302
             codeOffset: 301
             codeLength: 59
             periodOffset: 331
@@ -8216,15 +8218,15 @@
           factory hasAnnotation @167
             metadata
               Annotation
+                atSign: @ @145
+                name: SimpleIdentifier
+                  token: Object @146
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @152
                   rightParenthesis: ) @153
-                atSign: @ @145
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @146
             codeOffset: 145
             codeLength: 49
             periodOffset: 166
@@ -8233,15 +8235,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @198
+                name: SimpleIdentifier
+                  token: Object @199
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @205
                   rightParenthesis: ) @206
-                atSign: @ @198
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @199
             codeOffset: 198
             codeLength: 91
             periodOffset: 253
@@ -8250,15 +8252,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @327
+                name: SimpleIdentifier
+                  token: Object @328
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @334
                   rightParenthesis: ) @335
-                atSign: @ @327
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @328
             codeOffset: 293
             codeLength: 91
             periodOffset: 348
@@ -8267,15 +8269,15 @@
             documentationComment: /// Comment 2.
             metadata
               Annotation
+                atSign: @ @405
+                name: SimpleIdentifier
+                  token: Object @406
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @412
                   rightParenthesis: ) @413
-                atSign: @ @405
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @406
             codeOffset: 405
             codeLength: 76
             periodOffset: 443
@@ -8307,22 +8309,22 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant bbb @16
             codeOffset: 16
@@ -8330,22 +8332,22 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant ccc @21
             codeOffset: 21
@@ -8353,41 +8355,41 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: aaa @-1
                     staticElement: self::@enum::E::@getter::aaa
                     staticType: E
-                    token: aaa @-1
                   SimpleIdentifier
+                    token: bbb @-1
                     staticElement: self::@enum::E::@getter::bbb
                     staticType: E
-                    token: bbb @-1
                   SimpleIdentifier
+                    token: ccc @-1
                     staticElement: self::@enum::E::@getter::ccc
                     staticType: E
-                    token: ccc @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -8457,15 +8459,15 @@
       HasAnnotation @118
         metadata
           Annotation
+            atSign: @ @98
+            name: SimpleIdentifier
+              token: Object @99
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @105
               rightParenthesis: ) @106
-            atSign: @ @98
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @99
         codeOffset: 98
         codeLength: 41
         extendedType: A
@@ -8473,15 +8475,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @141
+            name: SimpleIdentifier
+              token: Object @142
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @148
               rightParenthesis: ) @149
-            atSign: @ @141
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @142
         codeOffset: 141
         codeLength: 79
         extendedType: A
@@ -8489,15 +8491,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @252
+            name: SimpleIdentifier
+              token: Object @253
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @259
               rightParenthesis: ) @260
-            atSign: @ @252
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @253
         codeOffset: 222
         codeLength: 79
         extendedType: A
@@ -8505,15 +8507,15 @@
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @318
+            name: SimpleIdentifier
+              token: Object @319
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @325
               rightParenthesis: ) @326
-            atSign: @ @318
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @319
         codeOffset: 318
         codeLength: 66
         extendedType: A
@@ -8652,30 +8654,30 @@
           hasAnnotation @100
             metadata
               Annotation
+                atSign: @ @84
+                name: SimpleIdentifier
+                  token: Object @85
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @91
                   rightParenthesis: ) @92
-                atSign: @ @84
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @85
             codeOffset: 84
             codeLength: 29
             type: int
           hasAnnotation2 @115
             metadata
               Annotation
+                atSign: @ @84
+                name: SimpleIdentifier
+                  token: Object @85
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @91
                   rightParenthesis: ) @92
-                atSign: @ @84
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @85
             codeOffset: 115
             codeLength: 14
             type: int
@@ -8683,15 +8685,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @134
+                name: SimpleIdentifier
+                  token: Object @135
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @141
                   rightParenthesis: ) @142
-                atSign: @ @134
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @135
             codeOffset: 134
             codeLength: 71
             type: int
@@ -8699,15 +8701,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @134
+                name: SimpleIdentifier
+                  token: Object @135
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @141
                   rightParenthesis: ) @142
-                atSign: @ @134
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @135
             codeOffset: 207
             codeLength: 22
             type: int
@@ -8715,15 +8717,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @268
+                name: SimpleIdentifier
+                  token: Object @269
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @275
                   rightParenthesis: ) @276
-                atSign: @ @268
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @269
             codeOffset: 234
             codeLength: 71
             type: int
@@ -8731,15 +8733,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @268
+                name: SimpleIdentifier
+                  token: Object @269
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @275
                   rightParenthesis: ) @276
-                atSign: @ @268
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @269
             codeOffset: 307
             codeLength: 22
             type: int
@@ -8747,15 +8749,15 @@
             documentationComment: /// Comment 2.
             metadata
               Annotation
+                atSign: @ @351
+                name: SimpleIdentifier
+                  token: Object @352
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @358
                   rightParenthesis: ) @359
-                atSign: @ @351
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @352
             codeOffset: 351
             codeLength: 56
             type: int
@@ -8763,15 +8765,15 @@
             documentationComment: /// Comment 2.
             metadata
               Annotation
+                atSign: @ @351
+                name: SimpleIdentifier
+                  token: Object @352
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @358
                   rightParenthesis: ) @359
-                atSign: @ @351
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @352
             codeOffset: 409
             codeLength: 24
             type: int
@@ -8896,15 +8898,15 @@
       hasAnnotation @85
         metadata
           Annotation
+            atSign: @ @70
+            name: SimpleIdentifier
+              token: Object @71
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @77
               rightParenthesis: ) @78
-            atSign: @ @70
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @71
         codeOffset: 70
         codeLength: 33
         returnType: void
@@ -8912,15 +8914,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @105
+            name: SimpleIdentifier
+              token: Object @106
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @112
               rightParenthesis: ) @113
-            atSign: @ @105
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @106
         codeOffset: 105
         codeLength: 71
         returnType: void
@@ -8928,15 +8930,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @208
+            name: SimpleIdentifier
+              token: Object @209
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @215
               rightParenthesis: ) @216
-            atSign: @ @208
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @209
         codeOffset: 178
         codeLength: 71
         returnType: void
@@ -8944,15 +8946,15 @@
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @266
+            name: SimpleIdentifier
+              token: Object @267
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @273
               rightParenthesis: ) @274
-            atSign: @ @266
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @267
         codeOffset: 266
         codeLength: 58
         returnType: void
@@ -9008,15 +9010,15 @@
       functionTypeAliasBased HasAnnotation @90
         metadata
           Annotation
+            atSign: @ @72
+            name: SimpleIdentifier
+              token: Object @73
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @79
               rightParenthesis: ) @80
-            atSign: @ @72
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @73
         codeOffset: 72
         codeLength: 34
         aliasedType: dynamic Function()
@@ -9026,15 +9028,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @108
+            name: SimpleIdentifier
+              token: Object @109
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @115
               rightParenthesis: ) @116
-            atSign: @ @108
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @109
         codeOffset: 108
         codeLength: 72
         aliasedType: dynamic Function()
@@ -9044,15 +9046,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @212
+            name: SimpleIdentifier
+              token: Object @213
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @219
               rightParenthesis: ) @220
-            atSign: @ @212
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @213
         codeOffset: 182
         codeLength: 72
         aliasedType: dynamic Function()
@@ -9062,15 +9064,15 @@
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @271
+            name: SimpleIdentifier
+              token: Object @272
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @278
               rightParenthesis: ) @279
-            atSign: @ @271
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @272
         codeOffset: 271
         codeLength: 59
         aliasedType: dynamic Function()
@@ -9128,15 +9130,15 @@
       HasAnnotation @112
         metadata
           Annotation
+            atSign: @ @94
+            name: SimpleIdentifier
+              token: Object @95
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @101
               rightParenthesis: ) @102
-            atSign: @ @94
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @95
         codeOffset: 94
         codeLength: 45
         aliasedType: dynamic Function()
@@ -9146,15 +9148,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @141
+            name: SimpleIdentifier
+              token: Object @142
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @148
               rightParenthesis: ) @149
-            atSign: @ @141
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @142
         codeOffset: 141
         codeLength: 83
         aliasedType: dynamic Function()
@@ -9164,15 +9166,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @256
+            name: SimpleIdentifier
+              token: Object @257
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @263
               rightParenthesis: ) @264
-            atSign: @ @256
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @257
         codeOffset: 226
         codeLength: 83
         aliasedType: dynamic Function()
@@ -9182,15 +9184,15 @@
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @326
+            name: SimpleIdentifier
+              token: Object @327
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @333
               rightParenthesis: ) @334
-            atSign: @ @326
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @327
         codeOffset: 326
         codeLength: 70
         aliasedType: dynamic Function()
@@ -9252,15 +9254,15 @@
           hasAnnotation @107
             metadata
               Annotation
+                atSign: @ @90
+                name: SimpleIdentifier
+                  token: Object @91
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @97
                   rightParenthesis: ) @98
-                atSign: @ @90
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @91
             codeOffset: 90
             codeLength: 35
             returnType: void
@@ -9268,15 +9270,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @129
+                name: SimpleIdentifier
+                  token: Object @130
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @136
                   rightParenthesis: ) @137
-                atSign: @ @129
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @130
             codeOffset: 129
             codeLength: 77
             returnType: void
@@ -9284,15 +9286,15 @@
             documentationComment: /// Comment 1.\n/// Comment 2.
             metadata
               Annotation
+                atSign: @ @244
+                name: SimpleIdentifier
+                  token: Object @245
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @251
                   rightParenthesis: ) @252
-                atSign: @ @244
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @245
             codeOffset: 210
             codeLength: 77
             returnType: void
@@ -9300,15 +9302,15 @@
             documentationComment: /// Comment 2.
             metadata
               Annotation
+                atSign: @ @308
+                name: SimpleIdentifier
+                  token: Object @309
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @315
                   rightParenthesis: ) @316
-                atSign: @ @308
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @309
             codeOffset: 308
             codeLength: 62
             returnType: void
@@ -9358,30 +9360,30 @@
             type: int
             metadata
               Annotation
+                atSign: @ @5
+                name: SimpleIdentifier
+                  token: Object @6
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @12
                   rightParenthesis: ) @13
-                atSign: @ @5
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @6
           requiredPositional b @26
             type: int
           requiredPositional c @43
             type: int
             metadata
               Annotation
+                atSign: @ @29
+                name: SimpleIdentifier
+                  token: Object @30
+                  staticElement: dart:core::@class::Object
+                  staticType: null
                 arguments: ArgumentList
                   leftParenthesis: ( @36
                   rightParenthesis: ) @37
-                atSign: @ @29
                 element: dart:core::@class::Object::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: dart:core::@class::Object
-                  staticType: null
-                  token: Object @30
         returnType: dynamic
 ''');
   }
@@ -9503,30 +9505,30 @@
       static hasAnnotation @80
         metadata
           Annotation
+            atSign: @ @66
+            name: SimpleIdentifier
+              token: Object @67
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @73
               rightParenthesis: ) @74
-            atSign: @ @66
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @67
         codeOffset: 66
         codeLength: 27
         type: int
       static hasAnnotation2 @95
         metadata
           Annotation
+            atSign: @ @66
+            name: SimpleIdentifier
+              token: Object @67
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @73
               rightParenthesis: ) @74
-            atSign: @ @66
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @67
         codeOffset: 95
         codeLength: 14
         type: int
@@ -9534,15 +9536,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @112
+            name: SimpleIdentifier
+              token: Object @113
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @119
               rightParenthesis: ) @120
-            atSign: @ @112
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @113
         codeOffset: 112
         codeLength: 65
         type: int
@@ -9550,15 +9552,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @112
+            name: SimpleIdentifier
+              token: Object @113
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @119
               rightParenthesis: ) @120
-            atSign: @ @112
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @113
         codeOffset: 179
         codeLength: 22
         type: int
@@ -9566,15 +9568,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @234
+            name: SimpleIdentifier
+              token: Object @235
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @241
               rightParenthesis: ) @242
-            atSign: @ @234
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @235
         codeOffset: 204
         codeLength: 65
         type: int
@@ -9582,15 +9584,15 @@
         documentationComment: /// Comment 1.\n/// Comment 2.
         metadata
           Annotation
+            atSign: @ @234
+            name: SimpleIdentifier
+              token: Object @235
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @241
               rightParenthesis: ) @242
-            atSign: @ @234
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @235
         codeOffset: 271
         codeLength: 22
         type: int
@@ -9598,15 +9600,15 @@
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @311
+            name: SimpleIdentifier
+              token: Object @312
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @318
               rightParenthesis: ) @319
-            atSign: @ @311
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @312
         codeOffset: 311
         codeLength: 52
         type: int
@@ -9614,15 +9616,15 @@
         documentationComment: /// Comment 2.
         metadata
           Annotation
+            atSign: @ @311
+            name: SimpleIdentifier
+              token: Object @312
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @318
               rightParenthesis: ) @319
-            atSign: @ @311
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @312
         codeOffset: 365
         codeLength: 24
         type: int
@@ -9773,18 +9775,18 @@
         type: int
         constantInitializer
           AsExpression
-            asOperator: as @29
             expression: SimpleIdentifier
+              token: a @27
               staticElement: self::@getter::a
               staticType: num
-              token: a @27
-            staticType: int
+            asOperator: as @29
             type: NamedType
               name: SimpleIdentifier
+                token: int @32
                 staticElement: dart:core::@class::int
                 staticType: null
-                token: int @32
               type: int
+            staticType: int
     accessors
       synthetic static get a @-1
         returnType: num
@@ -9812,22 +9814,22 @@
         type: int
         constantInitializer
           ParenthesizedExpression
+            leftParenthesis: ( @23
             expression: AssignmentExpression
               leftHandSide: SimpleIdentifier
+                token: a @24
                 staticElement: <null>
                 staticType: null
-                token: a @24
               operator: += @26
-              readElement: self::@getter::a
-              readType: int
               rightHandSide: IntegerLiteral
                 literal: 1 @29
                 staticType: int
-              staticElement: dart:core::@class::num::@method::+
-              staticType: int
+              readElement: self::@getter::a
+              readType: int
               writeElement: self::@getter::a
               writeType: dynamic
-            leftParenthesis: ( @23
+              staticElement: dart:core::@class::num::@method::+
+              staticType: int
             rightParenthesis: ) @30
             staticType: int
     accessors
@@ -9850,29 +9852,29 @@
         type: int
         constantInitializer
           CascadeExpression
+            target: IntegerLiteral
+              literal: 0 @10
+              staticType: int
             cascadeSections
               PropertyAccess
                 operator: .. @11
                 propertyName: SimpleIdentifier
+                  token: isEven @13
                   staticElement: dart:core::@class::int::@getter::isEven
                   staticType: bool
-                  token: isEven @13
                 staticType: bool
               MethodInvocation
+                operator: .. @19
+                methodName: SimpleIdentifier
+                  token: abs @21
+                  staticElement: dart:core::@class::int::@method::abs
+                  staticType: int Function()
                 argumentList: ArgumentList
                   leftParenthesis: ( @24
                   rightParenthesis: ) @25
-                methodName: SimpleIdentifier
-                  staticElement: dart:core::@class::int::@method::abs
-                  staticType: int Function()
-                  token: abs @21
-                operator: .. @19
                 staticInvokeType: int Function()
                 staticType: int
             staticType: int
-            target: IntegerLiteral
-              literal: 0 @10
-              staticType: int
     accessors
       synthetic static get a @-1
         returnType: int
@@ -9902,30 +9904,30 @@
             type: int
             constantInitializer
               PrefixedIdentifier
-                identifier: SimpleIdentifier
-                  staticElement: self::@class::C::@getter::f1
-                  staticType: int
-                  token: f1 @63
-                period: . @62
                 prefix: SimpleIdentifier
+                  token: C @61
                   staticElement: self::@class::C
                   staticType: null
-                  token: C @61
+                period: . @62
+                identifier: SimpleIdentifier
+                  token: f1 @63
+                  staticElement: self::@class::C::@getter::f1
+                  staticType: int
                 staticElement: self::@class::C::@getter::f1
                 staticType: int
           static const f3 @67
             type: int
             constantInitializer
               PrefixedIdentifier
-                identifier: SimpleIdentifier
-                  staticElement: self::@class::C::@getter::f2
-                  staticType: int
-                  token: f2 @74
-                period: . @73
                 prefix: SimpleIdentifier
+                  token: C @72
                   staticElement: self::@class::C
                   staticType: null
-                  token: C @72
+                period: . @73
+                identifier: SimpleIdentifier
+                  token: f2 @74
+                  staticElement: self::@class::C::@getter::f2
+                  staticType: int
                 staticElement: self::@class::C::@getter::f2
                 staticType: int
         constructors
@@ -9982,54 +9984,54 @@
         type: Object
         constantInitializer
           InstanceCreationExpression
+            keyword: const @89
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @95
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C<int>
+              staticElement: ConstructorMember
+                base: self::@class::C::@constructor::•
+                substitution: {T: int}
             argumentList: ArgumentList
+              leftParenthesis: ( @96
               arguments
                 IntegerLiteral
                   literal: 0 @97
                   staticType: int
-              leftParenthesis: ( @96
               rightParenthesis: ) @98
-            constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: self::@class::C::@constructor::•
-                substitution: {T: int}
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @95
-                type: C<int>
-            keyword: const @89
             staticType: C<int>
       static const y @114
         type: Object
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              arguments
-                IntegerLiteral
-                  literal: 0 @132
-                  staticType: int
-              leftParenthesis: ( @131
-              rightParenthesis: ) @133
+            keyword: const @118
             constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @124
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C<int>
+              period: . @125
               name: SimpleIdentifier
+                token: named @126
                 staticElement: ConstructorMember
                   base: self::@class::C::@constructor::named
                   substitution: {T: dynamic}
                 staticType: null
-                token: named @126
-              period: . @125
               staticElement: ConstructorMember
                 base: self::@class::C::@constructor::named
                 substitution: {T: int}
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @124
-                type: C<int>
-            keyword: const @118
+            argumentList: ArgumentList
+              leftParenthesis: ( @131
+              arguments
+                IntegerLiteral
+                  literal: 0 @132
+                  staticType: int
+              rightParenthesis: ) @133
             staticType: C<int>
     accessors
       synthetic static get x @-1
@@ -10074,18 +10076,18 @@
         constantInitializer
           ConstructorReference
             constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: self::@class::A::@constructor::named
-                staticType: null
-                token: named @37
-              period: . @36
-              staticElement: self::@class::A::@constructor::named
               type: NamedType
                 name: SimpleIdentifier
+                  token: A @35
                   staticElement: self::@class::A
                   staticType: null
-                  token: A @35
                 type: null
+              period: . @36
+              name: SimpleIdentifier
+                token: named @37
+                staticElement: self::@class::A::@constructor::named
+                staticType: null
+              staticElement: self::@class::A::@constructor::named
             staticType: A Function()
     accessors
       synthetic static get v @-1
@@ -10135,9 +10137,9 @@
         constantInitializer
           FunctionReference
             function: SimpleIdentifier
+              token: f @48
               staticElement: self::@function::f
               staticType: void Function<T>(T)
-              token: f @48
             staticType: void Function(int)
             typeArgumentTypes
               int
@@ -10169,22 +10171,22 @@
         constantInitializer
           FunctionReference
             function: SimpleIdentifier
+              token: f @28
               staticElement: self::@function::f
               staticType: void Function<T>(T)
-              token: f @28
-            staticType: void Function(int)
-            typeArgumentTypes
-              int
             typeArguments: TypeArgumentList
+              leftBracket: < @29
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @30
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @30
                   type: int
-              leftBracket: < @29
               rightBracket: > @33
+            staticType: void Function(int)
+            typeArgumentTypes
+              int
     accessors
       synthetic static get v @-1
         returnType: void Function(int)
@@ -10213,11 +10215,11 @@
         type: List<int>
         constantInitializer
           ListLiteral
+            leftBracket: [ @10
             elements
               IntegerLiteral
                 literal: 0 @11
                 staticType: int
-            leftBracket: [ @10
             rightBracket: ] @12
             staticType: List<int>
       static const b @21
@@ -10230,20 +10232,20 @@
         type: int
         constantInitializer
           IndexExpression
+            target: SimpleIdentifier
+              token: a @38
+              staticElement: self::@getter::a
+              staticType: List<int>
+            leftBracket: [ @39
             index: SimpleIdentifier
+              token: b @40
               staticElement: self::@getter::b
               staticType: int
-              token: b @40
-            leftBracket: [ @39
             rightBracket: ] @41
+            staticType: int
             staticElement: MethodMember
               base: dart:core::@class::List::@method::[]
               substitution: {E: int}
-            staticType: int
-            target: SimpleIdentifier
-              staticElement: self::@getter::a
-              staticType: List<int>
-              token: a @38
     accessors
       synthetic static get a @-1
         returnType: List<int>
@@ -10308,48 +10310,48 @@
         type: List<P<dynamic>>
         constantInitializer
           ListLiteral
+            leftBracket: [ @140
             elements
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @146
-                  rightParenthesis: ) @147
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: P1 @144
+                      staticElement: self::@class::P1
+                      staticType: null
+                    type: P1<dynamic>
                   staticElement: ConstructorMember
                     base: self::@class::P1::@constructor::•
                     substitution: {T: dynamic}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@class::P1
-                      staticType: null
-                      token: P1 @144
-                    type: P1<dynamic>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @146
+                  rightParenthesis: ) @147
                 staticType: P1<dynamic>
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @159
-                  rightParenthesis: ) @160
                 constructorName: ConstructorName
-                  staticElement: ConstructorMember
-                    base: self::@class::P2::@constructor::•
-                    substitution: {T: int}
                   type: NamedType
                     name: SimpleIdentifier
+                      token: P2 @152
                       staticElement: self::@class::P2
                       staticType: null
-                      token: P2 @152
-                    type: P2<int>
                     typeArguments: TypeArgumentList
+                      leftBracket: < @154
                       arguments
                         NamedType
                           name: SimpleIdentifier
+                            token: int @155
                             staticElement: dart:core::@class::int
                             staticType: null
-                            token: int @155
                           type: int
-                      leftBracket: < @154
                       rightBracket: > @158
+                    type: P2<int>
+                  staticElement: ConstructorMember
+                    base: self::@class::P2::@constructor::•
+                    substitution: {T: int}
+                argumentList: ArgumentList
+                  leftParenthesis: ( @159
+                  rightParenthesis: ) @160
                 staticType: P2<int>
-            leftBracket: [ @140
             rightBracket: ] @163
             staticType: List<P<dynamic>>
     accessors
@@ -10380,13 +10382,13 @@
                   staticType: int
                 operator: + @31
                 rightOperand: MethodInvocation
+                  methodName: SimpleIdentifier
+                    token: foo @33
+                    staticElement: self::@function::foo
+                    staticType: int Function()
                   argumentList: ArgumentList
                     leftParenthesis: ( @36
                     rightParenthesis: ) @37
-                  methodName: SimpleIdentifier
-                    staticElement: self::@function::foo
-                    staticType: int Function()
-                    token: foo @33
                   staticInvokeType: int Function()
                   staticType: int
                 staticElement: dart:core::@class::num::@method::+
@@ -10441,14 +10443,14 @@
         type: int Function()
         constantInitializer
           FunctionExpression
+            parameters: FormalParameterList
+              leftParenthesis: ( @10
+              rightParenthesis: ) @0
             body: BlockFunctionBody
               block: Block
                 leftBracket: { @0
                 rightBracket: } @25
             declaredElement: <null>
-            parameters: FormalParameterList
-              leftParenthesis: ( @10
-              rightParenthesis: ) @0
             staticType: null
     accessors
       synthetic static get v @-1
@@ -10469,14 +10471,14 @@
         constantInitializer
           BinaryExpression
             leftOperand: FunctionExpression
+              parameters: FormalParameterList
+                leftParenthesis: ( @10
+                rightParenthesis: ) @0
               body: BlockFunctionBody
                 block: Block
                   leftBracket: { @0
                   rightBracket: } @25
               declaredElement: <null>
-              parameters: FormalParameterList
-                leftParenthesis: ( @10
-                rightParenthesis: ) @0
               staticType: null
             operator: + @27
             rightOperand: IntegerLiteral
@@ -10519,13 +10521,13 @@
               staticType: int
             operator: + @12
             rightOperand: MethodInvocation
+              methodName: SimpleIdentifier
+                token: foo @14
+                staticElement: self::@function::foo
+                staticType: int Function()
               argumentList: ArgumentList
                 leftParenthesis: ( @17
                 rightParenthesis: ) @18
-              methodName: SimpleIdentifier
-                staticElement: self::@function::foo
-                staticType: int Function()
-                token: foo @14
               staticInvokeType: int Function()
               staticType: int
             staticElement: dart:core::@class::num::@method::+
@@ -10560,9 +10562,9 @@
         constantInitializer
           BinaryExpression
             leftOperand: SimpleIdentifier
+              token: a @32
               staticElement: self::@getter::a
               staticType: int
-              token: a @32
             operator: + @34
             rightOperand: IntegerLiteral
               literal: 5 @36
@@ -10609,49 +10611,49 @@
         type: C<int, String>
         constantInitializer
           InstanceCreationExpression
+            keyword: const @55
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @61
+                  staticElement: self::@class::C
+                  staticType: null
+                typeArguments: TypeArgumentList
+                  leftBracket: < @62
+                  arguments
+                    NamedType
+                      name: SimpleIdentifier
+                        token: int @63
+                        staticElement: dart:core::@class::int
+                        staticType: null
+                      type: int
+                    NamedType
+                      name: SimpleIdentifier
+                        token: String @68
+                        staticElement: dart:core::@class::String
+                        staticType: null
+                      type: String
+                  rightBracket: > @74
+                type: C<int, String>
+              period: . @75
+              name: SimpleIdentifier
+                token: named @76
+                staticElement: ConstructorMember
+                  base: self::@class::C::@constructor::named
+                  substitution: {K: int, V: String}
+                staticType: null
+              staticElement: ConstructorMember
+                base: self::@class::C::@constructor::named
+                substitution: {K: int, V: String}
             argumentList: ArgumentList
+              leftParenthesis: ( @81
               arguments
                 IntegerLiteral
                   literal: 1 @82
                   staticType: int
                 SimpleStringLiteral
                   literal: '222' @85
-              leftParenthesis: ( @81
               rightParenthesis: ) @90
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: ConstructorMember
-                  base: self::@class::C::@constructor::named
-                  substitution: {K: int, V: String}
-                staticType: null
-                token: named @76
-              period: . @75
-              staticElement: ConstructorMember
-                base: self::@class::C::@constructor::named
-                substitution: {K: int, V: String}
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @61
-                type: C<int, String>
-                typeArguments: TypeArgumentList
-                  arguments
-                    NamedType
-                      name: SimpleIdentifier
-                        staticElement: dart:core::@class::int
-                        staticType: null
-                        token: int @63
-                      type: int
-                    NamedType
-                      name: SimpleIdentifier
-                        staticElement: dart:core::@class::String
-                        staticType: null
-                        token: String @68
-                      type: String
-                  leftBracket: < @62
-                  rightBracket: > @74
-            keyword: const @55
             staticType: C<int, String>
     accessors
       synthetic static get V @-1
@@ -10679,49 +10681,49 @@
         type: C<int, String>
         constantInitializer
           InstanceCreationExpression
+            keyword: const @27
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @33
+                  staticElement: a.dart::@class::C
+                  staticType: null
+                typeArguments: TypeArgumentList
+                  leftBracket: < @34
+                  arguments
+                    NamedType
+                      name: SimpleIdentifier
+                        token: int @35
+                        staticElement: dart:core::@class::int
+                        staticType: null
+                      type: int
+                    NamedType
+                      name: SimpleIdentifier
+                        token: String @40
+                        staticElement: dart:core::@class::String
+                        staticType: null
+                      type: String
+                  rightBracket: > @46
+                type: C<int, String>
+              period: . @47
+              name: SimpleIdentifier
+                token: named @48
+                staticElement: ConstructorMember
+                  base: a.dart::@class::C::@constructor::named
+                  substitution: {K: int, V: String}
+                staticType: null
+              staticElement: ConstructorMember
+                base: a.dart::@class::C::@constructor::named
+                substitution: {K: int, V: String}
             argumentList: ArgumentList
+              leftParenthesis: ( @53
               arguments
                 IntegerLiteral
                   literal: 1 @54
                   staticType: int
                 SimpleStringLiteral
                   literal: '222' @57
-              leftParenthesis: ( @53
               rightParenthesis: ) @62
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: ConstructorMember
-                  base: a.dart::@class::C::@constructor::named
-                  substitution: {K: int, V: String}
-                staticType: null
-                token: named @48
-              period: . @47
-              staticElement: ConstructorMember
-                base: a.dart::@class::C::@constructor::named
-                substitution: {K: int, V: String}
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: a.dart::@class::C
-                  staticType: null
-                  token: C @33
-                type: C<int, String>
-                typeArguments: TypeArgumentList
-                  arguments
-                    NamedType
-                      name: SimpleIdentifier
-                        staticElement: dart:core::@class::int
-                        staticType: null
-                        token: int @35
-                      type: int
-                    NamedType
-                      name: SimpleIdentifier
-                        staticElement: dart:core::@class::String
-                        staticType: null
-                        token: String @40
-                      type: String
-                  leftBracket: < @34
-                  rightBracket: > @46
-            keyword: const @27
             staticType: C<int, String>
     accessors
       synthetic static get V @-1
@@ -10749,57 +10751,57 @@
         type: C<int, String>
         constantInitializer
           InstanceCreationExpression
+            keyword: const @32
+            constructorName: ConstructorName
+              type: NamedType
+                name: PrefixedIdentifier
+                  prefix: SimpleIdentifier
+                    token: p @38
+                    staticElement: self::@prefix::p
+                    staticType: null
+                  period: . @39
+                  identifier: SimpleIdentifier
+                    token: C @40
+                    staticElement: a.dart::@class::C
+                    staticType: null
+                  staticElement: a.dart::@class::C
+                  staticType: null
+                typeArguments: TypeArgumentList
+                  leftBracket: < @41
+                  arguments
+                    NamedType
+                      name: SimpleIdentifier
+                        token: int @42
+                        staticElement: dart:core::@class::int
+                        staticType: null
+                      type: int
+                    NamedType
+                      name: SimpleIdentifier
+                        token: String @47
+                        staticElement: dart:core::@class::String
+                        staticType: null
+                      type: String
+                  rightBracket: > @53
+                type: C<int, String>
+              period: . @54
+              name: SimpleIdentifier
+                token: named @55
+                staticElement: ConstructorMember
+                  base: a.dart::@class::C::@constructor::named
+                  substitution: {K: int, V: String}
+                staticType: null
+              staticElement: ConstructorMember
+                base: a.dart::@class::C::@constructor::named
+                substitution: {K: int, V: String}
             argumentList: ArgumentList
+              leftParenthesis: ( @60
               arguments
                 IntegerLiteral
                   literal: 1 @61
                   staticType: int
                 SimpleStringLiteral
                   literal: '222' @64
-              leftParenthesis: ( @60
               rightParenthesis: ) @69
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: ConstructorMember
-                  base: a.dart::@class::C::@constructor::named
-                  substitution: {K: int, V: String}
-                staticType: null
-                token: named @55
-              period: . @54
-              staticElement: ConstructorMember
-                base: a.dart::@class::C::@constructor::named
-                substitution: {K: int, V: String}
-              type: NamedType
-                name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: a.dart::@class::C
-                    staticType: null
-                    token: C @40
-                  period: . @39
-                  prefix: SimpleIdentifier
-                    staticElement: self::@prefix::p
-                    staticType: null
-                    token: p @38
-                  staticElement: a.dart::@class::C
-                  staticType: null
-                type: C<int, String>
-                typeArguments: TypeArgumentList
-                  arguments
-                    NamedType
-                      name: SimpleIdentifier
-                        staticElement: dart:core::@class::int
-                        staticType: null
-                        token: int @42
-                      type: int
-                    NamedType
-                      name: SimpleIdentifier
-                        staticElement: dart:core::@class::String
-                        staticType: null
-                        token: String @47
-                      type: String
-                  leftBracket: < @41
-                  rightBracket: > @53
-            keyword: const @32
             staticType: C<int, String>
     accessors
       synthetic static get V @-1
@@ -10831,20 +10833,20 @@
         type: C<dynamic, dynamic>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @48
-              rightParenthesis: ) @49
+            keyword: const @41
             constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @47
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C<dynamic, dynamic>
               staticElement: ConstructorMember
                 base: self::@class::C::@constructor::•
                 substitution: {K: dynamic, V: dynamic}
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @47
-                type: C<dynamic, dynamic>
-            keyword: const @41
+            argumentList: ArgumentList
+              leftParenthesis: ( @48
+              rightParenthesis: ) @49
             staticType: C<dynamic, dynamic>
     accessors
       synthetic static get V @-1
@@ -10876,36 +10878,36 @@
         type: C<int, String>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @61
-              rightParenthesis: ) @62
+            keyword: const @41
             constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: self::@class::C::@constructor::•
-                substitution: {K: int, V: String}
               type: NamedType
                 name: SimpleIdentifier
+                  token: C @47
                   staticElement: self::@class::C
                   staticType: null
-                  token: C @47
-                type: C<int, String>
                 typeArguments: TypeArgumentList
+                  leftBracket: < @48
                   arguments
                     NamedType
                       name: SimpleIdentifier
+                        token: int @49
                         staticElement: dart:core::@class::int
                         staticType: null
-                        token: int @49
                       type: int
                     NamedType
                       name: SimpleIdentifier
+                        token: String @54
                         staticElement: dart:core::@class::String
                         staticType: null
-                        token: String @54
                       type: String
-                  leftBracket: < @48
                   rightBracket: > @60
-            keyword: const @41
+                type: C<int, String>
+              staticElement: ConstructorMember
+                base: self::@class::C::@constructor::•
+                substitution: {K: int, V: String}
+            argumentList: ArgumentList
+              leftParenthesis: ( @61
+              rightParenthesis: ) @62
             staticType: C<int, String>
     accessors
       synthetic static get V @-1
@@ -10933,36 +10935,36 @@
         type: C<int, String>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
+            keyword: const @27
             constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: a.dart::@class::C::@constructor::•
-                substitution: {K: int, V: String}
               type: NamedType
                 name: SimpleIdentifier
+                  token: C @33
                   staticElement: a.dart::@class::C
                   staticType: null
-                  token: C @33
-                type: C<int, String>
                 typeArguments: TypeArgumentList
+                  leftBracket: < @34
                   arguments
                     NamedType
                       name: SimpleIdentifier
+                        token: int @35
                         staticElement: dart:core::@class::int
                         staticType: null
-                        token: int @35
                       type: int
                     NamedType
                       name: SimpleIdentifier
+                        token: String @40
                         staticElement: dart:core::@class::String
                         staticType: null
-                        token: String @40
                       type: String
-                  leftBracket: < @34
                   rightBracket: > @46
-            keyword: const @27
+                type: C<int, String>
+              staticElement: ConstructorMember
+                base: a.dart::@class::C::@constructor::•
+                substitution: {K: int, V: String}
+            argumentList: ArgumentList
+              leftParenthesis: ( @47
+              rightParenthesis: ) @48
             staticType: C<int, String>
     accessors
       synthetic static get V @-1
@@ -10990,44 +10992,44 @@
         type: C<int, String>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @54
-              rightParenthesis: ) @55
+            keyword: const @32
             constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: a.dart::@class::C::@constructor::•
-                substitution: {K: int, V: String}
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: a.dart::@class::C
-                    staticType: null
-                    token: C @40
-                  period: . @39
                   prefix: SimpleIdentifier
+                    token: p @38
                     staticElement: self::@prefix::p
                     staticType: null
-                    token: p @38
+                  period: . @39
+                  identifier: SimpleIdentifier
+                    token: C @40
+                    staticElement: a.dart::@class::C
+                    staticType: null
                   staticElement: a.dart::@class::C
                   staticType: null
-                type: C<int, String>
                 typeArguments: TypeArgumentList
+                  leftBracket: < @41
                   arguments
                     NamedType
                       name: SimpleIdentifier
+                        token: int @42
                         staticElement: dart:core::@class::int
                         staticType: null
-                        token: int @42
                       type: int
                     NamedType
                       name: SimpleIdentifier
+                        token: String @47
                         staticElement: dart:core::@class::String
                         staticType: null
-                        token: String @47
                       type: String
-                  leftBracket: < @41
                   rightBracket: > @53
-            keyword: const @32
+                type: C<int, String>
+              staticElement: ConstructorMember
+                base: a.dart::@class::C::@constructor::•
+                substitution: {K: int, V: String}
+            argumentList: ArgumentList
+              leftParenthesis: ( @54
+              rightParenthesis: ) @55
             staticType: C<int, String>
     accessors
       synthetic static get V @-1
@@ -11067,7 +11069,22 @@
         type: C
         constantInitializer
           InstanceCreationExpression
+            keyword: const @83
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @89
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C
+              period: . @90
+              name: SimpleIdentifier
+                token: named @91
+                staticElement: self::@class::C::@constructor::named
+                staticType: null
+              staticElement: self::@class::C::@constructor::named
             argumentList: ArgumentList
+              leftParenthesis: ( @96
               arguments
                 BooleanLiteral
                   literal: true @97
@@ -11081,36 +11098,23 @@
                 NamedExpression
                   name: Label
                     label: SimpleIdentifier
+                      token: d @109
                       staticElement: self::@class::C::@constructor::named::@parameter::d
                       staticType: null
-                      token: d @109
+                    colon: : @110
                   expression: SimpleStringLiteral
                     literal: 'ccc' @112
                 NamedExpression
                   name: Label
                     label: SimpleIdentifier
+                      token: e @119
                       staticElement: self::@class::C::@constructor::named::@parameter::e
                       staticType: null
-                      token: e @119
+                    colon: : @120
                   expression: DoubleLiteral
                     literal: 3.4 @122
                     staticType: double
-              leftParenthesis: ( @96
               rightParenthesis: ) @125
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: self::@class::C::@constructor::named
-                staticType: null
-                token: named @91
-              period: . @90
-              staticElement: self::@class::C::@constructor::named
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @89
-                type: C
-            keyword: const @83
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11138,23 +11142,23 @@
         type: C
         constantInitializer
           InstanceCreationExpression
+            keyword: const @27
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @33
+                  staticElement: a.dart::@class::C
+                  staticType: null
+                type: C
+              period: . @34
+              name: SimpleIdentifier
+                token: named @35
+                staticElement: a.dart::@class::C::@constructor::named
+                staticType: null
+              staticElement: a.dart::@class::C::@constructor::named
             argumentList: ArgumentList
               leftParenthesis: ( @40
               rightParenthesis: ) @41
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: a.dart::@class::C::@constructor::named
-                staticType: null
-                token: named @35
-              period: . @34
-              staticElement: a.dart::@class::C::@constructor::named
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: a.dart::@class::C
-                  staticType: null
-                  token: C @33
-                type: C
-            keyword: const @27
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11182,31 +11186,31 @@
         type: C
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
+            keyword: const @32
             constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: a.dart::@class::C::@constructor::named
-                staticType: null
-                token: named @42
-              period: . @41
-              staticElement: a.dart::@class::C::@constructor::named
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: a.dart::@class::C
-                    staticType: null
-                    token: C @40
-                  period: . @39
                   prefix: SimpleIdentifier
+                    token: p @38
                     staticElement: self::@prefix::p
                     staticType: null
-                    token: p @38
+                  period: . @39
+                  identifier: SimpleIdentifier
+                    token: C @40
+                    staticElement: a.dart::@class::C
+                    staticType: null
                   staticElement: a.dart::@class::C
                   staticType: null
                 type: C
-            keyword: const @32
+              period: . @41
+              name: SimpleIdentifier
+                token: named @42
+                staticElement: a.dart::@class::C::@constructor::named
+                staticType: null
+              staticElement: a.dart::@class::C::@constructor::named
+            argumentList: ArgumentList
+              leftParenthesis: ( @47
+              rightParenthesis: ) @48
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11231,23 +11235,23 @@
         type: C
         constantInitializer
           InstanceCreationExpression
+            keyword: const @21
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @27
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C
+              period: . @28
+              name: SimpleIdentifier
+                token: named @29
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
             argumentList: ArgumentList
               leftParenthesis: ( @34
               rightParenthesis: ) @35
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: named @29
-              period: . @28
-              staticElement: <null>
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @27
-                type: C
-            keyword: const @21
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11267,26 +11271,26 @@
         type: dynamic
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @23
-              rightParenthesis: ) @24
+            keyword: const @10
             constructorName: ConstructorName
-              staticElement: <null>
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: <null>
-                    staticType: null
-                    token: named @18
-                  period: . @17
                   prefix: SimpleIdentifier
+                    token: C @16
                     staticElement: <null>
                     staticType: null
-                    token: C @16
+                  period: . @17
+                  identifier: SimpleIdentifier
+                    token: named @18
+                    staticElement: <null>
+                    staticType: null
                   staticElement: <null>
                   staticType: null
                 type: dynamic
-            keyword: const @10
+              staticElement: <null>
+            argumentList: ArgumentList
+              leftParenthesis: ( @23
+              rightParenthesis: ) @24
             staticType: dynamic
     accessors
       synthetic static get V @-1
@@ -11313,31 +11317,31 @@
         type: C
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
+            keyword: const @32
             constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: named @42
-              period: . @41
-              staticElement: <null>
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: a.dart::@class::C
-                    staticType: null
-                    token: C @40
-                  period: . @39
                   prefix: SimpleIdentifier
+                    token: p @38
                     staticElement: self::@prefix::p
                     staticType: null
-                    token: p @38
+                  period: . @39
+                  identifier: SimpleIdentifier
+                    token: C @40
+                    staticElement: a.dart::@class::C
+                    staticType: null
                   staticElement: a.dart::@class::C
                   staticType: null
                 type: C
-            keyword: const @32
+              period: . @41
+              name: SimpleIdentifier
+                token: named @42
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+            argumentList: ArgumentList
+              leftParenthesis: ( @47
+              rightParenthesis: ) @48
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11361,31 +11365,31 @@
         type: dynamic
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
+            keyword: const @32
             constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: named @42
-              period: . @41
-              staticElement: <null>
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: <null>
-                    staticType: null
-                    token: C @40
-                  period: . @39
                   prefix: SimpleIdentifier
+                    token: p @38
                     staticElement: self::@prefix::p
                     staticType: null
-                    token: p @38
+                  period: . @39
+                  identifier: SimpleIdentifier
+                    token: C @40
+                    staticElement: <null>
+                    staticType: null
                   staticElement: <null>
                   staticType: null
                 type: dynamic
-            keyword: const @32
+              period: . @41
+              name: SimpleIdentifier
+                token: named @42
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+            argumentList: ArgumentList
+              leftParenthesis: ( @47
+              rightParenthesis: ) @48
             staticType: dynamic
     accessors
       synthetic static get V @-1
@@ -11405,31 +11409,31 @@
         type: dynamic
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @25
-              rightParenthesis: ) @26
+            keyword: const @10
             constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: named @20
-              period: . @19
-              staticElement: <null>
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: <null>
-                    staticType: null
-                    token: C @18
-                  period: . @17
                   prefix: SimpleIdentifier
+                    token: p @16
                     staticElement: <null>
                     staticType: null
-                    token: p @16
+                  period: . @17
+                  identifier: SimpleIdentifier
+                    token: C @18
+                    staticElement: <null>
+                    staticType: null
                   staticElement: <null>
                   staticType: null
                 type: dynamic
-            keyword: const @10
+              period: . @19
+              name: SimpleIdentifier
+                token: named @20
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+            argumentList: ArgumentList
+              leftParenthesis: ( @25
+              rightParenthesis: ) @26
             staticType: dynamic
     accessors
       synthetic static get V @-1
@@ -11457,23 +11461,23 @@
         type: C<dynamic>
         constantInitializer
           InstanceCreationExpression
+            keyword: const @24
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @30
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C<dynamic>
+              period: . @31
+              name: SimpleIdentifier
+                token: named @32
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
             argumentList: ArgumentList
               leftParenthesis: ( @37
               rightParenthesis: ) @38
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: named @32
-              period: . @31
-              staticElement: <null>
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @30
-                type: C<dynamic>
-            keyword: const @24
             staticType: C<dynamic>
     accessors
       synthetic static get V @-1
@@ -11500,18 +11504,18 @@
         type: C
         constantInitializer
           InstanceCreationExpression
+            keyword: const @35
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @41
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C
+              staticElement: self::@class::C::@constructor::•
             argumentList: ArgumentList
               leftParenthesis: ( @42
               rightParenthesis: ) @43
-            constructorName: ConstructorName
-              staticElement: self::@class::C::@constructor::•
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @41
-                type: C
-            keyword: const @35
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11539,18 +11543,18 @@
         type: C
         constantInitializer
           InstanceCreationExpression
+            keyword: const @27
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @33
+                  staticElement: a.dart::@class::C
+                  staticType: null
+                type: C
+              staticElement: a.dart::@class::C::@constructor::•
             argumentList: ArgumentList
               leftParenthesis: ( @34
               rightParenthesis: ) @35
-            constructorName: ConstructorName
-              staticElement: a.dart::@class::C::@constructor::•
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: a.dart::@class::C
-                  staticType: null
-                  token: C @33
-                type: C
-            keyword: const @27
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11578,26 +11582,26 @@
         type: C
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @41
-              rightParenthesis: ) @42
+            keyword: const @32
             constructorName: ConstructorName
-              staticElement: a.dart::@class::C::@constructor::•
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: a.dart::@class::C
-                    staticType: null
-                    token: C @40
-                  period: . @39
                   prefix: SimpleIdentifier
+                    token: p @38
                     staticElement: self::@prefix::p
                     staticType: null
-                    token: p @38
+                  period: . @39
+                  identifier: SimpleIdentifier
+                    token: C @40
+                    staticElement: a.dart::@class::C
+                    staticType: null
                   staticElement: a.dart::@class::C
                   staticType: null
                 type: C
-            keyword: const @32
+              staticElement: a.dart::@class::C::@constructor::•
+            argumentList: ArgumentList
+              leftParenthesis: ( @41
+              rightParenthesis: ) @42
             staticType: C
     accessors
       synthetic static get V @-1
@@ -11617,18 +11621,18 @@
         type: dynamic
         constantInitializer
           InstanceCreationExpression
+            keyword: const @10
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @16
+                  staticElement: <null>
+                  staticType: null
+                type: dynamic
+              staticElement: <null>
             argumentList: ArgumentList
               leftParenthesis: ( @17
               rightParenthesis: ) @18
-            constructorName: ConstructorName
-              staticElement: <null>
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: <null>
-                  staticType: null
-                  token: C @16
-                type: dynamic
-            keyword: const @10
             staticType: dynamic
     accessors
       synthetic static get V @-1
@@ -11652,26 +11656,26 @@
         type: dynamic
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @41
-              rightParenthesis: ) @42
+            keyword: const @32
             constructorName: ConstructorName
-              staticElement: <null>
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: <null>
-                    staticType: null
-                    token: C @40
-                  period: . @39
                   prefix: SimpleIdentifier
+                    token: p @38
                     staticElement: self::@prefix::p
                     staticType: null
-                    token: p @38
+                  period: . @39
+                  identifier: SimpleIdentifier
+                    token: C @40
+                    staticElement: <null>
+                    staticType: null
                   staticElement: <null>
                   staticType: null
                 type: dynamic
-            keyword: const @32
+              staticElement: <null>
+            argumentList: ArgumentList
+              leftParenthesis: ( @41
+              rightParenthesis: ) @42
             staticType: dynamic
     accessors
       synthetic static get V @-1
@@ -11691,26 +11695,26 @@
         type: dynamic
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @19
-              rightParenthesis: ) @20
+            keyword: const @10
             constructorName: ConstructorName
-              staticElement: <null>
               type: NamedType
                 name: PrefixedIdentifier
-                  identifier: SimpleIdentifier
-                    staticElement: <null>
-                    staticType: null
-                    token: C @18
-                  period: . @17
                   prefix: SimpleIdentifier
+                    token: p @16
                     staticElement: <null>
                     staticType: null
-                    token: p @16
+                  period: . @17
+                  identifier: SimpleIdentifier
+                    token: C @18
+                    staticElement: <null>
+                    staticType: null
                   staticElement: <null>
                   staticType: null
                 type: dynamic
-            keyword: const @10
+              staticElement: <null>
+            argumentList: ArgumentList
+              leftParenthesis: ( @19
+              rightParenthesis: ) @20
             staticType: dynamic
     accessors
       synthetic static get V @-1
@@ -11738,17 +11742,17 @@
         constantInitializer
           IsExpression
             expression: SimpleIdentifier
+              token: a @23
               staticElement: self::@getter::a
               staticType: int
-              token: a @23
             isOperator: is @25
-            staticType: bool
             type: NamedType
               name: SimpleIdentifier
+                token: int @28
                 staticElement: dart:core::@class::int
                 staticType: null
-                token: int @28
               type: int
+            staticType: bool
     accessors
       synthetic static get a @-1
         returnType: int
@@ -11785,24 +11789,24 @@
         type: int
         constantInitializer
           PropertyAccess
-            operator: . @59
-            propertyName: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @60
-            staticType: int
             target: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: self::@class::C::@getter::F
-                staticType: String
-                token: F @58
-              period: . @57
               prefix: SimpleIdentifier
+                token: C @56
                 staticElement: self::@class::C
                 staticType: null
-                token: C @56
+              period: . @57
+              identifier: SimpleIdentifier
+                token: F @58
+                staticElement: self::@class::C::@getter::F
+                staticType: String
               staticElement: self::@class::C::@getter::F
               staticType: String
+            operator: . @59
+            propertyName: SimpleIdentifier
+              token: length @60
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
+            staticType: int
     accessors
       synthetic static get v @-1
         returnType: int
@@ -11829,24 +11833,24 @@
         type: int
         constantInitializer
           PropertyAccess
-            operator: . @34
-            propertyName: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @35
-            staticType: int
             target: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: a.dart::@class::C::@getter::F
-                staticType: String
-                token: F @33
-              period: . @32
               prefix: SimpleIdentifier
+                token: C @31
                 staticElement: a.dart::@class::C
                 staticType: null
-                token: C @31
+              period: . @32
+              identifier: SimpleIdentifier
+                token: F @33
+                staticElement: a.dart::@class::C::@getter::F
+                staticType: String
               staticElement: a.dart::@class::C::@getter::F
               staticType: String
+            operator: . @34
+            propertyName: SimpleIdentifier
+              token: length @35
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
+            staticType: int
     accessors
       synthetic static get v @-1
         returnType: int
@@ -11873,31 +11877,31 @@
         type: int
         constantInitializer
           PropertyAccess
-            operator: . @41
-            propertyName: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @42
-            staticType: int
             target: PropertyAccess
-              operator: . @39
-              propertyName: SimpleIdentifier
-                staticElement: a.dart::@class::C::@getter::F
-                staticType: String
-                token: F @40
-              staticType: String
               target: PrefixedIdentifier
-                identifier: SimpleIdentifier
-                  staticElement: a.dart::@class::C
-                  staticType: null
-                  token: C @38
-                period: . @37
                 prefix: SimpleIdentifier
+                  token: p @36
                   staticElement: self::@prefix::p
                   staticType: null
-                  token: p @36
+                period: . @37
+                identifier: SimpleIdentifier
+                  token: C @38
+                  staticElement: a.dart::@class::C
+                  staticType: null
                 staticElement: a.dart::@class::C
                 staticType: null
+              operator: . @39
+              propertyName: SimpleIdentifier
+                token: F @40
+                staticElement: a.dart::@class::C::@getter::F
+                staticType: String
+              staticType: String
+            operator: . @41
+            propertyName: SimpleIdentifier
+              token: length @42
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
+            staticType: int
     accessors
       synthetic static get v @-1
         returnType: int
@@ -11916,14 +11920,14 @@
         type: int
         constantInitializer
           PropertyAccess
-            operator: . @15
-            propertyName: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @16
-            staticType: int
             target: SimpleStringLiteral
               literal: 'abc' @10
+            operator: . @15
+            propertyName: SimpleIdentifier
+              token: length @16
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
+            staticType: int
     accessors
       synthetic static get v @-1
         returnType: int
@@ -11948,15 +11952,15 @@
         type: int
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @36
-            period: . @35
             prefix: SimpleIdentifier
+              token: S @34
               staticElement: self::@getter::S
               staticType: String
-              token: S @34
+            period: . @35
+            identifier: SimpleIdentifier
+              token: length @36
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
             staticElement: dart:core::@class::String::@getter::length
             staticType: int
     accessors
@@ -11985,15 +11989,15 @@
         type: int
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @29
-            period: . @28
             prefix: SimpleIdentifier
+              token: S @27
               staticElement: a.dart::@getter::S
               staticType: String
-              token: S @27
+            period: . @28
+            identifier: SimpleIdentifier
+              token: length @29
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
             staticElement: dart:core::@class::String::@getter::length
             staticType: int
     accessors
@@ -12020,24 +12024,24 @@
         type: int
         constantInitializer
           PropertyAccess
-            operator: . @35
-            propertyName: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @36
-            staticType: int
             target: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: a.dart::@getter::S
-                staticType: String
-                token: S @34
-              period: . @33
               prefix: SimpleIdentifier
+                token: p @32
                 staticElement: self::@prefix::p
                 staticType: null
-                token: p @32
+              period: . @33
+              identifier: SimpleIdentifier
+                token: S @34
+                staticElement: a.dart::@getter::S
+                staticType: String
               staticElement: a.dart::@getter::S
               staticType: String
+            operator: . @35
+            propertyName: SimpleIdentifier
+              token: length @36
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
+            staticType: int
     accessors
       synthetic static get v @-1
         returnType: int
@@ -12066,15 +12070,15 @@
         type: int Function()
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: self::@class::C::@method::length
-              staticType: int Function()
-              token: length @53
-            period: . @52
             prefix: SimpleIdentifier
+              token: C @51
               staticElement: self::@class::C
               staticType: null
-              token: C @51
+            period: . @52
+            identifier: SimpleIdentifier
+              token: length @53
+              staticElement: self::@class::C::@method::length
+              staticType: int Function()
             staticElement: self::@class::C::@method::length
             staticType: int Function()
     accessors
@@ -12096,27 +12100,30 @@
         constantInitializer
           ListLiteral
             constKeyword: const @17
-            elements
-              IfElement
-                condition: BooleanLiteral
-                  literal: true @33
-                  staticType: bool
-                thenStatement: IntegerLiteral
-                  literal: 1 @39
-                  staticType: int
-            leftBracket: [ @28
-            rightBracket: ] @40
-            staticType: List<int>
             typeArguments: TypeArgumentList
+              leftBracket: < @23
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @24
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @24
                   type: int
-              leftBracket: < @23
               rightBracket: > @27
+            leftBracket: [ @28
+            elements
+              IfElement
+                ifKeyword: if @29
+                leftParenthesis: ( @32
+                condition: BooleanLiteral
+                  literal: true @33
+                  staticType: bool
+                rightParenthesis: ) @37
+                thenElement: IntegerLiteral
+                  literal: 1 @39
+                  staticType: int
+            rightBracket: ] @40
+            staticType: List<int>
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -12136,30 +12143,34 @@
         constantInitializer
           ListLiteral
             constKeyword: const @17
-            elements
-              IfElement
-                condition: BooleanLiteral
-                  literal: true @33
-                  staticType: bool
-                elseStatement: IntegerLiteral
-                  literal: 2 @46
-                  staticType: int
-                thenStatement: IntegerLiteral
-                  literal: 1 @39
-                  staticType: int
-            leftBracket: [ @28
-            rightBracket: ] @47
-            staticType: List<int>
             typeArguments: TypeArgumentList
+              leftBracket: < @23
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @24
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @24
                   type: int
-              leftBracket: < @23
               rightBracket: > @27
+            leftBracket: [ @28
+            elements
+              IfElement
+                ifKeyword: if @29
+                leftParenthesis: ( @32
+                condition: BooleanLiteral
+                  literal: true @33
+                  staticType: bool
+                rightParenthesis: ) @37
+                thenElement: IntegerLiteral
+                  literal: 1 @39
+                  staticType: int
+                elseKeyword: else @41
+                elseElement: IntegerLiteral
+                  literal: 2 @46
+                  staticType: int
+            rightBracket: ] @47
+            staticType: List<int>
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -12182,11 +12193,11 @@
         constantInitializer
           ListLiteral
             constKeyword: const @17
+            leftBracket: [ @23
             elements
               IntegerLiteral
                 literal: 1 @24
                 staticType: int
-            leftBracket: [ @23
             rightBracket: ] @25
             staticType: List<int>
     accessors
@@ -12208,40 +12219,40 @@
         constantInitializer
           ListLiteral
             constKeyword: const @17
+            typeArguments: TypeArgumentList
+              leftBracket: < @23
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @24
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @27
+            leftBracket: [ @28
             elements
               SpreadElement
+                spreadOperator: ... @29
                 expression: ListLiteral
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @32
+                    arguments
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @33
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                    rightBracket: > @36
+                  leftBracket: [ @37
                   elements
                     IntegerLiteral
                       literal: 1 @38
                       staticType: int
-                  leftBracket: [ @37
                   rightBracket: ] @39
                   staticType: List<int>
-                  typeArguments: TypeArgumentList
-                    arguments
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @33
-                        type: int
-                    leftBracket: < @32
-                    rightBracket: > @36
-                spreadOperator: ... @29
-            leftBracket: [ @28
             rightBracket: ] @40
             staticType: List<int>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @24
-                  type: int
-              leftBracket: < @23
-              rightBracket: > @27
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -12261,40 +12272,40 @@
         constantInitializer
           ListLiteral
             constKeyword: const @17
+            typeArguments: TypeArgumentList
+              leftBracket: < @23
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @24
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @27
+            leftBracket: [ @28
             elements
               SpreadElement
+                spreadOperator: ...? @29
                 expression: ListLiteral
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @33
+                    arguments
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @34
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                    rightBracket: > @37
+                  leftBracket: [ @38
                   elements
                     IntegerLiteral
                       literal: 1 @39
                       staticType: int
-                  leftBracket: [ @38
                   rightBracket: ] @40
                   staticType: List<int>
-                  typeArguments: TypeArgumentList
-                    arguments
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @34
-                        type: int
-                    leftBracket: < @33
-                    rightBracket: > @37
-                spreadOperator: ...? @29
-            leftBracket: [ @28
             rightBracket: ] @41
             staticType: List<int>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @24
-                  type: int
-              leftBracket: < @23
-              rightBracket: > @27
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -12314,56 +12325,48 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
-            elements
-              IfElement
-                condition: BooleanLiteral
-                  literal: true @38
-                  staticType: bool
-                thenStatement: SetOrMapLiteral
-                  key: IntegerLiteral
-                    literal: 1 @44
-                    staticType: int
-                  value: IntegerLiteral
-                    literal: 2 @47
-                    staticType: int
-            isMap: true
-            leftBracket: { @33
-            rightBracket: } @48
-            staticType: Map<int, int>
             typeArguments: TypeArgumentList
+              leftBracket: < @23
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @24
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @24
                   type: int
                 NamedType
                   name: SimpleIdentifier
+                    token: int @29
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @29
                   type: int
-              leftBracket: < @23
               rightBracket: > @32
+            leftBracket: { @33
+            elements
+              IfElement
+                ifKeyword: if @34
+                leftParenthesis: ( @37
+                condition: BooleanLiteral
+                  literal: true @38
+                  staticType: bool
+                rightParenthesis: ) @42
+                thenElement: SetOrMapLiteral
+                  key: IntegerLiteral
+                    literal: 1 @44
+                    staticType: int
+                  separator: : @45
+                  value: IntegerLiteral
+                    literal: 2 @47
+                    staticType: int
+            rightBracket: } @48
+            isMap: true
+            staticType: Map<int, int>
     accessors
       synthetic static get x @-1
         returnType: Object
 ''');
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/44522')
-  test_const_map_if_else() async {
-    var library = await checkLibrary('''
-const Object x = const <int, int>{if (true) 1: 2 else 3: 4];
-''');
-    checkElementText(library, r'''
-const Object x = const <
-        int/*location: dart:core;int*/,
-        int/*location: dart:core;int*/>{if (true) 1: 2 else 3: 4}/*isMap*/;
-''');
-  }
-
   test_const_map_inferredType() async {
     // The summary needs to contain enough information so that when the constant
     // is resynthesized, the constant value can get the type that was computed
@@ -12380,17 +12383,18 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
+            leftBracket: { @23
             elements
               SetOrMapLiteral
                 key: IntegerLiteral
                   literal: 1 @24
                   staticType: int
+                separator: : @25
                 value: DoubleLiteral
                   literal: 1.0 @27
                   staticType: double
-            isMap: true
-            leftBracket: { @23
             rightBracket: } @30
+            isMap: true
             staticType: Map<int, double>
     accessors
       synthetic static get x @-1
@@ -12411,58 +12415,59 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
+            typeArguments: TypeArgumentList
+              leftBracket: < @23
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @24
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @29
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @32
+            leftBracket: { @33
             elements
               SpreadElement
+                spreadOperator: ... @34
                 expression: SetOrMapLiteral
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @37
+                    arguments
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @38
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @43
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                    rightBracket: > @46
+                  leftBracket: { @47
                   elements
                     SetOrMapLiteral
                       key: IntegerLiteral
                         literal: 1 @48
                         staticType: int
+                      separator: : @49
                       value: IntegerLiteral
                         literal: 2 @51
                         staticType: int
-                  isMap: true
-                  leftBracket: { @47
                   rightBracket: } @52
+                  isMap: true
                   staticType: Map<int, int>
-                  typeArguments: TypeArgumentList
-                    arguments
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @38
-                        type: int
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @43
-                        type: int
-                    leftBracket: < @37
-                    rightBracket: > @46
-                spreadOperator: ... @34
-            isMap: true
-            leftBracket: { @33
             rightBracket: } @53
+            isMap: true
             staticType: Map<int, int>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @24
-                  type: int
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @29
-                  type: int
-              leftBracket: < @23
-              rightBracket: > @32
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -12482,58 +12487,59 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
+            typeArguments: TypeArgumentList
+              leftBracket: < @23
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @24
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @29
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @32
+            leftBracket: { @33
             elements
               SpreadElement
+                spreadOperator: ...? @34
                 expression: SetOrMapLiteral
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @38
+                    arguments
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @39
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @44
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                    rightBracket: > @47
+                  leftBracket: { @48
                   elements
                     SetOrMapLiteral
                       key: IntegerLiteral
                         literal: 1 @49
                         staticType: int
+                      separator: : @50
                       value: IntegerLiteral
                         literal: 2 @52
                         staticType: int
-                  isMap: true
-                  leftBracket: { @48
                   rightBracket: } @53
+                  isMap: true
                   staticType: Map<int, int>
-                  typeArguments: TypeArgumentList
-                    arguments
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @39
-                        type: int
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @44
-                        type: int
-                    leftBracket: < @38
-                    rightBracket: > @47
-                spreadOperator: ...? @34
-            isMap: true
-            leftBracket: { @33
             rightBracket: } @54
+            isMap: true
             staticType: Map<int, int>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @24
-                  type: int
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @29
-                  type: int
-              leftBracket: < @23
-              rightBracket: > @32
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -12553,31 +12559,21 @@
         type: int
         constantInitializer
           MethodInvocation
+            methodName: SimpleIdentifier
+              token: f @28
+              staticElement: self::@function::f
+              staticType: T Function<T>(T)
             argumentList: ArgumentList
+              leftParenthesis: ( @34
               arguments
                 IntegerLiteral
                   literal: 0 @35
                   staticType: int
-              leftParenthesis: ( @34
               rightParenthesis: ) @36
-            methodName: SimpleIdentifier
-              staticElement: self::@function::f
-              staticType: T Function<T>(T)
-              token: f @28
             staticInvokeType: int Function(int)
             staticType: int
             typeArgumentTypes
               int
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @30
-                  type: int
-              leftBracket: < @29
-              rightBracket: > @33
     accessors
       synthetic static get b @-1
         returnType: int
@@ -12615,9 +12611,9 @@
                 type: dynamic
                 constantInitializer
                   SimpleIdentifier
+                    token: foo @40
                     staticElement: self::@function::foo
                     staticType: int Function()
-                    token: foo @40
                 field: self::@class::C::@field::x
         accessors
           synthetic get x @-1
@@ -12827,16 +12823,16 @@
         constantInitializer
           PostfixExpression
             operand: SimpleIdentifier
+              token: a @23
               staticElement: <null>
               staticType: null
-              token: a @23
             operator: ++ @24
             readElement: self::@getter::a
             readType: int
-            staticElement: dart:core::@class::num::@method::+
-            staticType: int
             writeElement: self::@getter::a
             writeType: dynamic
+            staticElement: dart:core::@class::num::@method::+
+            staticType: int
     accessors
       synthetic static get a @-1
         returnType: int
@@ -12865,9 +12861,9 @@
         constantInitializer
           PostfixExpression
             operand: SimpleIdentifier
+              token: a @28
               staticElement: self::@getter::a
               staticType: int?
-              token: a @28
             operator: ! @29
             staticElement: <null>
             staticType: int
@@ -12898,11 +12894,11 @@
         type: int
         constantInitializer
           PrefixExpression
+            operator: - @23
             operand: SimpleIdentifier
+              token: a @24
               staticElement: self::@getter::a
               staticType: int
-              token: a @24
-            operator: - @23
             staticElement: dart:core::@class::int::@method::unary-
             staticType: int
     accessors
@@ -12935,11 +12931,11 @@
         type: int
         constantInitializer
           PrefixExpression
+            operator: - @27
             operand: SimpleIdentifier
+              token: a @28
               staticElement: package:test/a.dart::@getter::a
               staticType: Object
-              token: a @28
-            operator: - @27
             staticElement: package:test/a.dart::@extension::E::@method::unary-
             staticType: int
     accessors
@@ -12967,17 +12963,17 @@
         type: int
         constantInitializer
           PrefixExpression
+            operator: ++ @23
             operand: SimpleIdentifier
+              token: a @25
               staticElement: <null>
               staticType: null
-              token: a @25
-            operator: ++ @23
             readElement: self::@getter::a
             readType: int
-            staticElement: dart:core::@class::num::@method::+
-            staticType: int
             writeElement: self::@getter::a
             writeType: dynamic
+            staticElement: dart:core::@class::num::@method::+
+            staticType: int
     accessors
       synthetic static get a @-1
         returnType: int
@@ -13015,15 +13011,15 @@
         type: int
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: self::@class::C::@getter::F
-              staticType: int
-              token: F @51
-            period: . @50
             prefix: SimpleIdentifier
+              token: C @49
               staticElement: self::@class::C
               staticType: null
-              token: C @49
+            period: . @50
+            identifier: SimpleIdentifier
+              token: F @51
+              staticElement: self::@class::C::@getter::F
+              staticType: int
             staticElement: self::@class::C::@getter::F
             staticType: int
     accessors
@@ -13052,15 +13048,15 @@
         type: int
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: a.dart::@class::C::@getter::F
-              staticType: int
-              token: F @29
-            period: . @28
             prefix: SimpleIdentifier
+              token: C @27
               staticElement: a.dart::@class::C
               staticType: null
-              token: C @27
+            period: . @28
+            identifier: SimpleIdentifier
+              token: F @29
+              staticElement: a.dart::@class::C::@getter::F
+              staticType: int
             staticElement: a.dart::@class::C::@getter::F
             staticType: int
     accessors
@@ -13089,24 +13085,24 @@
         type: int
         constantInitializer
           PropertyAccess
-            operator: . @35
-            propertyName: SimpleIdentifier
-              staticElement: a.dart::@class::C::@getter::F
-              staticType: int
-              token: F @36
-            staticType: int
             target: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: a.dart::@class::C
-                staticType: null
-                token: C @34
-              period: . @33
               prefix: SimpleIdentifier
+                token: p @32
                 staticElement: self::@prefix::p
                 staticType: null
-                token: p @32
+              period: . @33
+              identifier: SimpleIdentifier
+                token: C @34
+                staticElement: a.dart::@class::C
+                staticType: null
               staticElement: a.dart::@class::C
               staticType: null
+            operator: . @35
+            propertyName: SimpleIdentifier
+              token: F @36
+              staticElement: a.dart::@class::C::@getter::F
+              staticType: int
+            staticType: int
     accessors
       synthetic static get V @-1
         returnType: int
@@ -13140,15 +13136,15 @@
         type: int Function(int, String)
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: self::@class::C::@method::m
-              staticType: int Function(int, String)
-              token: m @63
-            period: . @62
             prefix: SimpleIdentifier
+              token: C @61
               staticElement: self::@class::C
               staticType: null
-              token: C @61
+            period: . @62
+            identifier: SimpleIdentifier
+              token: m @63
+              staticElement: self::@class::C::@method::m
+              staticType: int Function(int, String)
             staticElement: self::@class::C::@method::m
             staticType: int Function(int, String)
     accessors
@@ -13177,15 +13173,15 @@
         type: int Function(int, String)
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: a.dart::@class::C::@method::m
-              staticType: int Function(int, String)
-              token: m @29
-            period: . @28
             prefix: SimpleIdentifier
+              token: C @27
               staticElement: a.dart::@class::C
               staticType: null
-              token: C @27
+            period: . @28
+            identifier: SimpleIdentifier
+              token: m @29
+              staticElement: a.dart::@class::C::@method::m
+              staticType: int Function(int, String)
             staticElement: a.dart::@class::C::@method::m
             staticType: int Function(int, String)
     accessors
@@ -13214,24 +13210,24 @@
         type: int Function(int, String)
         constantInitializer
           PropertyAccess
-            operator: . @35
-            propertyName: SimpleIdentifier
-              staticElement: a.dart::@class::C::@method::m
-              staticType: int Function(int, String)
-              token: m @36
-            staticType: int Function(int, String)
             target: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: a.dart::@class::C
-                staticType: null
-                token: C @34
-              period: . @33
               prefix: SimpleIdentifier
+                token: p @32
                 staticElement: self::@prefix::p
                 staticType: null
-                token: p @32
+              period: . @33
+              identifier: SimpleIdentifier
+                token: C @34
+                staticElement: a.dart::@class::C
+                staticType: null
               staticElement: a.dart::@class::C
               staticType: null
+            operator: . @35
+            propertyName: SimpleIdentifier
+              token: m @36
+              staticElement: a.dart::@class::C::@method::m
+              staticType: int Function(int, String)
+            staticType: int Function(int, String)
     accessors
       synthetic static get V @-1
         returnType: int Function(int, String)
@@ -13264,15 +13260,15 @@
         type: void Function()
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: self::@extension::E::@method::f
-              staticType: void Function()
-              token: f @65
-            period: . @64
             prefix: SimpleIdentifier
+              token: E @63
               staticElement: self::@extension::E
               staticType: null
-              token: E @63
+            period: . @64
+            identifier: SimpleIdentifier
+              token: f @65
+              staticElement: self::@extension::E::@method::f
+              staticType: void Function()
             staticElement: self::@extension::E::@method::f
             staticType: void Function()
     accessors
@@ -13294,9 +13290,9 @@
         type: dynamic Function()
         constantInitializer
           SimpleIdentifier
+            token: foo @19
             staticElement: self::@function::foo
             staticType: dynamic Function()
-            token: foo @19
     accessors
       synthetic static get V @-1
         returnType: dynamic Function()
@@ -13319,9 +13315,9 @@
         type: R Function<P, R>(P)
         constantInitializer
           SimpleIdentifier
+            token: foo @30
             staticElement: self::@function::foo
             staticType: R Function<P, R>(P)
-            token: foo @30
     accessors
       synthetic static get V @-1
         returnType: R Function<P, R>(P)
@@ -13355,9 +13351,9 @@
         type: dynamic Function()
         constantInitializer
           SimpleIdentifier
+            token: foo @27
             staticElement: a.dart::@function::foo
             staticType: dynamic Function()
-            token: foo @27
     accessors
       synthetic static get V @-1
         returnType: dynamic Function()
@@ -13382,15 +13378,15 @@
         type: dynamic Function()
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: a.dart::@function::foo
-              staticType: dynamic Function()
-              token: foo @34
-            period: . @33
             prefix: SimpleIdentifier
+              token: p @32
               staticElement: self::@prefix::p
               staticType: null
-              token: p @32
+            period: . @33
+            identifier: SimpleIdentifier
+              token: foo @34
+              staticElement: a.dart::@function::foo
+              staticType: dynamic Function()
             staticElement: a.dart::@function::foo
             staticType: dynamic Function()
     accessors
@@ -13419,9 +13415,9 @@
         constantInitializer
           BinaryExpression
             leftOperand: SimpleIdentifier
+              token: A @23
               staticElement: self::@getter::A
               staticType: int
-              token: A @23
             operator: + @25
             rightOperand: IntegerLiteral
               literal: 2 @27
@@ -13456,9 +13452,9 @@
         constantInitializer
           BinaryExpression
             leftOperand: SimpleIdentifier
+              token: A @27
               staticElement: a.dart::@getter::A
               staticType: int
-              token: A @27
             operator: + @29
             rightOperand: IntegerLiteral
               literal: 2 @31
@@ -13491,15 +13487,15 @@
         constantInitializer
           BinaryExpression
             leftOperand: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: a.dart::@getter::A
-                staticType: int
-                token: A @34
-              period: . @33
               prefix: SimpleIdentifier
+                token: p @32
                 staticElement: self::@prefix::p
                 staticType: null
-                token: p @32
+              period: . @33
+              identifier: SimpleIdentifier
+                token: A @34
+                staticElement: a.dart::@getter::A
+                staticType: int
               staticElement: a.dart::@getter::A
               staticType: int
             operator: + @36
@@ -13550,83 +13546,83 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @36
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant c @39
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
                   SimpleIdentifier
+                    token: c @-1
                     staticElement: self::@enum::E::@getter::c
                     staticType: E
-                    token: c @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -13655,51 +13651,51 @@
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: dynamic @87
             staticElement: dynamic@-1
             staticType: Type
-            token: dynamic @87
       static const vNull @102
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: Null @110
             staticElement: dart:core::@class::Null
             staticType: Type
-            token: Null @110
       static const vObject @122
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: Object @132
             staticElement: dart:core::@class::Object
             staticType: Type
-            token: Object @132
       static const vClass @146
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: C @155
             staticElement: self::@class::C
             staticType: Type
-            token: C @155
       static const vGenericClass @164
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: D @180
             staticElement: self::@class::D
             staticType: Type
-            token: D @180
       static const vEnum @189
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: E @197
             staticElement: self::@enum::E
             staticType: Type
-            token: E @197
       static const vFunctionTypeAlias @206
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: F @227
             staticElement: self::@typeAlias::F
             staticType: Type
-            token: F @227
     accessors
       synthetic static get vDynamic @-1
         returnType: Type
@@ -13768,23 +13764,23 @@
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: C @32
             staticElement: a.dart::@class::C
             staticType: Type
-            token: C @32
       static const vEnum @41
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: E @49
             staticElement: a.dart::@enum::E
             staticType: Type
-            token: E @49
       static const vFunctionTypeAlias @58
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: F @79
             staticElement: a.dart::@typeAlias::F
             staticType: Type
-            token: F @79
     accessors
       synthetic static get vClass @-1
         returnType: Type
@@ -13817,45 +13813,45 @@
         type: Type
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: a.dart::@class::C
-              staticType: Type
-              token: C @39
-            period: . @38
             prefix: SimpleIdentifier
+              token: p @37
               staticElement: self::@prefix::p
               staticType: null
-              token: p @37
+            period: . @38
+            identifier: SimpleIdentifier
+              token: C @39
+              staticElement: a.dart::@class::C
+              staticType: Type
             staticElement: a.dart::@class::C
             staticType: Type
       static const vEnum @48
         type: Type
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: a.dart::@enum::E
-              staticType: Type
-              token: E @58
-            period: . @57
             prefix: SimpleIdentifier
+              token: p @56
               staticElement: self::@prefix::p
               staticType: null
-              token: p @56
+            period: . @57
+            identifier: SimpleIdentifier
+              token: E @58
+              staticElement: a.dart::@enum::E
+              staticType: Type
             staticElement: a.dart::@enum::E
             staticType: Type
       static const vFunctionTypeAlias @67
         type: Type
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: a.dart::@typeAlias::F
-              staticType: Type
-              token: F @90
-            period: . @89
             prefix: SimpleIdentifier
+              token: p @88
               staticElement: self::@prefix::p
               staticType: null
-              token: p @88
+            period: . @89
+            identifier: SimpleIdentifier
+              token: F @90
+              staticElement: a.dart::@typeAlias::F
+              staticType: Type
             staticElement: a.dart::@typeAlias::F
             staticType: Type
     accessors
@@ -13905,9 +13901,9 @@
         type: dynamic
         constantInitializer
           SimpleIdentifier
+            token: foo @10
             staticElement: <null>
             staticType: dynamic
-            token: foo @10
     accessors
       synthetic static get V @-1
         returnType: dynamic
@@ -13931,15 +13927,15 @@
         type: dynamic
         constantInitializer
           PrefixedIdentifier
-            identifier: SimpleIdentifier
-              staticElement: <null>
-              staticType: dynamic
-              token: foo @23
-            period: . @22
             prefix: SimpleIdentifier
+              token: C @21
               staticElement: self::@class::C
               staticType: null
-              token: C @21
+            period: . @22
+            identifier: SimpleIdentifier
+              token: foo @23
+              staticElement: <null>
+              staticType: dynamic
             staticElement: <null>
             staticType: dynamic
     accessors
@@ -13966,24 +13962,24 @@
         type: dynamic
         constantInitializer
           PropertyAccess
-            operator: . @37
-            propertyName: SimpleIdentifier
-              staticElement: <null>
-              staticType: dynamic
-              token: foo @38
-            staticType: dynamic
             target: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: foo.dart::@class::C
-                staticType: null
-                token: C @36
-              period: . @35
               prefix: SimpleIdentifier
+                token: p @34
                 staticElement: self::@prefix::p
                 staticType: null
-                token: p @34
+              period: . @35
+              identifier: SimpleIdentifier
+                token: C @36
+                staticElement: foo.dart::@class::C
+                staticType: null
               staticElement: foo.dart::@class::C
               staticType: null
+            operator: . @37
+            propertyName: SimpleIdentifier
+              token: foo @38
+              staticElement: <null>
+              staticType: dynamic
+            staticType: dynamic
     accessors
       synthetic static get V @-1
         returnType: dynamic
@@ -14003,45 +13999,37 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
-            elements
-              IfElement
-                condition: BooleanLiteral
-                  literal: true @33
-                  staticType: bool
-                thenStatement: IntegerLiteral
-                  literal: 1 @39
-                  staticType: int
-            isMap: false
-            leftBracket: { @28
-            rightBracket: } @40
-            staticType: Set<int>
             typeArguments: TypeArgumentList
+              leftBracket: < @23
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @24
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @24
                   type: int
-              leftBracket: < @23
               rightBracket: > @27
+            leftBracket: { @28
+            elements
+              IfElement
+                ifKeyword: if @29
+                leftParenthesis: ( @32
+                condition: BooleanLiteral
+                  literal: true @33
+                  staticType: bool
+                rightParenthesis: ) @37
+                thenElement: IntegerLiteral
+                  literal: 1 @39
+                  staticType: int
+            rightBracket: } @40
+            isMap: false
+            staticType: Set<int>
     accessors
       synthetic static get x @-1
         returnType: Object
 ''');
   }
 
-  @FailingTest(issue: 'https://github.com/dart-lang/sdk/issues/44522')
-  test_const_set_if_else() async {
-    var library = await checkLibrary('''
-const Object x = const <int>{if (true) 1 else 2];
-''');
-    checkElementText(library, r'''
-const Object x = const <
-        int/*location: dart:core;int*/>{if (true) 1 else 2}/*isSet*/;
-''');
-  }
-
   test_const_set_inferredType() async {
     // The summary needs to contain enough information so that when the constant
     // is resynthesized, the constant value can get the type that was computed
@@ -14058,13 +14046,13 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
+            leftBracket: { @23
             elements
               IntegerLiteral
                 literal: 1 @24
                 staticType: int
-            isMap: false
-            leftBracket: { @23
             rightBracket: } @25
+            isMap: false
             staticType: Set<int>
     accessors
       synthetic static get x @-1
@@ -14085,42 +14073,42 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
+            typeArguments: TypeArgumentList
+              leftBracket: < @23
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @24
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @27
+            leftBracket: { @28
             elements
               SpreadElement
+                spreadOperator: ... @29
                 expression: SetOrMapLiteral
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @32
+                    arguments
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @33
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                    rightBracket: > @36
+                  leftBracket: { @37
                   elements
                     IntegerLiteral
                       literal: 1 @38
                       staticType: int
-                  isMap: false
-                  leftBracket: { @37
                   rightBracket: } @39
+                  isMap: false
                   staticType: Set<int>
-                  typeArguments: TypeArgumentList
-                    arguments
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @33
-                        type: int
-                    leftBracket: < @32
-                    rightBracket: > @36
-                spreadOperator: ... @29
-            isMap: false
-            leftBracket: { @28
             rightBracket: } @40
+            isMap: false
             staticType: Set<int>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @24
-                  type: int
-              leftBracket: < @23
-              rightBracket: > @27
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -14140,42 +14128,42 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @17
+            typeArguments: TypeArgumentList
+              leftBracket: < @23
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @24
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @27
+            leftBracket: { @28
             elements
               SpreadElement
+                spreadOperator: ...? @29
                 expression: SetOrMapLiteral
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @33
+                    arguments
+                      NamedType
+                        name: SimpleIdentifier
+                          token: int @34
+                          staticElement: dart:core::@class::int
+                          staticType: null
+                        type: int
+                    rightBracket: > @37
+                  leftBracket: { @38
                   elements
                     IntegerLiteral
                       literal: 1 @39
                       staticType: int
-                  isMap: false
-                  leftBracket: { @38
                   rightBracket: } @40
+                  isMap: false
                   staticType: Set<int>
-                  typeArguments: TypeArgumentList
-                    arguments
-                      NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::int
-                          staticType: null
-                          token: int @34
-                        type: int
-                    leftBracket: < @33
-                    rightBracket: > @37
-                spreadOperator: ...? @29
-            isMap: false
-            leftBracket: { @28
             rightBracket: } @41
+            isMap: false
             staticType: Set<int>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @24
-                  type: int
-              leftBracket: < @23
-              rightBracket: > @27
     accessors
       synthetic static get x @-1
         returnType: Object
@@ -14511,8 +14499,8 @@
         type: int
         constantInitializer
           ConditionalExpression
-            colon: : @35
             condition: ParenthesizedExpression
+              leftParenthesis: ( @21
               expression: BinaryExpression
                 leftOperand: IntegerLiteral
                   literal: 1 @22
@@ -14524,17 +14512,17 @@
                 staticElement: dart:core::@class::num::@method::==
                 staticInvokeType: bool Function(Object)
                 staticType: bool
-              leftParenthesis: ( @21
               rightParenthesis: ) @28
               staticType: bool
-            elseExpression: IntegerLiteral
-              literal: 22 @37
-              staticType: int
             question: ? @30
-            staticType: int
             thenExpression: IntegerLiteral
               literal: 11 @32
               staticType: int
+            colon: : @35
+            elseExpression: IntegerLiteral
+              literal: 22 @37
+              staticType: int
+            staticType: int
     accessors
       synthetic static get vConditional @-1
         returnType: int
@@ -14553,8 +14541,8 @@
         type: int
         constantInitializer
           ConditionalExpression
-            colon: : @33
             condition: ParenthesizedExpression
+              leftParenthesis: ( @19
               expression: BinaryExpression
                 leftOperand: IntegerLiteral
                   literal: 1 @20
@@ -14566,17 +14554,17 @@
                 staticElement: dart:core::@class::num::@method::==
                 staticInvokeType: bool Function(Object)
                 staticType: bool
-              leftParenthesis: ( @19
               rightParenthesis: ) @26
               staticType: bool
-            elseExpression: IntegerLiteral
-              literal: 22 @35
-              staticType: int
             question: ? @28
-            staticType: int
             thenExpression: IntegerLiteral
               literal: 11 @30
               staticType: int
+            colon: : @33
+            elseExpression: IntegerLiteral
+              literal: 22 @35
+              staticType: int
+            staticType: int
     accessors
       synthetic static get vIdentical @-1
         returnType: int
@@ -14659,10 +14647,10 @@
         type: int
         constantInitializer
           PrefixExpression
+            operator: - @115
             operand: IntegerLiteral
               literal: 2 @116
               staticType: int
-            operator: - @115
             staticElement: dart:core::@class::int::@method::unary-
             staticType: int
       static const vIntLong1 @125
@@ -14698,13 +14686,13 @@
         type: String
         constantInitializer
           AdjacentStrings
-            staticType: String
-            stringValue: aaabbb
             strings
               SimpleStringLiteral
                 literal: 'aaa' @299
               SimpleStringLiteral
                 literal: 'bbb' @305
+            staticType: String
+            stringValue: aaabbb
       static const vStringInterpolation @318
         type: String
         constantInitializer
@@ -14713,18 +14701,18 @@
               InterpolationString
                 contents: 'aaa  @341
               InterpolationExpression
+                leftBracket: ${ @346
                 expression: BooleanLiteral
                   literal: true @348
                   staticType: bool
-                leftBracket: ${ @346
                 rightBracket: } @352
               InterpolationString
                 contents:   @353
               InterpolationExpression
+                leftBracket: ${ @354
                 expression: IntegerLiteral
                   literal: 42 @356
                   staticType: int
-                leftBracket: ${ @354
                 rightBracket: } @358
               InterpolationString
                 contents:  bbb' @359
@@ -14734,6 +14722,7 @@
         type: Symbol
         constantInitializer
           SymbolLiteral
+            poundSign: # @382
             components
               components: aaa
                 offset: 383
@@ -14741,7 +14730,6 @@
                 offset: 387
               components: ccc
                 offset: 391
-            poundSign: # @382
     accessors
       synthetic static get vNull @-1
         returnType: dynamic
@@ -14791,20 +14779,20 @@
         type: String?
         constantInitializer
           MethodInvocation
+            target: SimpleIdentifier
+              token: a @28
+              staticElement: self::@getter::a
+              staticType: int?
+            operator: ?. @29
+            methodName: SimpleIdentifier
+              token: toString @31
+              staticElement: dart:core::@class::int::@method::toString
+              staticType: String Function()
             argumentList: ArgumentList
               leftParenthesis: ( @39
               rightParenthesis: ) @40
-            methodName: SimpleIdentifier
-              staticElement: dart:core::@class::int::@method::toString
-              staticType: String Function()
-              token: toString @31
-            operator: ?. @29
             staticInvokeType: String Function()
             staticType: String?
-            target: SimpleIdentifier
-              staticElement: self::@getter::a
-              staticType: int?
-              token: a @28
     accessors
       synthetic static get a @-1
         returnType: int?
@@ -14832,23 +14820,23 @@
         type: int?
         constantInitializer
           CascadeExpression
+            target: SimpleIdentifier
+              token: a @28
+              staticElement: self::@getter::a
+              staticType: int?
             cascadeSections
               MethodInvocation
+                operator: ?.. @29
+                methodName: SimpleIdentifier
+                  token: toString @32
+                  staticElement: dart:core::@class::int::@method::toString
+                  staticType: String Function()
                 argumentList: ArgumentList
                   leftParenthesis: ( @40
                   rightParenthesis: ) @41
-                methodName: SimpleIdentifier
-                  staticElement: dart:core::@class::int::@method::toString
-                  staticType: String Function()
-                  token: toString @32
-                operator: ?.. @29
                 staticInvokeType: String Function()
                 staticType: String
             staticType: int?
-            target: SimpleIdentifier
-              staticElement: self::@getter::a
-              staticType: int?
-              token: a @28
     accessors
       synthetic static get a @-1
         returnType: int?
@@ -14878,19 +14866,19 @@
         type: List<int?>
         constantInitializer
           ListLiteral
+            leftBracket: [ @44
             elements
               PropertyAccess
-                operator: ?. @49
-                propertyName: SimpleIdentifier
-                  staticElement: dart:core::@class::String::@getter::length
-                  staticType: int
-                  token: length @51
-                staticType: int?
                 target: SimpleIdentifier
+                  token: a @48
                   staticElement: self::@getter::a
                   staticType: String?
-                  token: a @48
-            leftBracket: [ @44
+                operator: ?. @49
+                propertyName: SimpleIdentifier
+                  token: length @51
+                  staticElement: dart:core::@class::String::@getter::length
+                  staticType: int
+                staticType: int?
             rightBracket: ] @59
             staticType: List<int?>
     accessors
@@ -14916,6 +14904,7 @@
         constantInitializer
           BinaryExpression
             leftOperand: ParenthesizedExpression
+              leftParenthesis: ( @15
               expression: BinaryExpression
                 leftOperand: IntegerLiteral
                   literal: 1 @16
@@ -14927,7 +14916,6 @@
                 staticElement: dart:core::@class::num::@method::+
                 staticInvokeType: num Function(num)
                 staticType: int
-              leftParenthesis: ( @15
               rightParenthesis: ) @21
               staticType: int
             operator: * @23
@@ -14941,7 +14929,9 @@
         type: int
         constantInitializer
           PrefixExpression
+            operator: - @43
             operand: ParenthesizedExpression
+              leftParenthesis: ( @44
               expression: BinaryExpression
                 leftOperand: IntegerLiteral
                   literal: 1 @45
@@ -14953,23 +14943,16 @@
                 staticElement: dart:core::@class::num::@method::+
                 staticInvokeType: num Function(num)
                 staticType: int
-              leftParenthesis: ( @44
               rightParenthesis: ) @50
               staticType: int
-            operator: - @43
             staticElement: dart:core::@class::int::@method::unary-
             staticType: int
       static const v3 @63
         type: int
         constantInitializer
           PropertyAccess
-            operator: . @83
-            propertyName: SimpleIdentifier
-              staticElement: dart:core::@class::String::@getter::length
-              staticType: int
-              token: length @84
-            staticType: int
             target: ParenthesizedExpression
+              leftParenthesis: ( @68
               expression: BinaryExpression
                 leftOperand: SimpleStringLiteral
                   literal: 'aaa' @69
@@ -14979,9 +14962,14 @@
                 staticElement: dart:core::@class::String::@method::+
                 staticInvokeType: String Function(String)
                 staticType: String
-              leftParenthesis: ( @68
               rightParenthesis: ) @82
               staticType: String
+            operator: . @83
+            propertyName: SimpleIdentifier
+              token: length @84
+              staticElement: dart:core::@class::String::@getter::length
+              staticType: int
+            staticType: int
     accessors
       synthetic static get v1 @-1
         returnType: int
@@ -15021,30 +15009,30 @@
         type: bool
         constantInitializer
           PrefixExpression
+            operator: ! @39
             operand: BooleanLiteral
               literal: true @40
               staticType: bool
-            operator: ! @39
             staticElement: <null>
             staticType: bool
       static const vNegate @52
         type: int
         constantInitializer
           PrefixExpression
+            operator: - @62
             operand: IntegerLiteral
               literal: 1 @63
               staticType: int
-            operator: - @62
             staticElement: dart:core::@class::int::@method::unary-
             staticType: int
       static const vComplement @72
         type: int
         constantInitializer
           PrefixExpression
+            operator: ~ @86
             operand: IntegerLiteral
               literal: 1 @87
               staticType: int
-            operator: ~ @86
             staticElement: dart:core::@class::int::@method::~
             staticType: int
     accessors
@@ -15071,8 +15059,8 @@
         type: dynamic
         constantInitializer
           SuperExpression
-            staticType: dynamic
             superKeyword: super @15
+            staticType: dynamic
     accessors
       synthetic static get vSuper @-1
         returnType: dynamic
@@ -15091,8 +15079,8 @@
         type: dynamic
         constantInitializer
           ThisExpression
-            staticType: dynamic
             thisKeyword: this @14
+            staticType: dynamic
     accessors
       synthetic static get vThis @-1
         returnType: dynamic
@@ -15111,6 +15099,7 @@
         type: Never
         constantInitializer
           ThrowExpression
+            throwKeyword: throw @10
             expression: IntegerLiteral
               literal: 42 @16
               staticType: int
@@ -15134,6 +15123,7 @@
         type: dynamic
         constantInitializer
           ThrowExpression
+            throwKeyword: throw @10
             expression: IntegerLiteral
               literal: 42 @16
               staticType: int*
@@ -15162,24 +15152,35 @@
         constantInitializer
           ListLiteral
             constKeyword: const @14
-            leftBracket: [ @26
-            rightBracket: ] @27
-            staticType: List<Null>
             typeArguments: TypeArgumentList
+              leftBracket: < @20
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: Null @21
                     staticElement: dart:core::@class::Null
                     staticType: null
-                    token: Null @21
                   type: Null
-              leftBracket: < @20
               rightBracket: > @25
+            leftBracket: [ @26
+            rightBracket: ] @27
+            staticType: List<Null>
       static const vDynamic @36
         type: List<dynamic>
         constantInitializer
           ListLiteral
             constKeyword: const @47
+            typeArguments: TypeArgumentList
+              leftBracket: < @53
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: dynamic @54
+                    staticElement: dynamic@-1
+                    staticType: null
+                  type: dynamic
+              rightBracket: > @61
+            leftBracket: [ @62
             elements
               IntegerLiteral
                 literal: 1 @63
@@ -15190,24 +15191,24 @@
               IntegerLiteral
                 literal: 3 @69
                 staticType: int
-            leftBracket: [ @62
             rightBracket: ] @70
             staticType: List<dynamic>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dynamic@-1
-                    staticType: null
-                    token: dynamic @54
-                  type: dynamic
-              leftBracket: < @53
-              rightBracket: > @61
       static const vInterfaceNoTypeParameters @79
         type: List<int>
         constantInitializer
           ListLiteral
             constKeyword: const @108
+            typeArguments: TypeArgumentList
+              leftBracket: < @114
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @115
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @118
+            leftBracket: [ @119
             elements
               IntegerLiteral
                 literal: 1 @120
@@ -15218,109 +15219,98 @@
               IntegerLiteral
                 literal: 3 @126
                 staticType: int
-            leftBracket: [ @119
             rightBracket: ] @127
             staticType: List<int>
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @115
-                  type: int
-              leftBracket: < @114
-              rightBracket: > @118
       static const vInterfaceNoTypeArguments @136
         type: List<List<dynamic>>
         constantInitializer
           ListLiteral
             constKeyword: const @164
-            leftBracket: [ @176
-            rightBracket: ] @177
-            staticType: List<List<dynamic>>
             typeArguments: TypeArgumentList
+              leftBracket: < @170
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: List @171
                     staticElement: dart:core::@class::List
                     staticType: null
-                    token: List @171
                   type: List<dynamic>
-              leftBracket: < @170
               rightBracket: > @175
+            leftBracket: [ @176
+            rightBracket: ] @177
+            staticType: List<List<dynamic>>
       static const vInterfaceWithTypeArguments @186
         type: List<List<String>>
         constantInitializer
           ListLiteral
             constKeyword: const @216
-            leftBracket: [ @236
-            rightBracket: ] @237
-            staticType: List<List<String>>
             typeArguments: TypeArgumentList
+              leftBracket: < @222
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: List @223
                     staticElement: dart:core::@class::List
                     staticType: null
-                    token: List @223
-                  type: List<String>
                   typeArguments: TypeArgumentList
+                    leftBracket: < @227
                     arguments
                       NamedType
                         name: SimpleIdentifier
+                          token: String @228
                           staticElement: dart:core::@class::String
                           staticType: null
-                          token: String @228
                         type: String
-                    leftBracket: < @227
                     rightBracket: > @234
-              leftBracket: < @222
+                  type: List<String>
               rightBracket: > @235
+            leftBracket: [ @236
+            rightBracket: ] @237
+            staticType: List<List<String>>
       static const vInterfaceWithTypeArguments2 @246
         type: List<Map<int, List<String>>>
         constantInitializer
           ListLiteral
             constKeyword: const @277
-            leftBracket: [ @307
-            rightBracket: ] @308
-            staticType: List<Map<int, List<String>>>
             typeArguments: TypeArgumentList
+              leftBracket: < @283
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: Map @284
                     staticElement: dart:core::@class::Map
                     staticType: null
-                    token: Map @284
-                  type: Map<int, List<String>>
                   typeArguments: TypeArgumentList
+                    leftBracket: < @287
                     arguments
                       NamedType
                         name: SimpleIdentifier
+                          token: int @288
                           staticElement: dart:core::@class::int
                           staticType: null
-                          token: int @288
                         type: int
                       NamedType
                         name: SimpleIdentifier
+                          token: List @293
                           staticElement: dart:core::@class::List
                           staticType: null
-                          token: List @293
-                        type: List<String>
                         typeArguments: TypeArgumentList
+                          leftBracket: < @297
                           arguments
                             NamedType
                               name: SimpleIdentifier
+                                token: String @298
                                 staticElement: dart:core::@class::String
                                 staticType: null
-                                token: String @298
                               type: String
-                          leftBracket: < @297
                           rightBracket: > @304
-                    leftBracket: < @287
+                        type: List<String>
                     rightBracket: > @305
-              leftBracket: < @283
+                  type: Map<int, List<String>>
               rightBracket: > @306
+            leftBracket: [ @307
+            rightBracket: ] @308
+            staticType: List<Map<int, List<String>>>
     accessors
       synthetic static get vNull @-1
         returnType: List<Null>
@@ -15354,19 +15344,19 @@
         constantInitializer
           ListLiteral
             constKeyword: const @27
-            leftBracket: [ @36
-            rightBracket: ] @37
-            staticType: List<C>
             typeArguments: TypeArgumentList
+              leftBracket: < @33
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: C @34
                     staticElement: a.dart::@class::C
                     staticType: null
-                    token: C @34
                   type: C
-              leftBracket: < @33
               rightBracket: > @35
+            leftBracket: [ @36
+            rightBracket: ] @37
+            staticType: List<C>
     accessors
       synthetic static get v @-1
         returnType: List<C>
@@ -15390,27 +15380,27 @@
         constantInitializer
           ListLiteral
             constKeyword: const @32
-            leftBracket: [ @43
-            rightBracket: ] @44
-            staticType: List<C>
             typeArguments: TypeArgumentList
+              leftBracket: < @38
               arguments
                 NamedType
                   name: PrefixedIdentifier
-                    identifier: SimpleIdentifier
-                      staticElement: a.dart::@class::C
-                      staticType: null
-                      token: C @41
-                    period: . @40
                     prefix: SimpleIdentifier
+                      token: p @39
                       staticElement: self::@prefix::p
                       staticType: null
-                      token: p @39
+                    period: . @40
+                    identifier: SimpleIdentifier
+                      token: C @41
+                      staticElement: a.dart::@class::C
+                      staticType: null
                     staticElement: a.dart::@class::C
                     staticType: null
                   type: C
-              leftBracket: < @38
               rightBracket: > @42
+            leftBracket: [ @43
+            rightBracket: ] @44
+            staticType: List<C>
     accessors
       synthetic static get v @-1
         returnType: List<C>
@@ -15439,19 +15429,19 @@
         constantInitializer
           ListLiteral
             constKeyword: const @36
-            leftBracket: [ @45
-            rightBracket: ] @46
-            staticType: List<int Function(String)>
             typeArguments: TypeArgumentList
+              leftBracket: < @42
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: F @43
                     staticElement: self::@typeAlias::F
                     staticType: null
-                    token: F @43
                   type: int Function(String)
-              leftBracket: < @42
               rightBracket: > @44
+            leftBracket: [ @45
+            rightBracket: ] @46
+            staticType: List<int Function(String)>
     accessors
       synthetic static get v @-1
         returnType: List<int Function(String)>
@@ -15474,111 +15464,111 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @18
-            isMap: true
-            leftBracket: { @38
-            rightBracket: } @39
-            staticType: Map<dynamic, int>
             typeArguments: TypeArgumentList
+              leftBracket: < @24
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: dynamic @25
                     staticElement: dynamic@-1
                     staticType: null
-                    token: dynamic @25
                   type: dynamic
                 NamedType
                   name: SimpleIdentifier
+                    token: int @34
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @34
                   type: int
-              leftBracket: < @24
               rightBracket: > @37
+            leftBracket: { @38
+            rightBracket: } @39
+            isMap: true
+            staticType: Map<dynamic, int>
       static const vDynamic2 @48
         type: Map<int, dynamic>
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @60
-            isMap: true
-            leftBracket: { @80
-            rightBracket: } @81
-            staticType: Map<int, dynamic>
             typeArguments: TypeArgumentList
+              leftBracket: < @66
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @67
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @67
                   type: int
                 NamedType
                   name: SimpleIdentifier
+                    token: dynamic @72
                     staticElement: dynamic@-1
                     staticType: null
-                    token: dynamic @72
                   type: dynamic
-              leftBracket: < @66
               rightBracket: > @79
+            leftBracket: { @80
+            rightBracket: } @81
+            isMap: true
+            staticType: Map<int, dynamic>
       static const vInterface @90
         type: Map<int, String>
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @103
-            isMap: true
-            leftBracket: { @122
-            rightBracket: } @123
-            staticType: Map<int, String>
             typeArguments: TypeArgumentList
+              leftBracket: < @109
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @110
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @110
                   type: int
                 NamedType
                   name: SimpleIdentifier
+                    token: String @115
                     staticElement: dart:core::@class::String
                     staticType: null
-                    token: String @115
                   type: String
-              leftBracket: < @109
               rightBracket: > @121
+            leftBracket: { @122
+            rightBracket: } @123
+            isMap: true
+            staticType: Map<int, String>
       static const vInterfaceWithTypeArguments @132
         type: Map<int, List<String>>
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @162
-            isMap: true
-            leftBracket: { @187
-            rightBracket: } @188
-            staticType: Map<int, List<String>>
             typeArguments: TypeArgumentList
+              leftBracket: < @168
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @169
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @169
                   type: int
                 NamedType
                   name: SimpleIdentifier
+                    token: List @174
                     staticElement: dart:core::@class::List
                     staticType: null
-                    token: List @174
-                  type: List<String>
                   typeArguments: TypeArgumentList
+                    leftBracket: < @178
                     arguments
                       NamedType
                         name: SimpleIdentifier
+                          token: String @179
                           staticElement: dart:core::@class::String
                           staticType: null
-                          token: String @179
                         type: String
-                    leftBracket: < @178
                     rightBracket: > @185
-              leftBracket: < @168
+                  type: List<String>
               rightBracket: > @186
+            leftBracket: { @187
+            rightBracket: } @188
+            isMap: true
+            staticType: Map<int, List<String>>
     accessors
       synthetic static get vDynamic1 @-1
         returnType: Map<dynamic, int>
@@ -15606,68 +15596,68 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @18
-            isMap: false
-            leftBracket: { @33
-            rightBracket: } @34
-            staticType: Set<dynamic>
             typeArguments: TypeArgumentList
+              leftBracket: < @24
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: dynamic @25
                     staticElement: dynamic@-1
                     staticType: null
-                    token: dynamic @25
                   type: dynamic
-              leftBracket: < @24
               rightBracket: > @32
+            leftBracket: { @33
+            rightBracket: } @34
+            isMap: false
+            staticType: Set<dynamic>
       static const vInterface @43
         type: Set<int>
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @56
-            isMap: false
-            leftBracket: { @67
-            rightBracket: } @68
-            staticType: Set<int>
             typeArguments: TypeArgumentList
+              leftBracket: < @62
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @63
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @63
                   type: int
-              leftBracket: < @62
               rightBracket: > @66
+            leftBracket: { @67
+            rightBracket: } @68
+            isMap: false
+            staticType: Set<int>
       static const vInterfaceWithTypeArguments @77
         type: Set<List<String>>
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @107
-            isMap: false
-            leftBracket: { @127
-            rightBracket: } @128
-            staticType: Set<List<String>>
             typeArguments: TypeArgumentList
+              leftBracket: < @113
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: List @114
                     staticElement: dart:core::@class::List
                     staticType: null
-                    token: List @114
-                  type: List<String>
                   typeArguments: TypeArgumentList
+                    leftBracket: < @118
                     arguments
                       NamedType
                         name: SimpleIdentifier
+                          token: String @119
                           staticElement: dart:core::@class::String
                           staticType: null
-                          token: String @119
                         type: String
-                    leftBracket: < @118
                     rightBracket: > @125
-              leftBracket: < @113
+                  type: List<String>
               rightBracket: > @126
+            leftBracket: { @127
+            rightBracket: } @128
+            isMap: false
+            staticType: Set<List<String>>
     accessors
       synthetic static get vDynamic1 @-1
         returnType: Set<dynamic>
@@ -15691,6 +15681,7 @@
         constantInitializer
           ListLiteral
             constKeyword: const @10
+            leftBracket: [ @16
             elements
               IntegerLiteral
                 literal: 1 @17
@@ -15701,7 +15692,6 @@
               IntegerLiteral
                 literal: 3 @23
                 staticType: int
-            leftBracket: [ @16
             rightBracket: ] @24
             staticType: List<int>
     accessors
@@ -15723,28 +15713,31 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @10
+            leftBracket: { @16
             elements
               SetOrMapLiteral
                 key: IntegerLiteral
                   literal: 0 @17
                   staticType: int
+                separator: : @18
                 value: SimpleStringLiteral
                   literal: 'aaa' @20
               SetOrMapLiteral
                 key: IntegerLiteral
                   literal: 1 @27
                   staticType: int
+                separator: : @28
                 value: SimpleStringLiteral
                   literal: 'bbb' @30
               SetOrMapLiteral
                 key: IntegerLiteral
                   literal: 2 @37
                   staticType: int
+                separator: : @38
                 value: SimpleStringLiteral
                   literal: 'ccc' @40
-            isMap: true
-            leftBracket: { @16
             rightBracket: } @45
+            isMap: true
             staticType: Map<int, String>
     accessors
       synthetic static get v @-1
@@ -15765,6 +15758,7 @@
         constantInitializer
           SetOrMapLiteral
             constKeyword: const @10
+            leftBracket: { @16
             elements
               IntegerLiteral
                 literal: 0 @17
@@ -15775,9 +15769,8 @@
               IntegerLiteral
                 literal: 2 @23
                 staticType: int
-            isMap: false
-            leftBracket: { @16
             rightBracket: } @24
+            isMap: false
             staticType: Set<int>
     accessors
       synthetic static get v @-1
@@ -15797,23 +15790,23 @@
         type: Type
         constantInitializer
           TypeLiteral
-            staticType: Type
             type: NamedType
               name: SimpleIdentifier
+                token: List @10
                 staticElement: dart:core::@class::List
                 staticType: List<int>
-                token: List @10
-              type: List<int>
               typeArguments: TypeArgumentList
+                leftBracket: < @14
                 arguments
                   NamedType
                     name: SimpleIdentifier
+                      token: int @15
                       staticElement: dart:core::@class::int
                       staticType: null
-                      token: int @15
                     type: int
-                leftBracket: < @14
                 rightBracket: > @18
+              type: List<int>
+            staticType: Type
     accessors
       synthetic static get v @-1
         returnType: Type
@@ -15838,83 +15831,83 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @11
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant c @14
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
                   SimpleIdentifier
+                    token: c @-1
                     staticElement: self::@enum::E::@getter::c
                     staticType: E
-                    token: c @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -15961,33 +15954,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -16023,9 +16016,9 @@
             type: dynamic
             constantInitializer
               SimpleIdentifier
+                token: b @29
                 staticElement: self::@class::C::@getter::b
                 staticType: dynamic
-                token: b @29
           static const b @47
             type: dynamic
             constantInitializer
@@ -16059,9 +16052,9 @@
             type: dynamic Function()
             constantInitializer
               SimpleIdentifier
+                token: m @29
                 staticElement: self::@class::C::@method::m
                 staticType: dynamic Function()
-                token: m @29
         constructors
           synthetic @-1
         accessors
@@ -16169,9 +16162,9 @@
                 constantInitializer
                   FunctionReference
                     function: SimpleIdentifier
+                      token: defaultF @93
                       staticElement: self::@function::defaultF
                       staticType: void Function<T>(T)
-                      token: defaultF @93
                     staticType: void Function(dynamic)
                     typeArgumentTypes
                       dynamic
@@ -16233,34 +16226,34 @@
                 type: dynamic
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @72
-                      rightParenthesis: ) @73
+                    keyword: const @53
                     constructorName: ConstructorName
-                      staticElement: ConstructorMember
-                        base: self::@class::A::@constructor::•
-                        substitution: {T: dynamic Function()}
                       type: NamedType
                         name: SimpleIdentifier
+                          token: A @59
                           staticElement: self::@class::A
                           staticType: null
-                          token: A @59
-                        type: A<dynamic Function()>
                         typeArguments: TypeArgumentList
+                          leftBracket: < @60
                           arguments
                             GenericFunctionType
-                              declaredElement: GenericFunctionTypeElement
-                                parameters
-                                returnType: dynamic
-                                type: dynamic Function()
                               functionKeyword: Function @61
                               parameters: FormalParameterList
                                 leftParenthesis: ( @69
                                 rightParenthesis: ) @70
+                              declaredElement: GenericFunctionTypeElement
+                                parameters
+                                returnType: dynamic
+                                type: dynamic Function()
                               type: dynamic Function()
-                          leftBracket: < @60
                           rightBracket: > @71
-                    keyword: const @53
+                        type: A<dynamic Function()>
+                      staticElement: ConstructorMember
+                        base: self::@class::A::@constructor::•
+                        substitution: {T: dynamic Function()}
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @72
+                      rightParenthesis: ) @73
                     staticType: A<dynamic Function()>
             returnType: void
 ''');
@@ -16287,13 +16280,13 @@
                       literal: 0 @14
                       staticType: int
                     isOperator: is @16
-                    staticType: bool
                     type: NamedType
                       name: SimpleIdentifier
+                        token: int @19
                         staticElement: dart:core::@class::int
                         staticType: null
-                        token: int @19
                       type: int
+                    staticType: bool
         returnType: void
 ''');
   }
@@ -16316,17 +16309,17 @@
                 dynamic
             constantInitializer
               PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: Comparable @32
+                  staticElement: dart:core::@class::Comparable
+                  staticType: null
+                period: . @42
                 identifier: SimpleIdentifier
+                  token: compare @43
                   staticElement: MethodMember
                     base: dart:core::@class::Comparable::@method::compare
                     substitution: {}
                   staticType: int* Function(Comparable<dynamic>*, Comparable<dynamic>*)*
-                  token: compare @43
-                period: . @42
-                prefix: SimpleIdentifier
-                  staticElement: dart:core::@class::Comparable
-                  staticType: null
-                  token: Comparable @32
                 staticElement: MethodMember
                   base: dart:core::@class::Comparable::@method::compare
                   substitution: {}
@@ -16362,9 +16355,9 @@
                 type: Object
                 constantInitializer
                   SimpleIdentifier
+                    token: f @79
                     staticElement: self::@extension::E::@method::f
                     staticType: void Function()
-                    token: f @79
             returnType: void
 ''');
   }
@@ -16400,20 +16393,20 @@
                 type: B<int, double>
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @81
-                      rightParenthesis: ) @82
+                    keyword: const @74
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @80
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<int, double>
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T1: int, T2: double}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @80
-                        type: B<int, double>
-                    keyword: const @74
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @81
+                      rightParenthesis: ) @82
                     staticType: B<int, double>
             returnType: void
 ''');
@@ -16449,20 +16442,20 @@
                 type: B<T>
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @68
-                      rightParenthesis: ) @69
+                    keyword: const @61
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @67
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<Never>
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T: Never}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @67
-                        type: B<Never>
-                    keyword: const @61
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @68
+                      rightParenthesis: ) @69
                     staticType: B<Never>
 ''');
   }
@@ -16508,20 +16501,20 @@
                 type: A<T>
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @133
-                      rightParenthesis: ) @134
+                    keyword: const @126
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @132
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<Never>
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T: Never}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @132
-                        type: B<Never>
-                    keyword: const @126
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @133
+                      rightParenthesis: ) @134
                     staticType: B<Never>
 ''');
   }
@@ -16568,20 +16561,20 @@
                 type: A<T*>*
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @133
-                      rightParenthesis: ) @134
+                    keyword: const @126
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @132
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<Null*>*
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T: Null*}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @132
-                        type: B<Null*>*
-                    keyword: const @126
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @133
+                      rightParenthesis: ) @134
                     staticType: B<Null*>*
 ''');
   }
@@ -16617,20 +16610,20 @@
                 type: B<T*>*
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @68
-                      rightParenthesis: ) @69
+                    keyword: const @61
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @67
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<Null*>*
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T: Null*}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @67
-                        type: B<Null*>*
-                    keyword: const @61
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @68
+                      rightParenthesis: ) @69
                     staticType: B<Null*>*
 ''');
   }
@@ -16661,20 +16654,20 @@
             type: B<T>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @57
-                  rightParenthesis: ) @58
+                keyword: const @50
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: B @56
+                      staticElement: self::@class::B
+                      staticType: null
+                    type: B<Never>
                   staticElement: ConstructorMember
                     base: self::@class::B::@constructor::•
                     substitution: {T: Never}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@class::B
-                      staticType: null
-                      token: B @56
-                    type: B<Never>
-                keyword: const @50
+                argumentList: ArgumentList
+                  leftParenthesis: ( @57
+                  rightParenthesis: ) @58
                 staticType: B<Never>
         returnType: void
 ''');
@@ -16711,20 +16704,20 @@
                 type: B<T>
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @69
-                      rightParenthesis: ) @70
+                    keyword: const @62
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @68
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<Never>
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T: Never}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @68
-                        type: B<Never>
-                    keyword: const @62
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @69
+                      rightParenthesis: ) @70
                     staticType: B<Never>
             returnType: void
 ''');
@@ -16766,20 +16759,20 @@
                 type: B<E1, E2>
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @84
-                      rightParenthesis: ) @85
+                    keyword: const @77
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @83
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<Never, Never>
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T1: Never, T2: Never}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @83
-                        type: B<Never, Never>
-                    keyword: const @77
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @84
+                      rightParenthesis: ) @85
                     staticType: B<Never, Never>
             returnType: void
 ''');
@@ -16817,20 +16810,20 @@
                 type: B<T>
                 constantInitializer
                   InstanceCreationExpression
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @69
-                      rightParenthesis: ) @70
+                    keyword: const @62
                     constructorName: ConstructorName
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: B @68
+                          staticElement: self::@class::B
+                          staticType: null
+                        type: B<Never>
                       staticElement: ConstructorMember
                         base: self::@class::B::@constructor::•
                         substitution: {T: Never}
-                      type: NamedType
-                        name: SimpleIdentifier
-                          staticElement: self::@class::B
-                          staticType: null
-                          token: B @68
-                        type: B<Never>
-                    keyword: const @62
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @69
+                      rightParenthesis: ) @70
                     staticType: B<Never>
             returnType: void
 ''');
@@ -16910,11 +16903,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::A::@constructor::•
       class alias X @48
         supertype: B
@@ -16924,11 +16917,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::B::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::B::@constructor::•
     mixins
       mixin M @68
@@ -16955,58 +16948,58 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @11
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -17025,83 +17018,83 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant d @25
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant e @28
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: c @-1
                     staticElement: self::@enum::E::@getter::c
                     staticType: E
-                    token: c @-1
                   SimpleIdentifier
+                    token: d @-1
                     staticElement: self::@enum::E::@getter::d
                     staticType: E
-                    token: d @-1
                   SimpleIdentifier
+                    token: e @-1
                     staticElement: self::@enum::E::@getter::e
                     staticType: E
-                    token: e @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -17354,73 +17347,73 @@
             type: E<int>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  arguments
-                    IntegerLiteral
-                      literal: 1 @18
-                      staticType: int
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<int>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {T: int}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {T: int}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<int>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    IntegerLiteral
+                      literal: 1 @18
+                      staticType: int
+                  rightParenthesis: ) @0
                 staticType: E<int>
           static const enumConstant string @22
             type: E<String>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  arguments
-                    SimpleStringLiteral
-                      literal: '2' @29
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<String>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {T: String}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {T: String}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<String>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    SimpleStringLiteral
+                      literal: '2' @29
+                  rightParenthesis: ) @0
                 staticType: E<String>
           synthetic static const values @-1
             type: List<E<dynamic>>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: int @-1
                     staticElement: self::@enum::E::@getter::int
                     staticType: E<int>
-                    token: int @-1
                   SimpleIdentifier
+                    token: string @-1
                     staticElement: self::@enum::E::@getter::string
                     staticType: E<String>
-                    token: string @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E<dynamic>>
         constructors
@@ -17456,33 +17449,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: _name @-1
                     staticElement: self::@enum::E::@getter::_name
                     staticType: E
-                    token: _name @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -17516,51 +17509,51 @@
             type: E<double>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  arguments
-                    IntegerLiteral
-                      literal: 42 @24
-                      staticType: double
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @15
+                      arguments
+                        NamedType
+                          name: SimpleIdentifier
+                            token: double @16
+                            staticElement: dart:core::@class::double
+                            staticType: null
+                          type: double
+                      rightBracket: > @22
+                    type: E<double>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {T: double}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {T: double}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<double>
-                    typeArguments: TypeArgumentList
-                      arguments
-                        NamedType
-                          name: SimpleIdentifier
-                            staticElement: dart:core::@class::double
-                            staticType: null
-                            token: double @16
-                          type: double
-                      leftBracket: < @15
-                      rightBracket: > @22
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  arguments
+                    IntegerLiteral
+                      literal: 42 @24
+                      staticType: double
+                  rightParenthesis: ) @0
                 staticType: E<double>
           synthetic static const values @-1
             type: List<E<dynamic>>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E<double>
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E<dynamic>>
         constructors
@@ -17593,33 +17586,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: _ @-1
                     staticElement: self::@enum::E::@getter::_
                     staticType: E
-                    token: _ @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -17650,33 +17643,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -17710,33 +17703,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -17768,33 +17761,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           final x @22
@@ -17838,33 +17831,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           final x @26
@@ -17907,33 +17900,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -17969,33 +17962,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           final x @26
@@ -18035,33 +18028,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           final x @22
@@ -18101,33 +18094,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           final x @22
@@ -18166,37 +18159,37 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: named @-1
+                    staticElement: self::@enum::E::@constructor::named
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::named
                 argumentList: ArgumentList
+                  leftParenthesis: ( @0
                   arguments
                     IntegerLiteral
                       literal: 42 @19
                       staticType: int
-                  leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::named
-                    staticType: null
-                    token: named @-1
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::named
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18232,37 +18225,37 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
+                  leftParenthesis: ( @0
                   arguments
                     IntegerLiteral
                       literal: 42 @13
                       staticType: int
-                  leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18297,33 +18290,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18354,33 +18347,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           final foo @22
@@ -18419,33 +18412,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           synthetic foo @-1
@@ -18486,33 +18479,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18555,37 +18548,37 @@
             type: E<dynamic>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<dynamic>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {U: dynamic}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {U: dynamic}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<dynamic>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
                 staticType: E<dynamic>
           synthetic static const values @-1
             type: List<E<dynamic>>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E<dynamic>
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E<dynamic>>
         constructors
@@ -18627,33 +18620,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18687,37 +18680,37 @@
             type: E<dynamic>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<dynamic>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {T: dynamic}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {T: dynamic}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<dynamic>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
                 staticType: E<dynamic>
           synthetic static const values @-1
             type: List<E<dynamic>>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E<dynamic>
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E<dynamic>>
         constructors
@@ -18758,33 +18751,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18820,33 +18813,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18887,33 +18880,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -18961,33 +18954,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
           synthetic foo @-1
@@ -19027,37 +19020,37 @@
             type: E<dynamic>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<dynamic>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {T: dynamic}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {T: dynamic}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<dynamic>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
                 staticType: E<dynamic>
           synthetic static const values @-1
             type: List<E<dynamic>>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E<dynamic>
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E<dynamic>>
         constructors
@@ -19094,37 +19087,37 @@
             type: E<num, num>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<num, num>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {T: num, U: num}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {T: num, U: num}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<num, num>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
                 staticType: E<num, num>
           synthetic static const values @-1
             type: List<E<num, num>>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E<num, num>
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E<num, num>>
         constructors
@@ -19375,59 +19368,59 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @47
             documentationComment: /// bbb
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -19469,75 +19462,75 @@
             metadata
               Annotation
                 atSign: @ @32
-                element: self::@getter::annotation
                 name: SimpleIdentifier
+                  token: annotation @33
                   staticElement: self::@getter::annotation
                   staticType: null
-                  token: annotation @33
+                element: self::@getter::annotation
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @75
             documentationComment: /// bbb
             metadata
               Annotation
                 atSign: @ @61
-                element: self::@getter::annotation
                 name: SimpleIdentifier
+                  token: annotation @62
                   staticElement: self::@getter::annotation
                   staticType: null
-                  token: annotation @62
+                element: self::@getter::annotation
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -19575,58 +19568,58 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant v2 @13
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v1 @-1
                     staticElement: self::@enum::E::@getter::v1
                     staticType: E
-                    token: v1 @-1
                   SimpleIdentifier
+                    token: v2 @-1
                     staticElement: self::@enum::E::@getter::v2
                     staticType: E
-                    token: v2 @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -19654,33 +19647,33 @@
             type: E1
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E1 @-1
+                      staticElement: self::@enum::E1
+                      staticType: null
+                    type: E1
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E1::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E1::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E1::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E1::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E1
-                      staticType: null
-                      token: E1 @-1
-                    type: E1
                 staticType: E1
           synthetic static const values @-1
             type: List<E1>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v1 @-1
                     staticElement: self::@enum::E1::@getter::v1
                     staticType: E1
-                    token: v1 @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E1>
         constructors
@@ -19697,33 +19690,33 @@
             type: E2
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E2 @-1
+                      staticElement: self::@enum::E2
+                      staticType: null
+                    type: E2
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E2::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E2::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E2::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E2::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E2
-                      staticType: null
-                      token: E2 @-1
-                    type: E2
                 staticType: E2
           synthetic static const values @-1
             type: List<E2>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v2 @-1
                     staticElement: self::@enum::E2::@getter::v2
                     staticType: E2
-                    token: v2 @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E2>
         constructors
@@ -19794,11 +19787,11 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: dart:core::@class::Object::@constructor::•
-                superKeyword: super @0
     enums
       enum E @5
         supertype: Enum
@@ -19807,83 +19800,83 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @11
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant c @14
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
                   SimpleIdentifier
+                    token: c @-1
                     staticElement: self::@enum::E::@getter::c
                     staticType: E
-                    token: c @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -21178,9 +21171,9 @@
         type: Type
         constantInitializer
           SimpleIdentifier
+            token: FutureOr @31
             staticElement: dart:async::@class::FutureOr
             staticType: Type
-            token: FutureOr @31
     accessors
       synthetic static get x @-1
         returnType: Type
@@ -21465,20 +21458,38 @@
       class B @64
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @55
-              rightParenthesis: ) @56
             atSign: @ @29
-            element: ConstructorMember
-              base: self::@class::A::@constructor::•
-              substitution: {T: int Function(String)}
             name: SimpleIdentifier
+              token: A @30
               staticElement: self::@class::A
               staticType: null
-              token: A @30
             typeArguments: TypeArgumentList
+              leftBracket: < @31
               arguments
                 GenericFunctionType
+                  returnType: NamedType
+                    name: SimpleIdentifier
+                      token: int @32
+                      staticElement: dart:core::@class::int
+                      staticType: null
+                    type: int
+                  functionKeyword: Function @36
+                  parameters: FormalParameterList
+                    leftParenthesis: ( @44
+                    parameter: SimpleFormalParameter
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: String @45
+                          staticElement: dart:core::@class::String
+                          staticType: null
+                        type: String
+                      identifier: SimpleIdentifier
+                        token: a @52
+                        staticElement: a@52
+                        staticType: null
+                      declaredElement: a@52
+                      declaredElementType: String
+                    rightParenthesis: ) @53
                   declaredElement: GenericFunctionTypeElement
                     parameters
                       a
@@ -21486,33 +21497,14 @@
                         type: String
                     returnType: int
                     type: int Function(String)
-                  functionKeyword: Function @36
-                  parameters: FormalParameterList
-                    leftParenthesis: ( @44
-                    parameters
-                      SimpleFormalParameter
-                        declaredElement: a@52
-                        declaredElementType: String
-                        identifier: SimpleIdentifier
-                          staticElement: a@52
-                          staticType: null
-                          token: a @52
-                        type: NamedType
-                          name: SimpleIdentifier
-                            staticElement: dart:core::@class::String
-                            staticType: null
-                            token: String @45
-                          type: String
-                    rightParenthesis: ) @53
-                  returnType: NamedType
-                    name: SimpleIdentifier
-                      staticElement: dart:core::@class::int
-                      staticType: null
-                      token: int @32
-                    type: int
                   type: int Function(String)
-              leftBracket: < @31
               rightBracket: > @54
+            arguments: ArgumentList
+              leftParenthesis: ( @55
+              rightParenthesis: ) @56
+            element: ConstructorMember
+              base: self::@class::A::@constructor::•
+              substitution: {T: int Function(String)}
         constructors
           synthetic @-1
 ''');
@@ -21541,20 +21533,38 @@
       static v @62
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @55
-              rightParenthesis: ) @56
             atSign: @ @29
-            element: ConstructorMember
-              base: self::@class::A::@constructor::•
-              substitution: {T: int Function(String)}
             name: SimpleIdentifier
+              token: A @30
               staticElement: self::@class::A
               staticType: null
-              token: A @30
             typeArguments: TypeArgumentList
+              leftBracket: < @31
               arguments
                 GenericFunctionType
+                  returnType: NamedType
+                    name: SimpleIdentifier
+                      token: int @32
+                      staticElement: dart:core::@class::int
+                      staticType: null
+                    type: int
+                  functionKeyword: Function @36
+                  parameters: FormalParameterList
+                    leftParenthesis: ( @44
+                    parameter: SimpleFormalParameter
+                      type: NamedType
+                        name: SimpleIdentifier
+                          token: String @45
+                          staticElement: dart:core::@class::String
+                          staticType: null
+                        type: String
+                      identifier: SimpleIdentifier
+                        token: a @52
+                        staticElement: a@52
+                        staticType: null
+                      declaredElement: a@52
+                      declaredElementType: String
+                    rightParenthesis: ) @53
                   declaredElement: GenericFunctionTypeElement
                     parameters
                       a
@@ -21562,33 +21572,14 @@
                         type: String
                     returnType: int
                     type: int Function(String)
-                  functionKeyword: Function @36
-                  parameters: FormalParameterList
-                    leftParenthesis: ( @44
-                    parameters
-                      SimpleFormalParameter
-                        declaredElement: a@52
-                        declaredElementType: String
-                        identifier: SimpleIdentifier
-                          staticElement: a@52
-                          staticType: null
-                          token: a @52
-                        type: NamedType
-                          name: SimpleIdentifier
-                            staticElement: dart:core::@class::String
-                            staticType: null
-                            token: String @45
-                          type: String
-                    rightParenthesis: ) @53
-                  returnType: NamedType
-                    name: SimpleIdentifier
-                      staticElement: dart:core::@class::int
-                      staticType: null
-                      token: int @32
-                    type: int
                   type: int Function(String)
-              leftBracket: < @31
               rightBracket: > @54
+            arguments: ArgumentList
+              leftParenthesis: ( @55
+              rightParenthesis: ) @56
+            element: ConstructorMember
+              base: self::@class::A::@constructor::•
+              substitution: {T: int Function(String)}
         type: int
     accessors
       synthetic static get v @-1
@@ -21624,22 +21615,45 @@
         type: A<String Function({int? a})>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @67
-              rightParenthesis: ) @68
             constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: self::@class::A::@constructor::•
-                substitution: {T: String Function({int? a})}
               type: NamedType
                 name: SimpleIdentifier
+                  token: A @39
                   staticElement: self::@class::A
                   staticType: null
-                  token: A @39
-                type: A<String Function({int? a})>
                 typeArguments: TypeArgumentList
+                  leftBracket: < @40
                   arguments
                     GenericFunctionType
+                      returnType: NamedType
+                        name: SimpleIdentifier
+                          token: String @41
+                          staticElement: dart:core::@class::String
+                          staticType: null
+                        type: String
+                      functionKeyword: Function @48
+                      parameters: FormalParameterList
+                        leftParenthesis: ( @56
+                        leftDelimiter: { @57
+                        parameter: DefaultFormalParameter
+                          parameter: SimpleFormalParameter
+                            type: NamedType
+                              name: SimpleIdentifier
+                                token: int @58
+                                staticElement: dart:core::@class::int
+                                staticType: null
+                              question: ? @61
+                              type: int?
+                            identifier: SimpleIdentifier
+                              token: a @63
+                              staticElement: a@63
+                              staticType: null
+                            declaredElement: a@63
+                            declaredElementType: int?
+                          declaredElement: a@63
+                          declaredElementType: int?
+                        rightDelimiter: } @64
+                        rightParenthesis: ) @65
                       declaredElement: GenericFunctionTypeElement
                         parameters
                           a
@@ -21647,40 +21661,15 @@
                             type: int?
                         returnType: String
                         type: String Function({int? a})
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        parameters
-                          DefaultFormalParameter
-                            declaredElement: a@63
-                            declaredElementType: int?
-                            identifier: SimpleIdentifier
-                              staticElement: a@63
-                              staticType: null
-                              token: a @63
-                            parameter: SimpleFormalParameter
-                              declaredElement: a@63
-                              declaredElementType: int?
-                              identifier: SimpleIdentifier
-                                staticElement: a@63
-                                staticType: null
-                                token: a @63
-                              type: NamedType
-                                name: SimpleIdentifier
-                                  staticElement: dart:core::@class::int
-                                  staticType: null
-                                  token: int @58
-                                type: int?
-                        rightParenthesis: ) @65
-                      returnType: NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::String
-                          staticType: null
-                          token: String @41
-                        type: String
                       type: String Function({int? a})
-                  leftBracket: < @40
                   rightBracket: > @66
+                type: A<String Function({int? a})>
+              staticElement: ConstructorMember
+                base: self::@class::A::@constructor::•
+                substitution: {T: String Function({int? a})}
+            argumentList: ArgumentList
+              leftParenthesis: ( @67
+              rightParenthesis: ) @68
             staticType: A<String Function({int? a})>
     accessors
       synthetic static get v @-1
@@ -21711,22 +21700,45 @@
         type: A<String Function([int?])>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @67
-              rightParenthesis: ) @68
             constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: self::@class::A::@constructor::•
-                substitution: {T: String Function([int?])}
               type: NamedType
                 name: SimpleIdentifier
+                  token: A @39
                   staticElement: self::@class::A
                   staticType: null
-                  token: A @39
-                type: A<String Function([int?])>
                 typeArguments: TypeArgumentList
+                  leftBracket: < @40
                   arguments
                     GenericFunctionType
+                      returnType: NamedType
+                        name: SimpleIdentifier
+                          token: String @41
+                          staticElement: dart:core::@class::String
+                          staticType: null
+                        type: String
+                      functionKeyword: Function @48
+                      parameters: FormalParameterList
+                        leftParenthesis: ( @56
+                        leftDelimiter: [ @57
+                        parameter: DefaultFormalParameter
+                          parameter: SimpleFormalParameter
+                            type: NamedType
+                              name: SimpleIdentifier
+                                token: int @58
+                                staticElement: dart:core::@class::int
+                                staticType: null
+                              question: ? @61
+                              type: int?
+                            identifier: SimpleIdentifier
+                              token: a @63
+                              staticElement: a@63
+                              staticType: null
+                            declaredElement: a@63
+                            declaredElementType: int?
+                          declaredElement: a@63
+                          declaredElementType: int?
+                        rightDelimiter: ] @64
+                        rightParenthesis: ) @65
                       declaredElement: GenericFunctionTypeElement
                         parameters
                           a
@@ -21734,40 +21746,15 @@
                             type: int?
                         returnType: String
                         type: String Function([int?])
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        parameters
-                          DefaultFormalParameter
-                            declaredElement: a@63
-                            declaredElementType: int?
-                            identifier: SimpleIdentifier
-                              staticElement: a@63
-                              staticType: null
-                              token: a @63
-                            parameter: SimpleFormalParameter
-                              declaredElement: a@63
-                              declaredElementType: int?
-                              identifier: SimpleIdentifier
-                                staticElement: a@63
-                                staticType: null
-                                token: a @63
-                              type: NamedType
-                                name: SimpleIdentifier
-                                  staticElement: dart:core::@class::int
-                                  staticType: null
-                                  token: int @58
-                                type: int?
-                        rightParenthesis: ) @65
-                      returnType: NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::String
-                          staticType: null
-                          token: String @41
-                        type: String
                       type: String Function([int?])
-                  leftBracket: < @40
                   rightBracket: > @66
+                type: A<String Function([int?])>
+              staticElement: ConstructorMember
+                base: self::@class::A::@constructor::•
+                substitution: {T: String Function([int?])}
+            argumentList: ArgumentList
+              leftParenthesis: ( @67
+              rightParenthesis: ) @68
             staticType: A<String Function([int?])>
     accessors
       synthetic static get v @-1
@@ -21798,22 +21785,45 @@
         type: A<String Function({required int a})>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @75
-              rightParenthesis: ) @76
             constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: self::@class::A::@constructor::•
-                substitution: {T: String Function({required int a})}
               type: NamedType
                 name: SimpleIdentifier
+                  token: A @39
                   staticElement: self::@class::A
                   staticType: null
-                  token: A @39
-                type: A<String Function({required int a})>
                 typeArguments: TypeArgumentList
+                  leftBracket: < @40
                   arguments
                     GenericFunctionType
+                      returnType: NamedType
+                        name: SimpleIdentifier
+                          token: String @41
+                          staticElement: dart:core::@class::String
+                          staticType: null
+                        type: String
+                      functionKeyword: Function @48
+                      parameters: FormalParameterList
+                        leftParenthesis: ( @56
+                        leftDelimiter: { @57
+                        parameter: DefaultFormalParameter
+                          parameter: SimpleFormalParameter
+                            requiredKeyword: required @58
+                            type: NamedType
+                              name: SimpleIdentifier
+                                token: int @67
+                                staticElement: dart:core::@class::int
+                                staticType: null
+                              type: int
+                            identifier: SimpleIdentifier
+                              token: a @71
+                              staticElement: a@71
+                              staticType: null
+                            declaredElement: a@71
+                            declaredElementType: int
+                          declaredElement: a@71
+                          declaredElementType: int
+                        rightDelimiter: } @72
+                        rightParenthesis: ) @73
                       declaredElement: GenericFunctionTypeElement
                         parameters
                           a
@@ -21821,41 +21831,15 @@
                             type: int
                         returnType: String
                         type: String Function({required int a})
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        parameters
-                          DefaultFormalParameter
-                            declaredElement: a@71
-                            declaredElementType: int
-                            identifier: SimpleIdentifier
-                              staticElement: a@71
-                              staticType: null
-                              token: a @71
-                            parameter: SimpleFormalParameter
-                              declaredElement: a@71
-                              declaredElementType: int
-                              identifier: SimpleIdentifier
-                                staticElement: a@71
-                                staticType: null
-                                token: a @71
-                              requiredKeyword: required @58
-                              type: NamedType
-                                name: SimpleIdentifier
-                                  staticElement: dart:core::@class::int
-                                  staticType: null
-                                  token: int @67
-                                type: int
-                        rightParenthesis: ) @73
-                      returnType: NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::String
-                          staticType: null
-                          token: String @41
-                        type: String
                       type: String Function({required int a})
-                  leftBracket: < @40
                   rightBracket: > @74
+                type: A<String Function({required int a})>
+              staticElement: ConstructorMember
+                base: self::@class::A::@constructor::•
+                substitution: {T: String Function({required int a})}
+            argumentList: ArgumentList
+              leftParenthesis: ( @75
+              rightParenthesis: ) @76
             staticType: A<String Function({required int a})>
     accessors
       synthetic static get v @-1
@@ -21886,22 +21870,39 @@
         type: A<String Function(int)>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @64
-              rightParenthesis: ) @65
             constructorName: ConstructorName
-              staticElement: ConstructorMember
-                base: self::@class::A::@constructor::•
-                substitution: {T: String Function(int)}
               type: NamedType
                 name: SimpleIdentifier
+                  token: A @39
                   staticElement: self::@class::A
                   staticType: null
-                  token: A @39
-                type: A<String Function(int)>
                 typeArguments: TypeArgumentList
+                  leftBracket: < @40
                   arguments
                     GenericFunctionType
+                      returnType: NamedType
+                        name: SimpleIdentifier
+                          token: String @41
+                          staticElement: dart:core::@class::String
+                          staticType: null
+                        type: String
+                      functionKeyword: Function @48
+                      parameters: FormalParameterList
+                        leftParenthesis: ( @56
+                        parameter: SimpleFormalParameter
+                          type: NamedType
+                            name: SimpleIdentifier
+                              token: int @57
+                              staticElement: dart:core::@class::int
+                              staticType: null
+                            type: int
+                          identifier: SimpleIdentifier
+                            token: a @61
+                            staticElement: a@61
+                            staticType: null
+                          declaredElement: a@61
+                          declaredElementType: int
+                        rightParenthesis: ) @62
                       declaredElement: GenericFunctionTypeElement
                         parameters
                           a
@@ -21909,33 +21910,15 @@
                             type: int
                         returnType: String
                         type: String Function(int)
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        parameters
-                          SimpleFormalParameter
-                            declaredElement: a@61
-                            declaredElementType: int
-                            identifier: SimpleIdentifier
-                              staticElement: a@61
-                              staticType: null
-                              token: a @61
-                            type: NamedType
-                              name: SimpleIdentifier
-                                staticElement: dart:core::@class::int
-                                staticType: null
-                                token: int @57
-                              type: int
-                        rightParenthesis: ) @62
-                      returnType: NamedType
-                        name: SimpleIdentifier
-                          staticElement: dart:core::@class::String
-                          staticType: null
-                          token: String @41
-                        type: String
                       type: String Function(int)
-                  leftBracket: < @40
                   rightBracket: > @63
+                type: A<String Function(int)>
+              staticElement: ConstructorMember
+                base: self::@class::A::@constructor::•
+                substitution: {T: String Function(int)}
+            argumentList: ArgumentList
+              leftParenthesis: ( @64
+              rightParenthesis: ) @65
             staticType: A<String Function(int)>
     accessors
       synthetic static get v @-1
@@ -21987,11 +21970,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @0
             superConstructor: ConstructorMember
               base: self::@class::A::@constructor::•
               substitution: {T: void Function()}
@@ -22245,23 +22228,23 @@
                 type: C
             constantInitializers
               RedirectingConstructorInvocation
+                thisKeyword: this @57
+                period: . @61
+                constructorName: SimpleIdentifier
+                  token: named @62
+                  staticElement: self::@class::D::@constructor::named
+                  staticType: null
                 argumentList: ArgumentList
+                  leftParenthesis: ( @67
                   arguments
                     ImplicitCallReference
                       expression: SimpleIdentifier
+                        token: c @68
                         staticElement: c@52
                         staticType: C
-                        token: c @68
                       staticType: void Function()
-                  leftParenthesis: ( @67
                   rightParenthesis: ) @69
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::D::@constructor::named
-                  staticType: null
-                  token: named @62
-                period: . @61
                 staticElement: self::@class::D::@constructor::named
-                thisKeyword: this @57
             redirectedConstructor: self::@class::D::@constructor::named
           const named @83
             periodOffset: 82
@@ -22304,26 +22287,26 @@
         type: C
         constantInitializer
           InstanceCreationExpression
+            constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @65
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C
+              period: . @66
+              name: SimpleIdentifier
+                token: named @67
+                staticElement: self::@class::C::@constructor::named
+                staticType: null
+              staticElement: self::@class::C::@constructor::named
             argumentList: ArgumentList
+              leftParenthesis: ( @72
               arguments
                 IntegerLiteral
                   literal: 42 @73
                   staticType: int
-              leftParenthesis: ( @72
               rightParenthesis: ) @75
-            constructorName: ConstructorName
-              name: SimpleIdentifier
-                staticElement: self::@class::C::@constructor::named
-                staticType: null
-                token: named @67
-              period: . @66
-              staticElement: self::@class::C::@constructor::named
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @65
-                type: C
             staticType: C
     accessors
       synthetic static get x @-1
@@ -22625,21 +22608,21 @@
   metadata
     Annotation
       atSign: @ @0
-      element: <null>
       name: SimpleIdentifier
+        token: foo @1
         staticElement: <null>
         staticType: null
-        token: foo @1
+      element: <null>
   imports
     <unresolved>
       metadata
         Annotation
           atSign: @ @0
-          element: <null>
           name: SimpleIdentifier
+            token: foo @1
             staticElement: <null>
             staticType: null
-            token: foo @1
+          element: <null>
   definingUnit
 ''');
   }
@@ -22886,25 +22869,25 @@
         type: C<int>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              arguments
-                SimpleIdentifier
-                  staticElement: self::@function::f
-                  staticType: D<int, U> Function<U>()
-                  token: f @130
-              leftParenthesis: ( @129
-              rightParenthesis: ) @131
+            keyword: const @122
             constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: C @128
+                  staticElement: self::@class::C
+                  staticType: null
+                type: C<int>
               staticElement: ConstructorMember
                 base: self::@class::C::@constructor::•
                 substitution: {V: int}
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::C
-                  staticType: null
-                  token: C @128
-                type: C<int>
-            keyword: const @122
+            argumentList: ArgumentList
+              leftParenthesis: ( @129
+              arguments
+                SimpleIdentifier
+                  token: f @130
+                  staticElement: self::@function::f
+                  staticType: D<int, U> Function<U>()
+              rightParenthesis: ) @131
             staticType: C<int>
     accessors
       synthetic static get x @-1
@@ -22956,23 +22939,23 @@
         type: C
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              arguments
-                SimpleIdentifier
-                  staticElement: self::@function::f
-                  staticType: D<T> Function<T>()
-                  token: f @113
-              leftParenthesis: ( @112
-              rightParenthesis: ) @114
+            keyword: const @105
             constructorName: ConstructorName
-              staticElement: self::@class::C::@constructor::•
               type: NamedType
                 name: SimpleIdentifier
+                  token: C @111
                   staticElement: self::@class::C
                   staticType: null
-                  token: C @111
                 type: C
-            keyword: const @105
+              staticElement: self::@class::C::@constructor::•
+            argumentList: ArgumentList
+              leftParenthesis: ( @112
+              arguments
+                SimpleIdentifier
+                  token: f @113
+                  staticElement: self::@function::f
+                  staticType: D<T> Function<T>()
+              rightParenthesis: ) @114
             staticType: C
     accessors
       synthetic static get x @-1
@@ -24968,23 +24951,24 @@
         metadata
           Annotation
             atSign: @ @22
-            constructorName: SimpleIdentifier
-              staticElement: package:test/a.dart::@class::A::@constructor::named
-              staticType: null
-              token: named @27
-            element: package:test/a.dart::@class::A::@constructor::named
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/a.dart::@class::A
-                staticType: null
-                token: A @25
-              period: . @24
               prefix: SimpleIdentifier
+                token: a @23
                 staticElement: self::@prefix::a
                 staticType: null
-                token: a @23
+              period: . @24
+              identifier: SimpleIdentifier
+                token: A @25
+                staticElement: package:test/a.dart::@class::A
+                staticType: null
               staticElement: package:test/a.dart::@class::A
               staticType: null
+            period: . @26
+            constructorName: SimpleIdentifier
+              token: named @27
+              staticElement: package:test/a.dart::@class::A::@constructor::named
+              staticType: null
+            element: package:test/a.dart::@class::A::@constructor::named
         constructors
           synthetic @-1
 ''');
@@ -25012,19 +24996,19 @@
         metadata
           Annotation
             atSign: @ @17
-            element: package:test/a.dart::@class::A::@constructor::named
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/a.dart::@class::A::@constructor::named
-                staticType: null
-                token: named @20
-              period: . @19
               prefix: SimpleIdentifier
+                token: A @18
                 staticElement: package:test/a.dart::@class::A
                 staticType: null
-                token: A @18
+              period: . @19
+              identifier: SimpleIdentifier
+                token: named @20
+                staticElement: package:test/a.dart::@class::A::@constructor::named
+                staticType: null
               staticElement: package:test/a.dart::@class::A::@constructor::named
               staticType: null
+            element: package:test/a.dart::@class::A::@constructor::named
         constructors
           synthetic @-1
 ''');
@@ -25081,9 +25065,9 @@
             type: dynamic
             constantInitializer
               SimpleIdentifier
+                token: V @43
                 staticElement: <null>
                 staticType: dynamic
-                token: V @43
         returnType: dynamic
 ''');
   }
@@ -25111,9 +25095,9 @@
             type: dynamic
             constantInitializer
               SimpleIdentifier
+                token: V @26
                 staticElement: a.dart::@function::V
                 staticType: dynamic Function()
-                token: V @26
         returnType: dynamic
 ''');
   }
@@ -25145,9 +25129,9 @@
             type: dynamic
             constantInitializer
               SimpleIdentifier
+                token: V @9
                 staticElement: self::@getter::V
                 staticType: dynamic
-                token: V @9
         returnType: dynamic
       V @16
         returnType: dynamic
@@ -25481,11 +25465,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::C::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::C::@constructor::•
       class C @29
         constructors
@@ -25620,11 +25604,11 @@
             metadata
               Annotation
                 atSign: @ @25
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @26
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @26
+                element: self::@getter::a
             type: int
         constructors
           synthetic @-1
@@ -25668,22 +25652,22 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           covariant T @34
             defaultType: dynamic
             metadata
               Annotation
                 atSign: @ @29
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @30
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @30
+                element: self::@getter::foo
         fields
           static const foo @54
             type: int
@@ -25701,11 +25685,11 @@
             metadata
               Annotation
                 atSign: @ @65
-                element: self::@class::C::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @66
                   staticElement: self::@class::C::@getter::foo
                   staticType: null
-                  token: foo @66
+                element: self::@class::C::@getter::foo
             returnType: void
     topLevelVariables
       static const foo @6
@@ -25735,18 +25719,18 @@
         metadata
           Annotation
             atSign: @ @32
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @33
               staticElement: self::@getter::a
               staticType: null
-              token: a @33
+            element: self::@getter::a
           Annotation
             atSign: @ @35
-            element: self::@getter::b
             name: SimpleIdentifier
+              token: b @36
               staticElement: self::@getter::b
               staticType: null
-              token: b @36
+            element: self::@getter::b
         constructors
           synthetic @-1
     topLevelVariables
@@ -25781,11 +25765,11 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @17
               staticElement: self::@getter::a
               staticType: null
-              token: a @17
+            element: self::@getter::a
         supertype: D
         mixins
           E
@@ -25793,11 +25777,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @45
         constructors
@@ -25842,27 +25826,27 @@
       class C @54
         metadata
           Annotation
+            atSign: @ @36
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: A @37
+                staticElement: self::@class::A
+                staticType: null
+              period: . @38
+              identifier: SimpleIdentifier
+                token: named @39
+                staticElement: self::@class::A::@constructor::named
+                staticType: null
+              staticElement: self::@class::A::@constructor::named
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @44
               arguments
                 IntegerLiteral
                   literal: 0 @45
                   staticType: int
-              leftParenthesis: ( @44
               rightParenthesis: ) @46
-            atSign: @ @36
             element: self::@class::A::@constructor::named
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: self::@class::A::@constructor::named
-                staticType: null
-                token: named @39
-              period: . @38
-              prefix: SimpleIdentifier
-                staticElement: self::@class::A
-                staticType: null
-                token: A @37
-              staticElement: self::@class::A::@constructor::named
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -25895,33 +25879,33 @@
       class C @56
         metadata
           Annotation
-            arguments: ArgumentList
-              arguments
-                IntegerLiteral
-                  literal: 0 @47
-                  staticType: int
-              leftParenthesis: ( @46
-              rightParenthesis: ) @48
             atSign: @ @38
-            element: ConstructorMember
-              base: self::@class::A::@constructor::named
-              substitution: {T: int}
             name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: A @39
+                staticElement: self::@class::A
+                staticType: null
+              period: . @40
               identifier: SimpleIdentifier
+                token: named @41
                 staticElement: ConstructorMember
                   base: self::@class::A::@constructor::named
                   substitution: {T: int}
                 staticType: null
-                token: named @41
-              period: . @40
-              prefix: SimpleIdentifier
-                staticElement: self::@class::A
-                staticType: null
-                token: A @39
               staticElement: ConstructorMember
                 base: self::@class::A::@constructor::named
                 substitution: {T: int}
               staticType: null
+            arguments: ArgumentList
+              leftParenthesis: ( @46
+              arguments
+                IntegerLiteral
+                  literal: 0 @47
+                  staticType: int
+              rightParenthesis: ) @48
+            element: ConstructorMember
+              base: self::@class::A::@constructor::named
+              substitution: {T: int}
         constructors
           synthetic @-1
 ''');
@@ -25951,33 +25935,34 @@
       class C @57
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @48
-              rightParenthesis: ) @49
             atSign: @ @35
+            name: SimpleIdentifier
+              token: A @36
+              staticElement: self::@class::A
+              staticType: null
+            typeArguments: TypeArgumentList
+              leftBracket: < @37
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @38
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @41
+            period: . @42
             constructorName: SimpleIdentifier
+              token: named @43
               staticElement: ConstructorMember
                 base: self::@class::A::@constructor::named
                 substitution: {T: int}
               staticType: null
-              token: named @43
+            arguments: ArgumentList
+              leftParenthesis: ( @48
+              rightParenthesis: ) @49
             element: ConstructorMember
               base: self::@class::A::@constructor::named
               substitution: {T: int}
-            name: SimpleIdentifier
-              staticElement: self::@class::A
-              staticType: null
-              token: A @36
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @38
-                  type: int
-              leftBracket: < @37
-              rightBracket: > @41
         constructors
           synthetic @-1
 ''');
@@ -26007,33 +25992,34 @@
       class C @57
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @48
-              rightParenthesis: ) @49
             atSign: @ @35
+            name: SimpleIdentifier
+              token: A @36
+              staticElement: self::@class::A
+              staticType: null
+            typeArguments: TypeArgumentList
+              leftBracket: < @37
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @38
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @41
+            period: . @42
             constructorName: SimpleIdentifier
+              token: named @43
               staticElement: ConstructorMember
                 base: self::@class::A::@constructor::named
                 substitution: {T: int}
               staticType: null
-              token: named @43
+            arguments: ArgumentList
+              leftParenthesis: ( @48
+              rightParenthesis: ) @49
             element: ConstructorMember
               base: self::@class::A::@constructor::named
               substitution: {T: int}
-            name: SimpleIdentifier
-              staticElement: self::@class::A
-              staticType: null
-              token: A @36
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @38
-                  type: int
-              leftBracket: < @37
-              rightBracket: > @41
         constructors
           synthetic @-1
 ''');
@@ -26060,31 +26046,32 @@
       class C @48
         metadata
           Annotation
+            atSign: @ @26
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @27
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @30
+              identifier: SimpleIdentifier
+                token: A @31
+                staticElement: package:test/foo.dart::@class::A
+                staticType: null
+              staticElement: package:test/foo.dart::@class::A
+              staticType: null
+            period: . @32
+            constructorName: SimpleIdentifier
+              token: named @33
+              staticElement: package:test/foo.dart::@class::A::@constructor::named
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @38
               arguments
                 IntegerLiteral
                   literal: 0 @39
                   staticType: int
-              leftParenthesis: ( @38
               rightParenthesis: ) @40
-            atSign: @ @26
-            constructorName: SimpleIdentifier
-              staticElement: package:test/foo.dart::@class::A::@constructor::named
-              staticType: null
-              token: named @33
             element: package:test/foo.dart::@class::A::@constructor::named
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/foo.dart::@class::A
-                staticType: null
-                token: A @31
-              period: . @30
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @27
-              staticElement: package:test/foo.dart::@class::A
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -26111,35 +26098,36 @@
       class C @48
         metadata
           Annotation
-            arguments: ArgumentList
-              arguments
-                IntegerLiteral
-                  literal: 0 @39
-                  staticType: int
-              leftParenthesis: ( @38
-              rightParenthesis: ) @40
             atSign: @ @26
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @27
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @30
+              identifier: SimpleIdentifier
+                token: A @31
+                staticElement: package:test/foo.dart::@class::A
+                staticType: null
+              staticElement: package:test/foo.dart::@class::A
+              staticType: null
+            period: . @32
             constructorName: SimpleIdentifier
+              token: named @33
               staticElement: ConstructorMember
                 base: package:test/foo.dart::@class::A::@constructor::named
                 substitution: {T: int}
               staticType: null
-              token: named @33
+            arguments: ArgumentList
+              leftParenthesis: ( @38
+              arguments
+                IntegerLiteral
+                  literal: 0 @39
+                  staticType: int
+              rightParenthesis: ) @40
             element: ConstructorMember
               base: package:test/foo.dart::@class::A::@constructor::named
               substitution: {T: int}
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/foo.dart::@class::A
-                staticType: null
-                token: A @31
-              period: . @30
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @27
-              staticElement: package:test/foo.dart::@class::A
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -26166,41 +26154,42 @@
       class C @52
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @43
-              rightParenthesis: ) @44
             atSign: @ @26
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @27
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @30
+              identifier: SimpleIdentifier
+                token: A @31
+                staticElement: package:test/foo.dart::@class::A
+                staticType: null
+              staticElement: package:test/foo.dart::@class::A
+              staticType: null
+            typeArguments: TypeArgumentList
+              leftBracket: < @32
+              arguments
+                NamedType
+                  name: SimpleIdentifier
+                    token: int @33
+                    staticElement: dart:core::@class::int
+                    staticType: null
+                  type: int
+              rightBracket: > @36
+            period: . @37
             constructorName: SimpleIdentifier
+              token: named @38
               staticElement: ConstructorMember
                 base: package:test/foo.dart::@class::A::@constructor::named
                 substitution: {T: int}
               staticType: null
-              token: named @38
+            arguments: ArgumentList
+              leftParenthesis: ( @43
+              rightParenthesis: ) @44
             element: ConstructorMember
               base: package:test/foo.dart::@class::A::@constructor::named
               substitution: {T: int}
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/foo.dart::@class::A
-                staticType: null
-                token: A @31
-              period: . @30
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @27
-              staticElement: package:test/foo.dart::@class::A
-              staticType: null
-            typeArguments: TypeArgumentList
-              arguments
-                NamedType
-                  name: SimpleIdentifier
-                    staticElement: dart:core::@class::int
-                    staticType: null
-                    token: int @33
-                  type: int
-              leftBracket: < @32
-              rightBracket: > @36
         constructors
           synthetic @-1
 ''');
@@ -26239,43 +26228,43 @@
           synthetic const named @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
+                period: . @0
+                constructorName: SimpleIdentifier
+                  token: named @-1
+                  staticElement: self::@class::A::@constructor::named
+                  staticType: null
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: SimpleIdentifier
-                  staticElement: self::@class::A::@constructor::named
-                  staticType: null
-                  token: named @-1
-                period: . @0
                 staticElement: self::@class::A::@constructor::named
-                superKeyword: super @0
             superConstructor: self::@class::A::@constructor::named
       class D @85
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @76
-              rightParenthesis: ) @77
             atSign: @ @68
-            element: ConstructorMember
-              base: self::@class::C::@constructor::named
-              substitution: {T: dynamic}
             name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: C @69
+                staticElement: self::@class::C
+                staticType: null
+              period: . @70
               identifier: SimpleIdentifier
+                token: named @71
                 staticElement: ConstructorMember
                   base: self::@class::C::@constructor::named
                   substitution: {T: dynamic}
                 staticType: null
-                token: named @71
-              period: . @70
-              prefix: SimpleIdentifier
-                staticElement: self::@class::C
-                staticType: null
-                token: C @69
               staticElement: ConstructorMember
                 base: self::@class::C::@constructor::named
                 substitution: {T: dynamic}
               staticType: null
+            arguments: ArgumentList
+              leftParenthesis: ( @76
+              rightParenthesis: ) @77
+            element: ConstructorMember
+              base: self::@class::C::@constructor::named
+              substitution: {T: dynamic}
         constructors
           synthetic @-1
     mixins
@@ -26309,19 +26298,19 @@
       class C @42
         metadata
           Annotation
+            atSign: @ @30
+            name: SimpleIdentifier
+              token: A @31
+              staticElement: self::@class::A
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @32
               arguments
                 IntegerLiteral
                   literal: 0 @33
                   staticType: int
-              leftParenthesis: ( @32
               rightParenthesis: ) @34
-            atSign: @ @30
             element: self::@class::A::@constructor::•
-            name: SimpleIdentifier
-              staticElement: self::@class::A
-              staticType: null
-              token: A @31
         constructors
           synthetic @-1
 ''');
@@ -26352,21 +26341,21 @@
       class C @44
         metadata
           Annotation
+            atSign: @ @32
+            name: SimpleIdentifier
+              token: A @33
+              staticElement: self::@class::A
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @34
               arguments
                 IntegerLiteral
                   literal: 0 @35
                   staticType: int
-              leftParenthesis: ( @34
               rightParenthesis: ) @36
-            atSign: @ @32
             element: ConstructorMember
               base: self::@class::A::@constructor::•
               substitution: {T: int}
-            name: SimpleIdentifier
-              staticElement: self::@class::A
-              staticType: null
-              token: A @33
         constructors
           synthetic @-1
 ''');
@@ -26394,27 +26383,27 @@
       class C @45
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @36
-              rightParenthesis: ) @37
             atSign: @ @29
-            element: ConstructorMember
-              base: self::@class::A::@constructor::•
-              substitution: {T: int}
             name: SimpleIdentifier
+              token: A @30
               staticElement: self::@class::A
               staticType: null
-              token: A @30
             typeArguments: TypeArgumentList
+              leftBracket: < @31
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @32
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @32
                   type: int
-              leftBracket: < @31
               rightBracket: > @35
+            arguments: ArgumentList
+              leftParenthesis: ( @36
+              rightParenthesis: ) @37
+            element: ConstructorMember
+              base: self::@class::A::@constructor::•
+              substitution: {T: int}
         constructors
           synthetic @-1
 ''');
@@ -26434,27 +26423,27 @@
       class C @42
         metadata
           Annotation
+            atSign: @ @26
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @27
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @30
+              identifier: SimpleIdentifier
+                token: A @31
+                staticElement: package:test/foo.dart::@class::A
+                staticType: null
+              staticElement: package:test/foo.dart::@class::A
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @32
               arguments
                 IntegerLiteral
                   literal: 0 @33
                   staticType: int
-              leftParenthesis: ( @32
               rightParenthesis: ) @34
-            atSign: @ @26
             element: package:test/foo.dart::@class::A::@constructor::•
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/foo.dart::@class::A
-                staticType: null
-                token: A @31
-              period: . @30
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @27
-              staticElement: package:test/foo.dart::@class::A
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -26481,29 +26470,29 @@
       class C @42
         metadata
           Annotation
+            atSign: @ @26
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @27
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @30
+              identifier: SimpleIdentifier
+                token: A @31
+                staticElement: package:test/foo.dart::@class::A
+                staticType: null
+              staticElement: package:test/foo.dart::@class::A
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @32
               arguments
                 IntegerLiteral
                   literal: 0 @33
                   staticType: int
-              leftParenthesis: ( @32
               rightParenthesis: ) @34
-            atSign: @ @26
             element: ConstructorMember
               base: package:test/foo.dart::@class::A::@constructor::•
               substitution: {T: int}
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/foo.dart::@class::A
-                staticType: null
-                token: A @31
-              period: . @30
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @27
-              staticElement: package:test/foo.dart::@class::A
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -26530,35 +26519,35 @@
       class C @46
         metadata
           Annotation
-            arguments: ArgumentList
-              leftParenthesis: ( @37
-              rightParenthesis: ) @38
             atSign: @ @26
-            element: ConstructorMember
-              base: package:test/foo.dart::@class::A::@constructor::•
-              substitution: {T: int}
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/foo.dart::@class::A
-                staticType: null
-                token: A @31
-              period: . @30
               prefix: SimpleIdentifier
+                token: foo @27
                 staticElement: self::@prefix::foo
                 staticType: null
-                token: foo @27
+              period: . @30
+              identifier: SimpleIdentifier
+                token: A @31
+                staticElement: package:test/foo.dart::@class::A
+                staticType: null
               staticElement: package:test/foo.dart::@class::A
               staticType: null
             typeArguments: TypeArgumentList
+              leftBracket: < @32
               arguments
                 NamedType
                   name: SimpleIdentifier
+                    token: int @33
                     staticElement: dart:core::@class::int
                     staticType: null
-                    token: int @33
                   type: int
-              leftBracket: < @32
               rightBracket: > @36
+            arguments: ArgumentList
+              leftParenthesis: ( @37
+              rightParenthesis: ) @38
+            element: ConstructorMember
+              base: package:test/foo.dart::@class::A::@constructor::•
+              substitution: {T: int}
         constructors
           synthetic @-1
 ''');
@@ -26595,26 +26584,26 @@
           synthetic const @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::A::@constructor::•
       class D @73
         metadata
           Annotation
+            atSign: @ @62
+            name: SimpleIdentifier
+              token: C @63
+              staticElement: self::@class::C
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @64
               rightParenthesis: ) @65
-            atSign: @ @62
             element: ConstructorMember
               base: self::@class::C::@constructor::•
               substitution: {T: dynamic}
-            name: SimpleIdentifier
-              staticElement: self::@class::C
-              staticType: null
-              token: C @63
         constructors
           synthetic @-1
     mixins
@@ -26642,19 +26631,19 @@
       class C @39
         metadata
           Annotation
+            atSign: @ @24
+            name: SimpleIdentifier
+              token: A @25
+              staticElement: self::@class::A
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @26
               arguments
                 NullLiteral
                   literal: null @27
                   staticType: Null
-              leftParenthesis: ( @26
               rightParenthesis: ) @31
-            atSign: @ @24
             element: self::@class::A::@constructor::•
-            name: SimpleIdentifier
-              staticElement: self::@class::A
-              staticType: null
-              token: A @25
         constructors
           synthetic @-1
 ''');
@@ -26673,11 +26662,11 @@
             metadata
               Annotation
                 atSign: @ @26
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @27
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @27
+                element: self::@getter::a
             periodOffset: 30
             nameEnd: 36
     topLevelVariables
@@ -26705,11 +26694,11 @@
             metadata
               Annotation
                 atSign: @ @26
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @27
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @27
+                element: self::@getter::a
     topLevelVariables
       static const a @6
         type: dynamic
@@ -26736,41 +26725,41 @@
             metadata
               Annotation
                 atSign: @ @23
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @24
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @24
+                element: self::@getter::a
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -26830,114 +26819,114 @@
           static const enumConstant a @78
             metadata
               Annotation
+                atSign: @ @70
+                name: SimpleIdentifier
+                  token: A @71
+                  staticElement: self::@class::A
+                  staticType: null
                 arguments: ArgumentList
+                  leftParenthesis: ( @72
                   arguments
                     IntegerLiteral
                       literal: 100 @73
                       staticType: int
-                  leftParenthesis: ( @72
                   rightParenthesis: ) @76
-                atSign: @ @70
                 element: self::@class::A::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: self::@class::A
-                  staticType: null
-                  token: A @71
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @83
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant c @96
             metadata
               Annotation
+                atSign: @ @88
+                name: SimpleIdentifier
+                  token: A @89
+                  staticElement: self::@class::A
+                  staticType: null
                 arguments: ArgumentList
+                  leftParenthesis: ( @90
                   arguments
                     IntegerLiteral
                       literal: 300 @91
                       staticType: int
-                  leftParenthesis: ( @90
                   rightParenthesis: ) @94
-                atSign: @ @88
                 element: self::@class::A::@constructor::•
-                name: SimpleIdentifier
-                  staticElement: self::@class::A
-                  staticType: null
-                  token: A @89
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
                   SimpleIdentifier
+                    token: c @-1
                     staticElement: self::@enum::E::@getter::c
                     staticType: E
-                    token: c @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -26964,44 +26953,44 @@
         metadata
           Annotation
             atSign: @ @14
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @15
               staticElement: self::@getter::a
               staticType: null
-              token: a @15
+            element: self::@getter::a
         supertype: Enum
         fields
           static const enumConstant v @26
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -27032,21 +27021,21 @@
   metadata
     Annotation
       atSign: @ @0
-      element: self::@getter::a
       name: SimpleIdentifier
+        token: a @1
         staticElement: self::@getter::a
         staticType: null
-        token: a @1
+      element: self::@getter::a
   exports
     foo.dart
       metadata
         Annotation
           atSign: @ @0
-          element: self::@getter::a
           name: SimpleIdentifier
+            token: a @1
             staticElement: self::@getter::a
             staticType: null
-            token: a @1
+          element: self::@getter::a
   definingUnit
     topLevelVariables
       static const a @28
@@ -27080,21 +27069,21 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           covariant T @38
             metadata
               Annotation
                 atSign: @ @33
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @34
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @34
+                element: self::@getter::foo
         extendedType: int
         fields
           static const foo @65
@@ -27111,11 +27100,11 @@
             metadata
               Annotation
                 atSign: @ @76
-                element: self::@extension::E::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @77
                   staticElement: self::@extension::E::@getter::foo
                   staticType: null
-                  token: foo @77
+                element: self::@extension::E::@getter::foo
             returnType: void
     topLevelVariables
       static const foo @6
@@ -27149,21 +27138,21 @@
         metadata
           Annotation
             atSign: @ @27
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @28
               staticElement: self::@getter::a
               staticType: null
-              token: a @28
+            element: self::@getter::a
           Annotation
+            atSign: @ @30
+            name: SimpleIdentifier
+              token: Object @31
+              staticElement: dart:core::@class::Object
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @37
               rightParenthesis: ) @38
-            atSign: @ @30
             element: dart:core::@class::Object::@constructor::•
-            name: SimpleIdentifier
-              staticElement: dart:core::@class::Object
-              staticType: null
-              token: Object @31
         extendedType: A
     topLevelVariables
       static const a @6
@@ -27190,11 +27179,11 @@
             metadata
               Annotation
                 atSign: @ @26
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @27
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @27
+                element: self::@getter::a
             type: int
         constructors
           synthetic @-1
@@ -27243,11 +27232,11 @@
                 metadata
                   Annotation
                     atSign: @ @39
-                    element: self::@getter::a
                     name: SimpleIdentifier
+                      token: a @40
                       staticElement: self::@getter::a
                       staticType: null
-                      token: a @40
+                    element: self::@getter::a
                 field: self::@class::C::@field::x
         accessors
           synthetic get x @-1
@@ -27289,11 +27278,11 @@
                 metadata
                   Annotation
                     atSign: @ @36
-                    element: self::@getter::a
                     name: SimpleIdentifier
+                      token: a @37
                       staticElement: self::@getter::a
                       staticType: null
-                      token: a @37
+                    element: self::@getter::a
                 constantInitializer
                   NullLiteral
                     literal: null @48
@@ -27344,11 +27333,11 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @17
               staticElement: self::@getter::a
               staticType: null
-              token: a @17
+            element: self::@getter::a
         returnType: dynamic
 ''');
   }
@@ -27374,11 +27363,11 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @17
               staticElement: self::@getter::a
               staticType: null
-              token: a @17
+            element: self::@getter::a
         returnType: dynamic
 ''');
   }
@@ -27404,11 +27393,11 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @17
               staticElement: self::@getter::a
               staticType: null
-              token: a @17
+            element: self::@getter::a
         parameters
           requiredPositional value @25
             type: dynamic
@@ -27426,11 +27415,11 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @17
               staticElement: self::@getter::a
               staticType: null
-              token: a @17
+            element: self::@getter::a
         aliasedType: dynamic Function()
         aliasedElement: GenericFunctionTypeElement
           returnType: dynamic
@@ -27470,11 +27459,11 @@
             metadata
               Annotation
                 atSign: @ @18
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @19
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @19
+                element: self::@getter::a
         returnType: dynamic
 ''');
   }
@@ -27502,11 +27491,11 @@
             metadata
               Annotation
                 atSign: @ @19
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @20
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @20
+                element: self::@getter::a
             constantInitializer
               NullLiteral
                 literal: null @28
@@ -27530,18 +27519,18 @@
         metadata
           Annotation
             atSign: @ @32
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @33
               staticElement: self::@getter::a
               staticType: null
-              token: a @33
+            element: self::@getter::a
           Annotation
             atSign: @ @35
-            element: self::@getter::b
             name: SimpleIdentifier
+              token: b @36
               staticElement: self::@getter::b
               staticType: null
-              token: b @36
+            element: self::@getter::b
         aliasedType: void Function()
         aliasedElement: GenericFunctionTypeElement
           returnType: void
@@ -27577,21 +27566,21 @@
   metadata
     Annotation
       atSign: @ @0
-      element: self::@getter::a
       name: SimpleIdentifier
+        token: a @1
         staticElement: self::@getter::a
         staticType: null
-        token: a @1
+      element: self::@getter::a
   imports
     dart:math
       metadata
         Annotation
           atSign: @ @0
-          element: self::@getter::a
           name: SimpleIdentifier
+            token: a @1
             staticElement: self::@getter::a
             staticType: null
-            token: a @1
+          element: self::@getter::a
   definingUnit
     topLevelVariables
       static const a @29
@@ -27618,21 +27607,21 @@
   metadata
     Annotation
       atSign: @ @0
-      element: self::@getter::a
       name: SimpleIdentifier
+        token: a @1
         staticElement: self::@getter::a
         staticType: null
-        token: a @1
+      element: self::@getter::a
   imports
     dart:math
       metadata
         Annotation
           atSign: @ @0
-          element: self::@getter::a
           name: SimpleIdentifier
+            token: a @1
             staticElement: self::@getter::a
             staticType: null
-            token: a @1
+          element: self::@getter::a
       combinators
         show: Random
   definingUnit
@@ -27667,11 +27656,11 @@
               metadata
                 Annotation
                   atSign: @ @40
-                  element: self::@getter::a
                   name: SimpleIdentifier
+                    token: a @41
                     staticElement: self::@getter::a
                     staticType: null
-                    token: a @41
+                  element: self::@getter::a
           returnType: void
     topLevelVariables
       static const a @6
@@ -27707,11 +27696,11 @@
                   metadata
                     Annotation
                       atSign: @ @48
-                      element: self::@getter::a
                       name: SimpleIdentifier
+                        token: a @49
                         staticElement: self::@getter::a
                         staticType: null
-                        token: a @49
+                      element: self::@getter::a
           returnType: void
     topLevelVariables
       static const a @6
@@ -27743,11 +27732,11 @@
               metadata
                 Annotation
                   atSign: @ @40
-                  element: self::@getter::a
                   name: SimpleIdentifier
+                    token: a @41
                     staticElement: self::@getter::a
                     staticType: null
-                    token: a @41
+                  element: self::@getter::a
           parameters
             requiredPositional first @50
               type: int
@@ -27774,19 +27763,19 @@
       class C @21
         metadata
           Annotation
+            atSign: @ @8
+            name: SimpleIdentifier
+              token: f @9
+              staticElement: self::@function::f
+              staticType: null
             arguments: ArgumentList
+              leftParenthesis: ( @10
               arguments
                 IntegerLiteral
                   literal: 42 @11
                   staticType: int
-              leftParenthesis: ( @10
               rightParenthesis: ) @13
-            atSign: @ @8
             element: self::@function::f
-            name: SimpleIdentifier
-              staticElement: self::@function::f
-              staticType: null
-              token: f @9
         constructors
           synthetic @-1
     functions
@@ -27807,11 +27796,11 @@
   metadata
     Annotation
       atSign: @ @0
-      element: self::@getter::a
       name: SimpleIdentifier
+        token: a @1
         staticElement: self::@getter::a
         staticType: null
-        token: a @1
+      element: self::@getter::a
   definingUnit
     topLevelVariables
       static const a @20
@@ -27844,11 +27833,11 @@
             metadata
               Annotation
                 atSign: @ @26
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @27
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @27
+                element: self::@getter::a
             returnType: dynamic
     topLevelVariables
       static const a @6
@@ -27885,18 +27874,18 @@
             metadata
               Annotation
                 atSign: @ @44
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @45
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @45
+                element: self::@getter::a
               Annotation
                 atSign: @ @49
-                element: self::@getter::b
                 name: SimpleIdentifier
+                  token: b @50
                   staticElement: self::@getter::b
                   staticType: null
-                  token: b @50
+                element: self::@getter::b
             returnType: dynamic
     topLevelVariables
       static const a @6
@@ -27943,18 +27932,18 @@
             metadata
               Annotation
                 atSign: @ @44
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @45
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @45
+                element: self::@getter::a
               Annotation
                 atSign: @ @49
-                element: self::@getter::b
                 name: SimpleIdentifier
+                  token: b @50
                   staticElement: self::@getter::b
                   staticType: null
-                  token: b @50
+                element: self::@getter::b
             returnType: dynamic
     topLevelVariables
       static const a @6
@@ -28000,11 +27989,11 @@
             metadata
               Annotation
                 atSign: @ @28
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @29
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @29
+                element: self::@getter::a
             parameters
               requiredPositional value @39
                 type: dynamic
@@ -28041,22 +28030,22 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           covariant T @34
             defaultType: dynamic
             metadata
               Annotation
                 atSign: @ @29
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @30
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @30
+                element: self::@getter::foo
         superclassConstraints
           Object
         fields
@@ -28076,11 +28065,11 @@
             metadata
               Annotation
                 atSign: @ @65
-                element: self::@mixin::M::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @66
                   staticElement: self::@mixin::M::@getter::foo
                   staticType: null
-                  token: foo @66
+                element: self::@mixin::M::@getter::foo
             returnType: void
     topLevelVariables
       static const foo @6
@@ -28110,18 +28099,18 @@
         metadata
           Annotation
             atSign: @ @32
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @33
               staticElement: self::@getter::a
               staticType: null
-              token: a @33
+            element: self::@getter::a
           Annotation
             atSign: @ @35
-            element: self::@getter::b
             name: SimpleIdentifier
+              token: b @36
               staticElement: self::@getter::b
               staticType: null
-              token: b @36
+            element: self::@getter::b
         superclassConstraints
           Object
         constructors
@@ -28162,22 +28151,22 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           covariant T @34
             defaultType: dynamic
             metadata
               Annotation
                 atSign: @ @29
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @30
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @30
+                element: self::@getter::foo
         constructors
           synthetic @-1
     topLevelVariables
@@ -28212,22 +28201,22 @@
             metadata
               Annotation
                 atSign: @ @28
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @29
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @29
+                element: self::@getter::foo
             parameters
               requiredPositional a @46
                 type: int
                 metadata
                   Annotation
                     atSign: @ @37
-                    element: self::@getter::foo
                     name: SimpleIdentifier
+                      token: foo @38
                       staticElement: self::@getter::foo
                       staticType: null
-                      token: foo @38
+                    element: self::@getter::foo
     topLevelVariables
       static const foo @6
         type: int
@@ -28265,11 +28254,11 @@
             metadata
               Annotation
                 atSign: @ @28
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @29
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @29
+                element: self::@getter::foo
             returnType: int
     topLevelVariables
       static const foo @6
@@ -28305,32 +28294,32 @@
             metadata
               Annotation
                 atSign: @ @28
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @29
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @29
+                element: self::@getter::foo
             typeParameters
               covariant T @52
                 metadata
                   Annotation
                     atSign: @ @47
-                    element: self::@getter::foo
                     name: SimpleIdentifier
+                      token: foo @48
                       staticElement: self::@getter::foo
                       staticType: null
-                      token: foo @48
+                    element: self::@getter::foo
             parameters
               requiredPositional a @64
                 type: int
                 metadata
                   Annotation
                     atSign: @ @55
-                    element: self::@getter::foo
                     name: SimpleIdentifier
+                      token: foo @56
                       staticElement: self::@getter::foo
                       staticType: null
-                      token: foo @56
+                    element: self::@getter::foo
             returnType: void
     topLevelVariables
       static const foo @6
@@ -28369,22 +28358,22 @@
             metadata
               Annotation
                 atSign: @ @28
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @29
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @29
+                element: self::@getter::foo
             parameters
               requiredPositional a @55
                 type: int
                 metadata
                   Annotation
                     atSign: @ @46
-                    element: self::@getter::foo
                     name: SimpleIdentifier
+                      token: foo @47
                       staticElement: self::@getter::foo
                       staticType: null
-                      token: foo @47
+                    element: self::@getter::foo
             returnType: void
     topLevelVariables
       static const foo @6
@@ -28420,22 +28409,22 @@
         metadata
           Annotation
             atSign: @ @39
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @40
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @40
+            element: self::@getter::foo
         typeParameters
           covariant T @57
             defaultType: dynamic
             metadata
               Annotation
                 atSign: @ @52
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @53
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @53
+                element: self::@getter::foo
         supertype: A
         mixins
           M
@@ -28443,11 +28432,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::A::@constructor::•
     mixins
       mixin M @33
@@ -28487,110 +28476,110 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         supertype: Enum
         fields
           static const enumConstant e1 @37
             metadata
               Annotation
                 atSign: @ @32
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @33
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @33
+                element: self::@getter::foo
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant e2 @43
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant e3 @54
             metadata
               Annotation
                 atSign: @ @49
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @50
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @50
+                element: self::@getter::foo
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: e1 @-1
                     staticElement: self::@enum::E::@getter::e1
                     staticType: E
-                    token: e1 @-1
                   SimpleIdentifier
+                    token: e2 @-1
                     staticElement: self::@enum::E::@getter::e2
                     staticType: E
-                    token: e2 @-1
                   SimpleIdentifier
+                    token: e3 @-1
                     staticElement: self::@enum::E::@getter::e3
                     staticType: E
-                    token: e3 @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -28632,21 +28621,21 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           covariant T @38
             metadata
               Annotation
                 atSign: @ @33
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @34
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @34
+                element: self::@getter::foo
         extendedType: List<T>
     topLevelVariables
       static const foo @6
@@ -28686,21 +28675,21 @@
             metadata
               Annotation
                 atSign: @ @28
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @29
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @29
+                element: self::@getter::foo
             type: int
           static const isStaticConst @79
             metadata
               Annotation
                 atSign: @ @59
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @60
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @60
+                element: self::@getter::foo
             type: int
             constantInitializer
               IntegerLiteral
@@ -28710,11 +28699,11 @@
             metadata
               Annotation
                 atSign: @ @101
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @102
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @102
+                element: self::@getter::foo
             type: int
         constructors
           synthetic @-1
@@ -28764,11 +28753,11 @@
   metadata
     Annotation
       atSign: @ @24
-      element: self::@getter::foo
       name: SimpleIdentifier
+        token: foo @25
         staticElement: self::@getter::foo
         staticType: null
-        token: foo @25
+      element: self::@getter::foo
   definingUnit
     topLevelVariables
       static const foo @52
@@ -28798,22 +28787,22 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           covariant T @34
             defaultType: dynamic
             metadata
               Annotation
                 atSign: @ @29
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @30
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @30
+                element: self::@getter::foo
         superclassConstraints
           Object
         constructors
@@ -28846,22 +28835,22 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           unrelated T @41
             defaultType: dynamic
             metadata
               Annotation
                 atSign: @ @36
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @37
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @37
+                element: self::@getter::foo
         aliasedType: void Function(int)
         aliasedElement: GenericFunctionTypeElement
           parameters
@@ -28870,11 +28859,11 @@
               metadata
                 Annotation
                   atSign: @ @44
-                  element: self::@getter::foo
                   name: SimpleIdentifier
+                    token: foo @45
                     staticElement: self::@getter::foo
                     staticType: null
-                    token: foo @45
+                  element: self::@getter::foo
           returnType: void
     topLevelVariables
       static const foo @6
@@ -28904,22 +28893,22 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           unrelated T @36
             defaultType: dynamic
             metadata
               Annotation
                 atSign: @ @31
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @32
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @32
+                element: self::@getter::foo
         aliasedType: void Function<U>(int)
         aliasedElement: GenericFunctionTypeElement
           typeParameters
@@ -28927,22 +28916,22 @@
               metadata
                 Annotation
                   atSign: @ @55
-                  element: self::@getter::foo
                   name: SimpleIdentifier
+                    token: foo @56
                     staticElement: self::@getter::foo
                     staticType: null
-                    token: foo @56
+                  element: self::@getter::foo
           parameters
             requiredPositional a @72
               type: int
               metadata
                 Annotation
                   atSign: @ @63
-                  element: self::@getter::foo
                   name: SimpleIdentifier
+                    token: foo @64
                     staticElement: self::@getter::foo
                     staticType: null
-                    token: foo @64
+                  element: self::@getter::foo
           returnType: void
     topLevelVariables
       static const foo @6
@@ -28997,20 +28986,20 @@
       metadata
         Annotation
           atSign: @ @17
-          element: self::@getter::foo
           name: SimpleIdentifier
+            token: foo @18
             staticElement: self::@getter::foo
             staticType: null
-            token: foo @18
+          element: self::@getter::foo
     b.dart
       metadata
         Annotation
           atSign: @ @38
-          element: self::@getter::foo
           name: SimpleIdentifier
+            token: foo @39
             staticElement: self::@getter::foo
             staticType: null
-            token: foo @39
+          element: self::@getter::foo
 ''');
   }
 
@@ -29039,32 +29028,32 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         typeParameters
           covariant T @33
             metadata
               Annotation
                 atSign: @ @28
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @29
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @29
+                element: self::@getter::foo
         parameters
           optionalNamed a @47
             type: int?
             metadata
               Annotation
                 atSign: @ @37
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @38
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @38
+                element: self::@getter::foo
             constantInitializer
               IntegerLiteral
                 literal: 42 @51
@@ -29099,11 +29088,11 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         returnType: int
 ''');
   }
@@ -29134,22 +29123,22 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         parameters
           requiredPositional a @41
             type: int
             metadata
               Annotation
                 atSign: @ @32
-                element: self::@getter::foo
                 name: SimpleIdentifier
+                  token: foo @33
                   staticElement: self::@getter::foo
                   staticType: null
-                  token: foo @33
+                element: self::@getter::foo
         returnType: void
 ''');
   }
@@ -29178,21 +29167,21 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @17
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @17
+            element: self::@getter::foo
         type: int
       static const isConst @53
         metadata
           Annotation
             atSign: @ @42
-            element: self::@getter::foo
             name: SimpleIdentifier
+              token: foo @43
               staticElement: self::@getter::foo
               staticType: null
-              token: foo @43
+            element: self::@getter::foo
         type: int
         constantInitializer
           IntegerLiteral
@@ -29240,11 +29229,11 @@
       metadata
         Annotation
           atSign: @ @11
-          element: self::@getter::a
           name: SimpleIdentifier
+            token: a @12
             staticElement: self::@getter::a
             staticType: null
-            token: a @12
+          element: self::@getter::a
 ''');
   }
 
@@ -29278,19 +29267,19 @@
         metadata
           Annotation
             atSign: @ @22
-            element: a.dart::@getter::b
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: a.dart::@getter::b
-                staticType: null
-                token: b @25
-              period: . @24
               prefix: SimpleIdentifier
+                token: a @23
                 staticElement: self::@prefix::a
                 staticType: null
-                token: a @23
+              period: . @24
+              identifier: SimpleIdentifier
+                token: b @25
+                staticElement: a.dart::@getter::b
+                staticType: null
               staticElement: a.dart::@getter::b
               staticType: null
+            element: a.dart::@getter::b
         constructors
           synthetic @-1
 ''');
@@ -29319,11 +29308,11 @@
             metadata
               Annotation
                 atSign: @ @18
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @19
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @19
+                element: self::@getter::a
         returnType: dynamic
 ''');
   }
@@ -29351,11 +29340,11 @@
                 metadata
                   Annotation
                     atSign: @ @31
-                    element: self::@getter::a
                     name: SimpleIdentifier
+                      token: a @32
                       staticElement: self::@getter::a
                       staticType: null
-                      token: a @32
+                    element: self::@getter::a
             returnType: dynamic
     topLevelVariables
       static const a @6
@@ -29398,11 +29387,11 @@
             metadata
               Annotation
                 atSign: @ @25
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @26
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @26
+                element: self::@getter::a
         returnType: void
 ''');
   }
@@ -29430,11 +29419,11 @@
             metadata
               Annotation
                 atSign: @ @19
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @20
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @20
+                element: self::@getter::a
             constantInitializer
               NullLiteral
                 literal: null @26
@@ -29475,11 +29464,11 @@
                 metadata
                   Annotation
                     atSign: @ @66
-                    element: self::@getter::a
                     name: SimpleIdentifier
+                      token: a @67
                       staticElement: self::@getter::a
                       staticType: null
-                      token: a @67
+                    element: self::@getter::a
                 superConstructorParameter: x@35
             superConstructor: self::@class::A::@constructor::•
     topLevelVariables
@@ -29511,11 +29500,11 @@
         metadata
           Annotation
             atSign: @ @16
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @17
               staticElement: self::@getter::a
               staticType: null
-              token: a @17
+            element: self::@getter::a
         type: int
     accessors
       synthetic static get a @-1
@@ -29543,11 +29532,11 @@
             metadata
               Annotation
                 atSign: @ @24
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @25
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @25
+                element: self::@getter::a
         constructors
           synthetic @-1
     topLevelVariables
@@ -29580,11 +29569,11 @@
             metadata
               Annotation
                 atSign: @ @24
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @25
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @25
+                element: self::@getter::a
         supertype: D
         mixins
           E
@@ -29592,11 +29581,11 @@
           synthetic @-1
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::D::@constructor::•
-                superKeyword: super @0
             superConstructor: self::@class::D::@constructor::•
       class D @48
         constructors
@@ -29635,48 +29624,48 @@
             metadata
               Annotation
                 atSign: @ @21
-                element: <null>
                 name: SimpleIdentifier
+                  token: a @22
                   staticElement: <null>
                   staticType: null
-                  token: a @22
+                element: <null>
         supertype: Enum
         fields
           static const enumConstant v @31
             type: E<dynamic>
             constantInitializer
               InstanceCreationExpression
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
                 constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E<dynamic>
+                  period: . @0
                   name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
                     staticElement: ConstructorMember
                       base: self::@enum::E::@constructor::•
                       substitution: {T: dynamic}
                     staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
                   staticElement: ConstructorMember
                     base: self::@enum::E::@constructor::•
                     substitution: {T: dynamic}
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E<dynamic>
+                argumentList: ArgumentList
+                  leftParenthesis: ( @0
+                  rightParenthesis: ) @0
                 staticType: E<dynamic>
           synthetic static const values @-1
             type: List<E<dynamic>>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E<dynamic>
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E<dynamic>>
         constructors
@@ -29721,11 +29710,11 @@
             metadata
               Annotation
                 atSign: @ @18
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @19
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @19
+                element: self::@getter::a
         returnType: dynamic
 ''');
   }
@@ -29743,11 +29732,11 @@
             metadata
               Annotation
                 atSign: @ @26
-                element: self::@getter::a
                 name: SimpleIdentifier
+                  token: a @27
                   staticElement: self::@getter::a
                   staticType: null
-                  token: a @27
+                element: self::@getter::a
         aliasedType: dynamic Function()
         aliasedElement: GenericFunctionTypeElement
           returnType: dynamic
@@ -29789,11 +29778,11 @@
         metadata
           Annotation
             atSign: @ @13
-            element: self::@getter::a
             name: SimpleIdentifier
+              token: a @14
               staticElement: self::@getter::a
               staticType: null
-              token: a @14
+            element: self::@getter::a
         type: int
     accessors
       synthetic static get a @-1
@@ -29838,19 +29827,19 @@
         metadata
           Annotation
             atSign: @ @34
-            element: self::@class::A::@getter::x
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: self::@class::A::@getter::x
-                staticType: null
-                token: x @37
-              period: . @36
               prefix: SimpleIdentifier
+                token: A @35
                 staticElement: self::@class::A
                 staticType: null
-                token: A @35
+              period: . @36
+              identifier: SimpleIdentifier
+                token: x @37
+                staticElement: self::@class::A::@getter::x
+                staticType: null
               staticElement: self::@class::A::@getter::x
               staticType: null
+            element: self::@class::A::@getter::x
         constructors
           synthetic @-1
 ''');
@@ -29871,19 +29860,19 @@
         metadata
           Annotation
             atSign: @ @17
-            element: self::@enum::E::@getter::b
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: self::@enum::E::@getter::b
-                staticType: null
-                token: b @20
-              period: . @19
               prefix: SimpleIdentifier
+                token: E @18
                 staticElement: self::@enum::E
                 staticType: null
-                token: E @18
+              period: . @19
+              identifier: SimpleIdentifier
+                token: b @20
+                staticElement: self::@enum::E::@getter::b
+                staticType: null
               staticElement: self::@enum::E::@getter::b
               staticType: null
+            element: self::@enum::E::@getter::b
         constructors
           synthetic @-1
     enums
@@ -29894,83 +29883,83 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant b @11
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           static const enumConstant c @14
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
                   SimpleIdentifier
+                    token: c @-1
                     staticElement: self::@enum::E::@getter::c
                     staticType: E
-                    token: c @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -30004,19 +29993,19 @@
         metadata
           Annotation
             atSign: @ @45
-            element: self::@extension::E::@getter::x
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: self::@extension::E::@getter::x
-                staticType: null
-                token: x @48
-              period: . @47
               prefix: SimpleIdentifier
+                token: E @46
                 staticElement: self::@extension::E
                 staticType: null
-                token: E @46
+              period: . @47
+              identifier: SimpleIdentifier
+                token: x @48
+                staticElement: self::@extension::E::@getter::x
+                staticType: null
               staticElement: self::@extension::E::@getter::x
               staticType: null
+            element: self::@extension::E::@getter::x
         constructors
           synthetic @-1
     extensions
@@ -30057,23 +30046,24 @@
         metadata
           Annotation
             atSign: @ @26
-            constructorName: SimpleIdentifier
-              staticElement: package:test/foo.dart::@extension::E::@getter::x
-              staticType: null
-              token: x @33
-            element: package:test/foo.dart::@extension::E::@getter::x
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: package:test/foo.dart::@extension::E
-                staticType: null
-                token: E @31
-              period: . @30
               prefix: SimpleIdentifier
+                token: foo @27
                 staticElement: self::@prefix::foo
                 staticType: null
-                token: foo @27
+              period: . @30
+              identifier: SimpleIdentifier
+                token: E @31
+                staticElement: package:test/foo.dart::@extension::E
+                staticType: null
               staticElement: package:test/foo.dart::@extension::E
               staticType: null
+            period: . @32
+            constructorName: SimpleIdentifier
+              token: x @33
+              staticElement: package:test/foo.dart::@extension::E::@getter::x
+              staticType: null
+            element: package:test/foo.dart::@extension::E::@getter::x
         constructors
           synthetic @-1
 ''');
@@ -31275,60 +31265,60 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
             nonSynthetic: self::@enum::E::@field::a
           static const enumConstant b @14
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
             nonSynthetic: self::@enum::E::@field::b
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: a @-1
                     staticElement: self::@enum::E::@getter::a
                     staticType: E
-                    token: a @-1
                   SimpleIdentifier
+                    token: b @-1
                     staticElement: self::@enum::E::@getter::b
                     staticType: E
-                    token: b @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
             nonSynthetic: self::@enum::E
@@ -32741,16 +32731,16 @@
                 type: T
             constantInitializers
               SuperConstructorInvocation
+                superKeyword: super @0
                 argumentList: ArgumentList
+                  leftParenthesis: ( @0
                   arguments
                     SimpleIdentifier
+                      token: value @-1
                       staticElement: value@-1
                       staticType: T
-                      token: value @-1
-                  leftParenthesis: ( @0
                   rightParenthesis: ) @0
                 staticElement: self::@class::A::@constructor::•
-                superKeyword: super @0
             superConstructor: ConstructorMember
               base: self::@class::A::@constructor::•
               substitution: {T: T}
@@ -33321,33 +33311,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -33452,33 +33442,33 @@
               type: E
               constantInitializer
                 InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: SimpleIdentifier
+                        token: E @-1
+                        staticElement: self::@enum::E
+                        staticType: null
+                      type: E
+                    period: . @0
+                    name: SimpleIdentifier
+                      token: <empty> @-1 <synthetic>
+                      staticElement: self::@enum::E::@constructor::•
+                      staticType: null
+                    staticElement: self::@enum::E::@constructor::•
                   argumentList: ArgumentList
                     leftParenthesis: ( @0
                     rightParenthesis: ) @0
-                  constructorName: ConstructorName
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E::@constructor::•
-                      staticType: null
-                      token: <empty> @-1 <synthetic>
-                    period: . @0
-                    staticElement: self::@enum::E::@constructor::•
-                    type: NamedType
-                      name: SimpleIdentifier
-                        staticElement: self::@enum::E
-                        staticType: null
-                        token: E @-1
-                      type: E
                   staticType: E
             synthetic static const values @-1
               type: List<E>
               constantInitializer
                 ListLiteral
+                  leftBracket: [ @0
                   elements
                     SimpleIdentifier
+                      token: v @-1
                       staticElement: self::@enum::E::@getter::v
                       staticType: E
-                      token: v @-1
-                  leftBracket: [ @0
                   rightBracket: ] @0
                   staticType: List<E>
           constructors
@@ -33517,33 +33507,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -33619,33 +33609,33 @@
               type: E
               constantInitializer
                 InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: SimpleIdentifier
+                        token: E @-1
+                        staticElement: self::@enum::E
+                        staticType: null
+                      type: E
+                    period: . @0
+                    name: SimpleIdentifier
+                      token: <empty> @-1 <synthetic>
+                      staticElement: self::@enum::E::@constructor::•
+                      staticType: null
+                    staticElement: self::@enum::E::@constructor::•
                   argumentList: ArgumentList
                     leftParenthesis: ( @0
                     rightParenthesis: ) @0
-                  constructorName: ConstructorName
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E::@constructor::•
-                      staticType: null
-                      token: <empty> @-1 <synthetic>
-                    period: . @0
-                    staticElement: self::@enum::E::@constructor::•
-                    type: NamedType
-                      name: SimpleIdentifier
-                        staticElement: self::@enum::E
-                        staticType: null
-                        token: E @-1
-                      type: E
                   staticType: E
             synthetic static const values @-1
               type: List<E>
               constantInitializer
                 ListLiteral
+                  leftBracket: [ @0
                   elements
                     SimpleIdentifier
+                      token: v @-1
                       staticElement: self::@enum::E::@getter::v
                       staticType: E
-                      token: v @-1
-                  leftBracket: [ @0
                   rightBracket: ] @0
                   staticType: List<E>
           constructors
@@ -33719,33 +33709,33 @@
               type: E
               constantInitializer
                 InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: SimpleIdentifier
+                        token: E @-1
+                        staticElement: self::@enum::E
+                        staticType: null
+                      type: E
+                    period: . @0
+                    name: SimpleIdentifier
+                      token: <empty> @-1 <synthetic>
+                      staticElement: self::@enum::E::@constructor::•
+                      staticType: null
+                    staticElement: self::@enum::E::@constructor::•
                   argumentList: ArgumentList
                     leftParenthesis: ( @0
                     rightParenthesis: ) @0
-                  constructorName: ConstructorName
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E::@constructor::•
-                      staticType: null
-                      token: <empty> @-1 <synthetic>
-                    period: . @0
-                    staticElement: self::@enum::E::@constructor::•
-                    type: NamedType
-                      name: SimpleIdentifier
-                        staticElement: self::@enum::E
-                        staticType: null
-                        token: E @-1
-                      type: E
                   staticType: E
             synthetic static const values @-1
               type: List<E>
               constantInitializer
                 ListLiteral
+                  leftBracket: [ @0
                   elements
                     SimpleIdentifier
+                      token: v @-1
                       staticElement: self::@enum::E::@getter::v
                       staticType: E
-                      token: v @-1
-                  leftBracket: [ @0
                   rightBracket: ] @0
                   staticType: List<E>
           constructors
@@ -33887,33 +33877,33 @@
             type: E
             constantInitializer
               InstanceCreationExpression
+                constructorName: ConstructorName
+                  type: NamedType
+                    name: SimpleIdentifier
+                      token: E @-1
+                      staticElement: self::@enum::E
+                      staticType: null
+                    type: E
+                  period: . @0
+                  name: SimpleIdentifier
+                    token: <empty> @-1 <synthetic>
+                    staticElement: self::@enum::E::@constructor::•
+                    staticType: null
+                  staticElement: self::@enum::E::@constructor::•
                 argumentList: ArgumentList
                   leftParenthesis: ( @0
                   rightParenthesis: ) @0
-                constructorName: ConstructorName
-                  name: SimpleIdentifier
-                    staticElement: self::@enum::E::@constructor::•
-                    staticType: null
-                    token: <empty> @-1 <synthetic>
-                  period: . @0
-                  staticElement: self::@enum::E::@constructor::•
-                  type: NamedType
-                    name: SimpleIdentifier
-                      staticElement: self::@enum::E
-                      staticType: null
-                      token: E @-1
-                    type: E
                 staticType: E
           synthetic static const values @-1
             type: List<E>
             constantInitializer
               ListLiteral
+                leftBracket: [ @0
                 elements
                   SimpleIdentifier
+                    token: v @-1
                     staticElement: self::@enum::E::@getter::v
                     staticType: E
-                    token: v @-1
-                leftBracket: [ @0
                 rightBracket: ] @0
                 staticType: List<E>
         constructors
@@ -36621,19 +36611,19 @@
       class C @43
         metadata
           Annotation
-            arguments: ArgumentList
-              arguments
-                SuperExpression
-                  staticType: dynamic
-                  superKeyword: super @30
-              leftParenthesis: ( @29
-              rightParenthesis: ) @35
             atSign: @ @27
-            element: self::@class::A::@constructor::•
             name: SimpleIdentifier
+              token: A @28
               staticElement: self::@class::A
               staticType: null
-              token: A @28
+            arguments: ArgumentList
+              leftParenthesis: ( @29
+              arguments
+                SuperExpression
+                  superKeyword: super @30
+                  staticType: dynamic
+              rightParenthesis: ) @35
+            element: self::@class::A::@constructor::•
         constructors
           synthetic @-1
 ''');
@@ -36661,19 +36651,19 @@
       class C @42
         metadata
           Annotation
-            arguments: ArgumentList
-              arguments
-                ThisExpression
-                  staticType: dynamic
-                  thisKeyword: this @30
-              leftParenthesis: ( @29
-              rightParenthesis: ) @34
             atSign: @ @27
-            element: self::@class::A::@constructor::•
             name: SimpleIdentifier
+              token: A @28
               staticElement: self::@class::A
               staticType: null
-              token: A @28
+            arguments: ArgumentList
+              leftParenthesis: ( @29
+              arguments
+                ThisExpression
+                  thisKeyword: this @30
+                  staticType: dynamic
+              rightParenthesis: ) @34
+            element: self::@class::A::@constructor::•
         constructors
           synthetic @-1
 ''');
@@ -36689,23 +36679,23 @@
       class C @17
         metadata
           Annotation
+            atSign: @ @0
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @1
+                staticElement: <null>
+                staticType: null
+              period: . @4
+              identifier: SimpleIdentifier
+                token: bar @5
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @8
               rightParenthesis: ) @9
-            atSign: @ @0
             element: <null>
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: bar @5
-              period: . @4
-              prefix: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: foo @1
-              staticElement: <null>
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -36721,23 +36711,23 @@
       class C @20
         metadata
           Annotation
+            atSign: @ @0
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: String @1
+                staticElement: dart:core::@class::String
+                staticType: null
+              period: . @7
+              identifier: SimpleIdentifier
+                token: foo @8
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @11
               rightParenthesis: ) @12
-            atSign: @ @0
             element: <null>
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: foo @8
-              period: . @7
-              prefix: SimpleIdentifier
-                staticElement: dart:core::@class::String
-                staticType: null
-                token: String @1
-              staticElement: <null>
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -36753,19 +36743,19 @@
         metadata
           Annotation
             atSign: @ @0
-            element: <null>
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: bar @5
-              period: . @4
               prefix: SimpleIdentifier
+                token: foo @1
                 staticElement: <null>
                 staticType: null
-                token: foo @1
+              period: . @4
+              identifier: SimpleIdentifier
+                token: bar @5
+                staticElement: <null>
+                staticType: null
               staticElement: <null>
               staticType: null
+            element: <null>
         constructors
           synthetic @-1
 ''');
@@ -36785,19 +36775,19 @@
         metadata
           Annotation
             atSign: @ @28
-            element: <null>
             name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: bar @33
-              period: . @32
               prefix: SimpleIdentifier
+                token: foo @29
                 staticElement: self::@prefix::foo
                 staticType: null
-                token: foo @29
+              period: . @32
+              identifier: SimpleIdentifier
+                token: bar @33
+                staticElement: <null>
+                staticType: null
               staticElement: <null>
               staticType: null
+            element: <null>
         constructors
           synthetic @-1
 ''');
@@ -36813,27 +36803,28 @@
       class C @21
         metadata
           Annotation
+            atSign: @ @0
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @1
+                staticElement: <null>
+                staticType: null
+              period: . @4
+              identifier: SimpleIdentifier
+                token: bar @5
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+              staticType: null
+            period: . @8
+            constructorName: SimpleIdentifier
+              token: baz @9
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @12
               rightParenthesis: ) @13
-            atSign: @ @0
-            constructorName: SimpleIdentifier
-              staticElement: <null>
-              staticType: null
-              token: baz @9
             element: <null>
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: bar @5
-              period: . @4
-              prefix: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: foo @1
-              staticElement: <null>
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -36852,27 +36843,28 @@
       class C @49
         metadata
           Annotation
+            atSign: @ @28
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @29
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @32
+              identifier: SimpleIdentifier
+                token: bar @33
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+              staticType: null
+            period: . @36
+            constructorName: SimpleIdentifier
+              token: baz @37
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @40
               rightParenthesis: ) @41
-            atSign: @ @28
-            constructorName: SimpleIdentifier
-              staticElement: <null>
-              staticType: null
-              token: baz @37
             element: <null>
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: bar @33
-              period: . @32
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @29
-              staticElement: <null>
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -36891,27 +36883,28 @@
       class C @52
         metadata
           Annotation
+            atSign: @ @28
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @29
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @32
+              identifier: SimpleIdentifier
+                token: Future @33
+                staticElement: dart:async::@class::Future
+                staticType: null
+              staticElement: dart:async::@class::Future
+              staticType: null
+            period: . @39
+            constructorName: SimpleIdentifier
+              token: bar @40
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @43
               rightParenthesis: ) @44
-            atSign: @ @28
-            constructorName: SimpleIdentifier
-              staticElement: <null>
-              staticType: null
-              token: bar @40
             element: <null>
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: dart:async::@class::Future
-                staticType: null
-                token: Future @33
-              period: . @32
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @29
-              staticElement: dart:async::@class::Future
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -36927,23 +36920,23 @@
       class C @17
         metadata
           Annotation
+            atSign: @ @0
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @1
+                staticElement: <null>
+                staticType: null
+              period: . @4
+              identifier: SimpleIdentifier
+                token: bar @5
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @8
               rightParenthesis: ) @9
-            atSign: @ @0
             element: <null>
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: bar @5
-              period: . @4
-              prefix: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: foo @1
-              staticElement: <null>
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -36962,23 +36955,23 @@
       class C @45
         metadata
           Annotation
+            atSign: @ @28
+            name: PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: foo @29
+                staticElement: self::@prefix::foo
+                staticType: null
+              period: . @32
+              identifier: SimpleIdentifier
+                token: bar @33
+                staticElement: <null>
+                staticType: null
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @36
               rightParenthesis: ) @37
-            atSign: @ @28
             element: <null>
-            name: PrefixedIdentifier
-              identifier: SimpleIdentifier
-                staticElement: <null>
-                staticType: null
-                token: bar @33
-              period: . @32
-              prefix: SimpleIdentifier
-                staticElement: self::@prefix::foo
-                staticType: null
-                token: foo @29
-              staticElement: <null>
-              staticType: null
         constructors
           synthetic @-1
 ''');
@@ -36994,11 +36987,11 @@
         metadata
           Annotation
             atSign: @ @0
-            element: <null>
             name: SimpleIdentifier
+              token: foo @1
               staticElement: <null>
               staticType: null
-              token: foo @1
+            element: <null>
         constructors
           synthetic @-1
 ''');
@@ -37025,11 +37018,11 @@
         metadata
           Annotation
             atSign: @ @35
-            element: <null>
             name: SimpleIdentifier
+              token: v @36
               staticElement: <null>
               staticType: null
-              token: v @36
+            element: <null>
         constructors
           synthetic @-1
 ''');
@@ -37044,15 +37037,15 @@
       class C @13
         metadata
           Annotation
+            atSign: @ @0
+            name: SimpleIdentifier
+              token: foo @1
+              staticElement: <null>
+              staticType: null
             arguments: ArgumentList
               leftParenthesis: ( @4
               rightParenthesis: ) @5
-            atSign: @ @0
             element: <null>
-            name: SimpleIdentifier
-              staticElement: <null>
-              staticType: null
-              token: foo @1
         constructors
           synthetic @-1
 ''');
@@ -37757,19 +37750,19 @@
         type: A<int>
         constantInitializer
           InstanceCreationExpression
-            argumentList: ArgumentList
-              leftParenthesis: ( @46
-              rightParenthesis: ) @47
             constructorName: ConstructorName
+              type: NamedType
+                name: SimpleIdentifier
+                  token: A @45
+                  staticElement: self::@class::A
+                  staticType: null
+                type: A<int>
               staticElement: ConstructorMember
                 base: self::@class::A::@constructor::•
                 substitution: {T: int}
-              type: NamedType
-                name: SimpleIdentifier
-                  staticElement: self::@class::A
-                  staticType: null
-                  token: A @45
-                type: A<int>
+            argumentList: ArgumentList
+              leftParenthesis: ( @46
+              rightParenthesis: ) @47
             staticType: A<int>
     accessors
       synthetic static get a @-1
diff --git a/pkg/compiler/lib/src/backend_strategy.dart b/pkg/compiler/lib/src/backend_strategy.dart
index a8f2d9f..a3ce46d 100644
--- a/pkg/compiler/lib/src/backend_strategy.dart
+++ b/pkg/compiler/lib/src/backend_strategy.dart
@@ -17,6 +17,7 @@
 import 'js_backend/inferred_data.dart';
 import 'js_emitter/code_emitter_task.dart';
 import 'js_model/locals.dart';
+import 'kernel/kernel_world.dart';
 import 'serialization/serialization.dart';
 import 'ssa/ssa.dart';
 import 'universe/codegen_world_builder.dart';
diff --git a/pkg/compiler/lib/src/compiler.dart b/pkg/compiler/lib/src/compiler.dart
index ba54779..8ff980a3 100644
--- a/pkg/compiler/lib/src/compiler.dart
+++ b/pkg/compiler/lib/src/compiler.dart
@@ -39,12 +39,14 @@
 import 'io/source_information.dart' show SourceInformation;
 import 'ir/modular.dart';
 import 'js_backend/backend.dart' show CodegenInputs;
+import 'js_backend/enqueuer.dart';
 import 'js_backend/inferred_data.dart';
 import 'js_model/js_strategy.dart';
 import 'js_model/js_world.dart';
 import 'js_model/locals.dart';
 import 'kernel/front_end_adapter.dart' show CompilerFileSystem;
 import 'kernel/kernel_strategy.dart';
+import 'kernel/kernel_world.dart';
 import 'kernel/loader.dart' show KernelLoaderTask, KernelResult;
 import 'null_compiler_output.dart' show NullCompilerOutput;
 import 'options.dart' show CompilerOptions;
@@ -56,7 +58,7 @@
 import 'universe/codegen_world_builder.dart';
 import 'universe/resolution_world_builder.dart';
 import 'universe/world_impact.dart' show WorldImpact, WorldImpactBuilderImpl;
-import 'world.dart' show JClosedWorld, KClosedWorld;
+import 'world.dart' show JClosedWorld;
 
 typedef MakeReporterFunction = CompilerDiagnosticReporter Function(
     Compiler compiler, CompilerOptions options);
@@ -499,7 +501,7 @@
         codegenResults.globalTypeInferenceResults;
     JClosedWorld closedWorld = globalInferenceResults.closedWorld;
     CodegenInputs codegenInputs = codegenResults.codegenInputs;
-    Enqueuer codegenEnqueuer = enqueuer.createCodegenEnqueuer(
+    CodegenEnqueuer codegenEnqueuer = enqueuer.createCodegenEnqueuer(
         closedWorld, globalInferenceResults, codegenInputs, codegenResults);
     _codegenWorldBuilder = codegenEnqueuer.worldBuilder;
 
diff --git a/pkg/compiler/lib/src/deferred_load/algorithm_state.dart b/pkg/compiler/lib/src/deferred_load/algorithm_state.dart
index 4aca919..5e1b914 100644
--- a/pkg/compiler/lib/src/deferred_load/algorithm_state.dart
+++ b/pkg/compiler/lib/src/deferred_load/algorithm_state.dart
@@ -11,7 +11,7 @@
 import '../compiler.dart' show Compiler;
 import '../elements/entities.dart';
 import '../kernel/element_map.dart';
-import '../world.dart' show KClosedWorld;
+import '../kernel/kernel_world.dart';
 
 /// Manages the state of the [EntityData] model. Every class, member, constant,
 /// etc, is wrapped in the deferred loading algorithm by an [EntityData] which
diff --git a/pkg/compiler/lib/src/deferred_load/deferred_load.dart b/pkg/compiler/lib/src/deferred_load/deferred_load.dart
index 405738c..4a5af37 100644
--- a/pkg/compiler/lib/src/deferred_load/deferred_load.dart
+++ b/pkg/compiler/lib/src/deferred_load/deferred_load.dart
@@ -286,8 +286,8 @@
 import '../elements/types.dart';
 import '../elements/entities.dart';
 import '../kernel/element_map.dart';
+import '../kernel/kernel_world.dart';
 import '../util/util.dart' show makeUnique;
-import '../world.dart' show KClosedWorld;
 
 class _DeferredLoadTaskMetrics implements Metrics {
   @override
diff --git a/pkg/compiler/lib/src/deferred_load/entity_data_info.dart b/pkg/compiler/lib/src/deferred_load/entity_data_info.dart
index b601c6c..6f6c33a 100644
--- a/pkg/compiler/lib/src/deferred_load/entity_data_info.dart
+++ b/pkg/compiler/lib/src/deferred_load/entity_data_info.dart
@@ -17,9 +17,9 @@
 import '../ir/util.dart';
 import '../kernel/kelements.dart' show KLocalFunction;
 import '../kernel/element_map.dart';
+import '../kernel/kernel_world.dart';
 import '../universe/use.dart';
 import '../universe/world_impact.dart' show WorldImpact, WorldImpactVisitorImpl;
-import '../world.dart' show KClosedWorld;
 
 /// [EntityDataInfo] is meta data about [EntityData] for a given compilation
 /// [Entity].
diff --git a/pkg/compiler/lib/src/enqueue.dart b/pkg/compiler/lib/src/enqueue.dart
index de9afc0..470e510 100644
--- a/pkg/compiler/lib/src/enqueue.dart
+++ b/pkg/compiler/lib/src/enqueue.dart
@@ -21,7 +21,6 @@
 import 'js_backend/enqueuer.dart';
 import 'universe/member_usage.dart';
 import 'universe/resolution_world_builder.dart';
-import 'universe/world_builder.dart';
 import 'universe/use.dart'
     show
         ConstantUse,
@@ -60,13 +59,17 @@
     return enqueuer;
   }
 
-  Enqueuer createCodegenEnqueuer(
+  CodegenEnqueuer createCodegenEnqueuer(
       JClosedWorld closedWorld,
       GlobalTypeInferenceResults globalInferenceResults,
       CodegenInputs codegenInputs,
       CodegenResults codegenResults) {
-    Enqueuer enqueuer = compiler.backendStrategy.createCodegenEnqueuer(this,
-        closedWorld, globalInferenceResults, codegenInputs, codegenResults)
+    CodegenEnqueuer enqueuer = compiler.backendStrategy.createCodegenEnqueuer(
+        this,
+        closedWorld,
+        globalInferenceResults,
+        codegenInputs,
+        codegenResults)
       ..onEmptyForTesting = compiler.onCodegenQueueEmptyForTesting;
     if (retainDataForTesting) {
       codegenEnqueuerForTesting = enqueuer;
@@ -142,7 +145,6 @@
   // side-effects.
   static bool skipEnqueuerCheckForTesting = false;
 
-  WorldBuilder get worldBuilder;
   WorldImpactVisitor get impactVisitor;
 
   /// Returns [:true:] if this enqueuer is the resolution enqueuer.
@@ -171,6 +173,8 @@
 
   Iterable<ClassEntity> get processedClasses;
 
+  Iterable<ClassEntity> get directlyInstantiatedClasses;
+
   CompilerTask get task;
   void checkClass(ClassEntity cls);
   void processStaticUse(MemberEntity member, StaticUse staticUse);
@@ -191,8 +195,7 @@
   bool checkEnqueuerConsistency(ElementEnvironment elementEnvironment) {
     task.measureSubtask('resolution.check', () {
       // Run through the classes and see if we need to enqueue more methods.
-      for (ClassEntity classElement
-          in worldBuilder.directlyInstantiatedClasses) {
+      for (ClassEntity classElement in directlyInstantiatedClasses) {
         for (ClassEntity currentClass = classElement;
             currentClass != null;
             currentClass = elementEnvironment.getSuperClass(currentClass)) {
@@ -214,7 +217,7 @@
 
   final Set<ClassEntity> _recentClasses = Setlet<ClassEntity>();
   bool _recentConstants = false;
-  final ResolutionEnqueuerWorldBuilder _worldBuilder;
+  final ResolutionWorldBuilder worldBuilder;
   WorkItemBuilder _workItemBuilder;
   final DiagnosticReporter _reporter;
   final AnnotationsData _annotationsData;
@@ -232,13 +235,14 @@
   void Function() onEmptyForTesting;
 
   ResolutionEnqueuer(this.task, this._reporter, this.listener,
-      this._worldBuilder, this._workItemBuilder, this._annotationsData,
+      this.worldBuilder, this._workItemBuilder, this._annotationsData,
       [this.name = 'resolution enqueuer']) {
     impactVisitor = EnqueuerImpactVisitor(this);
   }
 
   @override
-  ResolutionWorldBuilder get worldBuilder => _worldBuilder;
+  Iterable<ClassEntity> get directlyInstantiatedClasses =>
+      worldBuilder.directlyInstantiatedClasses;
 
   @override
   bool get queueIsEmpty => _queue.isEmpty;
@@ -251,14 +255,14 @@
   }
 
   @override
-  Iterable<ClassEntity> get processedClasses => _worldBuilder.processedClasses;
+  Iterable<ClassEntity> get processedClasses => worldBuilder.processedClasses;
 
   void _registerInstantiatedType(InterfaceType type,
       {ConstructorEntity constructor,
       bool nativeUsage = false,
       bool globalDependency = false}) {
     task.measureSubtask('resolution.typeUse', () {
-      _worldBuilder.registerTypeInstantiation(type, _applyClassUse,
+      worldBuilder.registerTypeInstantiation(type, _applyClassUse,
           constructor: constructor);
       listener.registerInstantiatedType(type,
           isGlobal: globalDependency, nativeUsage: nativeUsage);
@@ -274,7 +278,7 @@
 
   @override
   void checkClass(ClassEntity cls) {
-    _worldBuilder.processClassMembers(cls,
+    worldBuilder.processClassMembers(cls,
         (MemberEntity member, EnumSet<MemberUse> useSet) {
       if (useSet.isNotEmpty) {
         _reporter.internalError(member,
@@ -300,7 +304,7 @@
   void _applyClassUse(ClassEntity cls, EnumSet<ClassUse> useSet) {
     if (useSet.contains(ClassUse.INSTANTIATED)) {
       _recentClasses.add(cls);
-      _worldBuilder.processClassMembers(cls, _applyMemberUse);
+      worldBuilder.processClassMembers(cls, _applyMemberUse);
       // We only tell the backend once that [cls] was instantiated, so
       // any additional dependencies must be treated as global
       // dependencies.
@@ -314,14 +318,14 @@
   @override
   void processDynamicUse(DynamicUse dynamicUse) {
     task.measureSubtask('resolution.dynamicUse', () {
-      _worldBuilder.registerDynamicUse(dynamicUse, _applyMemberUse);
+      worldBuilder.registerDynamicUse(dynamicUse, _applyMemberUse);
     });
   }
 
   @override
   void processConstantUse(ConstantUse constantUse) {
     task.measureSubtask('resolution.constantUse', () {
-      if (_worldBuilder.registerConstantUse(constantUse)) {
+      if (worldBuilder.registerConstantUse(constantUse)) {
         applyImpact(listener.registerUsedConstant(constantUse.value));
         _recentConstants = true;
       }
@@ -331,7 +335,7 @@
   @override
   void processStaticUse(MemberEntity member, StaticUse staticUse) {
     task.measureSubtask('resolution.staticUse', () {
-      _worldBuilder.registerStaticUse(staticUse, _applyMemberUse);
+      worldBuilder.registerStaticUse(staticUse, _applyMemberUse);
       // TODO(johnniwinther): Add `ResolutionWorldBuilder.registerConstructorUse`
       // for these:
       switch (staticUse.kind) {
@@ -380,7 +384,7 @@
         break;
       case TypeUseKind.TYPE_LITERAL:
         if (type is TypeVariableType) {
-          _worldBuilder.registerTypeVariableTypeLiteral(type);
+          worldBuilder.registerTypeVariableTypeLiteral(type);
         }
         break;
       case TypeUseKind.RTI_VALUE:
@@ -396,17 +400,17 @@
   }
 
   void _registerIsCheck(DartType type) {
-    _worldBuilder.registerIsCheck(type);
+    worldBuilder.registerIsCheck(type);
   }
 
   void _registerNamedTypeVariableNewRti(TypeVariableType type) {
-    _worldBuilder.registerNamedTypeVariableNewRti(type);
+    worldBuilder.registerNamedTypeVariableNewRti(type);
   }
 
   void _registerClosurizedMember(MemberEntity element) {
     assert(element.isInstanceMember);
     applyImpact(listener.registerClosurizedMember(element));
-    _worldBuilder.registerClosurizedMember(element);
+    worldBuilder.registerClosurizedMember(element);
   }
 
   void _forEach(void f(WorkItem work)) {
@@ -414,9 +418,9 @@
       while (_queue.isNotEmpty) {
         // TODO(johnniwinther): Find an optimal process order.
         WorkItem work = _queue.removeLast();
-        if (!_worldBuilder.isMemberProcessed(work.element)) {
+        if (!worldBuilder.isMemberProcessed(work.element)) {
           f(work);
-          _worldBuilder.registerProcessedMember(work.element);
+          worldBuilder.registerProcessedMember(work.element);
         }
       }
       List<ClassEntity> recents = _recentClasses.toList(growable: false);
@@ -448,8 +452,7 @@
   String toString() => 'Enqueuer($name)';
 
   @override
-  Iterable<MemberEntity> get processedEntities =>
-      _worldBuilder.processedMembers;
+  Iterable<MemberEntity> get processedEntities => worldBuilder.processedMembers;
 
   @override
   bool get isResolutionQueue => true;
@@ -465,13 +468,13 @@
   /// Registers [entity] as processed by the resolution enqueuer. Used only for
   /// testing.
   void registerProcessedElementInternal(MemberEntity entity) {
-    _worldBuilder.registerProcessedMember(entity);
+    worldBuilder.registerProcessedMember(entity);
   }
 
   /// Create a [WorkItem] for [entity] and add it to the work list if it has not
   /// already been processed.
   void _addToWorkList(MemberEntity entity) {
-    if (_worldBuilder.isMemberProcessed(entity)) return;
+    if (worldBuilder.isMemberProcessed(entity)) return;
     WorkItem workItem = _workItemBuilder.createWorkItem(entity);
     if (workItem == null) return;
 
@@ -481,7 +484,7 @@
     }
 
     applyImpact(listener.registerUsedElement(entity));
-    _worldBuilder.registerUsedElement(entity);
+    worldBuilder.registerUsedElement(entity);
     _queue.add(workItem);
   }
 
diff --git a/pkg/compiler/lib/src/js_backend/enqueuer.dart b/pkg/compiler/lib/src/js_backend/enqueuer.dart
index e8abbfb..a80f764 100644
--- a/pkg/compiler/lib/src/js_backend/enqueuer.dart
+++ b/pkg/compiler/lib/src/js_backend/enqueuer.dart
@@ -33,7 +33,7 @@
   final String name;
   final Set<ClassEntity> _recentClasses = Setlet();
   bool _recentConstants = false;
-  final CodegenWorldBuilderImpl _worldBuilder;
+  final CodegenWorldBuilderImpl worldBuilder;
   final WorkItemBuilder _workItemBuilder;
 
   @override
@@ -56,14 +56,15 @@
   // applying additional impacts before re-emptying the queue.
   void Function() onEmptyForTesting;
 
-  CodegenEnqueuer(this.task, this._worldBuilder, this._workItemBuilder,
+  CodegenEnqueuer(this.task, this.worldBuilder, this._workItemBuilder,
       this.listener, this._annotationsData)
       : this.name = 'codegen enqueuer' {
     impactVisitor = EnqueuerImpactVisitor(this);
   }
 
   @override
-  CodegenWorldBuilder get worldBuilder => _worldBuilder;
+  Iterable<ClassEntity> get directlyInstantiatedClasses =>
+      worldBuilder.directlyInstantiatedClasses;
 
   @override
   bool get queueIsEmpty => _queue.isEmpty;
@@ -98,7 +99,7 @@
   void _registerInstantiatedType(InterfaceType type,
       {bool nativeUsage = false}) {
     task.measureSubtask('codegen.typeUse', () {
-      _worldBuilder.registerTypeInstantiation(type, _applyClassUse);
+      worldBuilder.registerTypeInstantiation(type, _applyClassUse);
       listener.registerInstantiatedType(type, nativeUsage: nativeUsage);
     });
   }
@@ -111,7 +112,7 @@
 
   @override
   void checkClass(ClassEntity cls) {
-    _worldBuilder.processClassMembers(cls,
+    worldBuilder.processClassMembers(cls,
         (MemberEntity member, EnumSet<MemberUse> useSet) {
       if (useSet.isNotEmpty) {
         failedAt(member,
@@ -124,7 +125,7 @@
   void _applyClassUse(ClassEntity cls, EnumSet<ClassUse> useSet) {
     if (useSet.contains(ClassUse.INSTANTIATED)) {
       _recentClasses.add(cls);
-      _worldBuilder.processClassMembers(cls, _applyMemberUse);
+      worldBuilder.processClassMembers(cls, _applyMemberUse);
       // We only tell the backend once that [cls] was instantiated, so
       // any additional dependencies must be treated as global
       // dependencies.
@@ -151,14 +152,14 @@
   @override
   void processDynamicUse(DynamicUse dynamicUse) {
     task.measureSubtask('codegen.dynamicUse', () {
-      _worldBuilder.registerDynamicUse(dynamicUse, _applyMemberUse);
+      worldBuilder.registerDynamicUse(dynamicUse, _applyMemberUse);
     });
   }
 
   @override
   void processStaticUse(MemberEntity member, StaticUse staticUse) {
     task.measureSubtask('codegen.staticUse', () {
-      _worldBuilder.registerStaticUse(staticUse, _applyMemberUse);
+      worldBuilder.registerStaticUse(staticUse, _applyMemberUse);
       switch (staticUse.kind) {
         case StaticUseKind.CONSTRUCTOR_INVOKE:
         case StaticUseKind.CONST_CONSTRUCTOR_INVOKE:
@@ -206,17 +207,17 @@
         break;
       case TypeUseKind.TYPE_LITERAL:
         if (type is TypeVariableType) {
-          _worldBuilder.registerTypeVariableTypeLiteral(type);
+          worldBuilder.registerTypeVariableTypeLiteral(type);
         }
         break;
       case TypeUseKind.RTI_VALUE:
-        _worldBuilder.registerConstTypeLiteral(type);
+        worldBuilder.registerConstTypeLiteral(type);
         break;
       case TypeUseKind.TYPE_ARGUMENT:
-        _worldBuilder.registerTypeArgument(type);
+        worldBuilder.registerTypeArgument(type);
         break;
       case TypeUseKind.CONSTRUCTOR_REFERENCE:
-        _worldBuilder.registerConstructorReference(type);
+        worldBuilder.registerConstructorReference(type);
         break;
       case TypeUseKind.CONST_INSTANTIATION:
         failedAt(CURRENT_ELEMENT_SPANNABLE, "Unexpected type use: $typeUse.");
@@ -230,7 +231,7 @@
   @override
   void processConstantUse(ConstantUse constantUse) {
     task.measureSubtask('codegen.constantUse', () {
-      if (_worldBuilder.registerConstantUse(constantUse)) {
+      if (worldBuilder.registerConstantUse(constantUse)) {
         applyImpact(listener.registerUsedConstant(constantUse.value));
         _recentConstants = true;
       }
@@ -238,11 +239,11 @@
   }
 
   void _registerIsCheck(DartType type) {
-    _worldBuilder.registerIsCheck(type);
+    worldBuilder.registerIsCheck(type);
   }
 
   void _registerNamedTypeVariableNewRti(TypeVariableType type) {
-    _worldBuilder.registerNamedTypeVariableNewRti(type);
+    worldBuilder.registerNamedTypeVariableNewRti(type);
   }
 
   void _registerClosurizedMember(FunctionEntity element) {
@@ -303,5 +304,5 @@
 
   @override
   Iterable<ClassEntity> get processedClasses =>
-      _worldBuilder.instantiatedClasses;
+      worldBuilder.instantiatedClasses;
 }
diff --git a/pkg/compiler/lib/src/js_backend/field_analysis.dart b/pkg/compiler/lib/src/js_backend/field_analysis.dart
index 4ff7751..0f3326c 100644
--- a/pkg/compiler/lib/src/js_backend/field_analysis.dart
+++ b/pkg/compiler/lib/src/js_backend/field_analysis.dart
@@ -270,8 +270,8 @@
     sink.end(tag);
   }
 
-  factory JFieldAnalysis.from(KClosedWorldImpl closedWorld, JsToFrontendMap map,
-      CompilerOptions options) {
+  factory JFieldAnalysis.from(
+      KClosedWorld closedWorld, JsToFrontendMap map, CompilerOptions options) {
     Map<FieldEntity, FieldAnalysisData> fieldData = {};
 
     bool canBeElided(FieldEntity field) {
diff --git a/pkg/compiler/lib/src/js_backend/runtime_types_resolution.dart b/pkg/compiler/lib/src/js_backend/runtime_types_resolution.dart
index 253d438..2606826 100644
--- a/pkg/compiler/lib/src/js_backend/runtime_types_resolution.dart
+++ b/pkg/compiler/lib/src/js_backend/runtime_types_resolution.dart
@@ -12,6 +12,7 @@
 import '../elements/types.dart';
 import '../ir/runtime_type_analysis.dart';
 import '../kernel/kelements.dart';
+import '../kernel/kernel_world.dart';
 import '../options.dart';
 import '../serialization/serialization.dart';
 import '../universe/class_hierarchy.dart';
diff --git a/pkg/compiler/lib/src/js_model/js_strategy.dart b/pkg/compiler/lib/src/js_model/js_strategy.dart
index fa22c30..51028eb 100644
--- a/pkg/compiler/lib/src/js_model/js_strategy.dart
+++ b/pkg/compiler/lib/src/js_model/js_strategy.dart
@@ -41,6 +41,7 @@
 import '../js_emitter/js_emitter.dart' show CodeEmitterTask;
 import '../js/js.dart' as js;
 import '../kernel/kernel_strategy.dart';
+import '../kernel/kernel_world.dart';
 import '../native/behavior.dart';
 import '../native/enqueue.dart';
 import '../options.dart';
diff --git a/pkg/compiler/lib/src/js_model/js_world_builder.dart b/pkg/compiler/lib/src/js_model/js_world_builder.dart
index 6815146..fb5e0ef 100644
--- a/pkg/compiler/lib/src/js_model/js_world_builder.dart
+++ b/pkg/compiler/lib/src/js_model/js_world_builder.dart
@@ -24,6 +24,7 @@
 import '../js_backend/no_such_method_registry.dart';
 import '../js_backend/runtime_types_resolution.dart';
 import '../kernel/kelements.dart';
+import '../kernel/kernel_world.dart';
 import '../native/behavior.dart';
 import '../options.dart';
 import '../universe/class_hierarchy.dart';
@@ -31,7 +32,6 @@
 import '../universe/feature.dart';
 import '../universe/member_usage.dart';
 import '../universe/selector.dart';
-import '../world.dart';
 import 'closure.dart';
 import 'elements.dart';
 import 'element_map_impl.dart';
diff --git a/pkg/compiler/lib/src/kernel/kernel_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
index ef176a1..336ead7 100644
--- a/pkg/compiler/lib/src/kernel/kernel_strategy.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
@@ -187,7 +187,7 @@
             _nativeResolutionEnqueuer,
             _fieldAnalysis,
             compiler.deferredLoadTask),
-        ResolutionWorldBuilderImpl(
+        ResolutionWorldBuilder(
             _options,
             elementMap,
             elementEnvironment,
diff --git a/pkg/compiler/lib/src/kernel/kernel_world.dart b/pkg/compiler/lib/src/kernel/kernel_world.dart
index 14bbbff..7928607 100644
--- a/pkg/compiler/lib/src/kernel/kernel_world.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_world.dart
@@ -22,51 +22,27 @@
 
 import 'element_map_impl.dart';
 
-class KClosedWorldImpl implements KClosedWorld {
+/// The immutable result of the [ResolutionWorldBuilder].
+class KClosedWorld implements BuiltWorld {
   final KernelToElementMapImpl elementMap;
-
-  @override
   final KElementEnvironment elementEnvironment;
-
-  @override
   final DartTypes dartTypes;
-
-  @override
   final KCommonElements commonElements;
-
-  @override
   final NativeData nativeData;
-
-  @override
   final InterceptorData interceptorData;
-
-  @override
   final BackendUsage backendUsage;
-
-  @override
   final NoSuchMethodData noSuchMethodData;
-
-  @override
   final Map<ClassEntity, Set<ClassEntity>> mixinUses;
-
-  @override
   final Map<ClassEntity, Set<ClassEntity>> typesImplementedBySubclasses;
 
   // TODO(johnniwinther): Can this be derived from [ClassSet]s?
   final Set<ClassEntity> _implementedClasses;
-
-  @override
   final Iterable<MemberEntity> liveInstanceMembers;
 
-  @override
+  /// Members that are written either directly or through a setter selector.
   final Iterable<MemberEntity> assignedInstanceMembers;
-  @override
   final KFieldAnalysis fieldAnalysis;
-
-  @override
   final Iterable<ClassEntity> liveNativeClasses;
-
-  @override
   final Map<MemberEntity, MemberUsage> liveMemberUsage;
 
   @override
@@ -93,19 +69,23 @@
   @override
   final Set<Local> genericLocalFunctions;
 
-  @override
+  /// Set of live closurized members whose signatures reference type variables.
+  ///
+  /// A closurized method is considered live if the enclosing class has been
+  /// instantiated.
   final Set<FunctionEntity> closurizedMembersWithFreeTypeVariables;
 
-  @override
+  /// Set of (live) local functions (closures).
+  ///
+  /// A live function is one whose enclosing member function has been enqueued.
   final Iterable<Local> localFunctions;
 
   @override
   final Iterable<InterfaceType> instantiatedTypes;
 
-  @override
   RuntimeTypesNeed get rtiNeed => _rtiNeed;
 
-  KClosedWorldImpl(this.elementMap,
+  KClosedWorld(this.elementMap,
       {CompilerOptions options,
       this.elementEnvironment,
       this.dartTypes,
@@ -155,7 +135,7 @@
     return true;
   }
 
-  @override
+  /// Returns `true` if [cls] is implemented by an instantiated class.
   bool isImplemented(ClassEntity cls) {
     return _implementedClasses.contains(cls);
   }
@@ -175,7 +155,8 @@
     dynamicTypeArgumentDependencies.forEach(f);
   }
 
-  @override
+  /// Returns `true` if [member] has been marked as used (called, read, etc.) in
+  /// this world builder.
   bool isMemberUsed(MemberEntity member) => liveMemberUsage.containsKey(member);
 
   @override
diff --git a/pkg/compiler/lib/src/universe/codegen_world_builder.dart b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
index c41f8e3..1832cbc 100644
--- a/pkg/compiler/lib/src/universe/codegen_world_builder.dart
+++ b/pkg/compiler/lib/src/universe/codegen_world_builder.dart
@@ -28,7 +28,7 @@
 /// World builder specific to codegen.
 ///
 /// This adds additional access to liveness of selectors and elements.
-abstract class CodegenWorldBuilder implements WorldBuilder {
+abstract class CodegenWorldBuilder {
   /// Register [constant] as needed for emission.
   void addCompileTimeConstantForEmission(ConstantValue constant);
 
@@ -99,7 +99,7 @@
   OneShotInterceptorData get oneShotInterceptorData;
 }
 
-class CodegenWorldBuilderImpl extends WorldBuilderBase
+class CodegenWorldBuilderImpl extends WorldBuilder
     implements CodegenWorldBuilder {
   final JClosedWorld _closedWorld;
   final OneShotInterceptorData _oneShotInterceptorData;
@@ -170,7 +170,6 @@
       .where((cls) => _processedClasses[cls].isInstantiated);
 
   // TODO(johnniwinther): Improve semantic precision.
-  @override
   Iterable<ClassEntity> get directlyInstantiatedClasses {
     return _directlyInstantiatedClasses;
   }
diff --git a/pkg/compiler/lib/src/universe/resolution_world_builder.dart b/pkg/compiler/lib/src/universe/resolution_world_builder.dart
index 3b3d0d37..2d04eae 100644
--- a/pkg/compiler/lib/src/universe/resolution_world_builder.dart
+++ b/pkg/compiler/lib/src/universe/resolution_world_builder.dart
@@ -23,7 +23,7 @@
 import '../options.dart';
 import '../util/enumset.dart';
 import '../util/util.dart';
-import '../world.dart' show KClosedWorld, OpenWorld;
+import '../world.dart' show World;
 import 'call_structure.dart';
 import 'class_hierarchy.dart' show ClassHierarchyBuilder, ClassQueries;
 import 'class_set.dart';
@@ -33,65 +33,6 @@
     show ConstantUse, DynamicUse, DynamicUseKind, StaticUse, StaticUseKind;
 import 'world_builder.dart';
 
-abstract class ResolutionWorldBuilder implements WorldBuilder, OpenWorld {
-  /// The closed world computed by this world builder.
-  ///
-  /// This is only available after the world builder has been closed.
-  KClosedWorld get closedWorldForTesting;
-
-  void registerClass(ClassEntity cls);
-}
-
-/// Extended [ResolutionWorldBuilder] interface used by the
-/// [ResolutionEnqueuer].
-abstract class ResolutionEnqueuerWorldBuilder extends ResolutionWorldBuilder {
-  /// Returns the classes registered as directly or indirectly instantiated.
-  Iterable<ClassEntity> get processedClasses;
-
-  /// Registers that [element] has been closurized.
-  void registerClosurizedMember(MemberEntity element);
-
-  /// Register [type] as (directly) instantiated.
-  // TODO(johnniwinther): Fully enforce the separation between exact, through
-  // subclass and through subtype instantiated types/classes.
-  // TODO(johnniwinther): Support unknown type arguments for generic types.
-  void registerTypeInstantiation(
-      InterfaceType type, ClassUsedCallback classUsed,
-      {ConstructorEntity constructor});
-
-  /// Computes usage for all members declared by [cls]. Calls [membersUsed] with
-  /// the usage changes for each member.
-  ///
-  /// If [checkEnqueuerConsistency] is `true` we check that no new member
-  /// usage can be found. This check is performed without changing the already
-  /// collected member usage.
-  void processClassMembers(ClassEntity cls, MemberUsedCallback memberUsed,
-      {bool checkEnqueuerConsistency = false});
-
-  /// Applies the [dynamicUse] to applicable instance members. Calls
-  /// [membersUsed] with the usage changes for each member.
-  void registerDynamicUse(DynamicUse dynamicUse, MemberUsedCallback memberUsed);
-
-  /// Applies the [staticUse] to applicable members. Calls [membersUsed] with
-  /// the usage changes for each member.
-  void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed);
-
-  /// Register the constant [use] with this world builder. Returns `true` if
-  /// the constant use was new to the world.
-  bool registerConstantUse(ConstantUse use);
-
-  bool isMemberProcessed(MemberEntity member);
-  void registerProcessedMember(MemberEntity member);
-  Iterable<MemberEntity> get processedMembers;
-
-  /// Registers that [type] is checked in this world builder.
-  void registerIsCheck(DartType type);
-
-  void registerNamedTypeVariableNewRti(TypeVariableType typeVariable);
-
-  void registerTypeVariableTypeLiteral(TypeVariableType typeVariable);
-}
-
 /// The type and kind of an instantiation registered through
 /// `ResolutionWorldBuilder.registerTypeInstantiation`.
 class Instance {
@@ -248,9 +189,7 @@
   }
 }
 
-/// Implementation of [ResolutionEnqueuerWorldBuilder].
-class ResolutionWorldBuilderImpl extends WorldBuilderBase
-    implements ResolutionEnqueuerWorldBuilder {
+class ResolutionWorldBuilder extends WorldBuilder implements World {
   /// Instantiation information for all classes with instantiated types.
   ///
   /// Invariant: Elements are declaration elements.
@@ -340,7 +279,7 @@
 
   final KernelToElementMapImpl _elementMap;
 
-  ResolutionWorldBuilderImpl(
+  ResolutionWorldBuilder(
       this._options,
       this._elementMap,
       this._elementEnvironment,
@@ -359,23 +298,22 @@
       this._classHierarchyBuilder,
       this._classQueries);
 
-  @override
+  /// Returns the classes registered as directly or indirectly instantiated.
   Iterable<ClassEntity> get processedClasses => _processedClasses.keys
       .where((cls) => _processedClasses[cls].isInstantiated);
 
-  @override
   bool isMemberProcessed(MemberEntity member) =>
       _processedMembers.contains(member);
 
-  @override
   void registerProcessedMember(MemberEntity member) {
     _processedMembers.add(member);
   }
 
-  @override
   Iterable<MemberEntity> get processedMembers => _processedMembers;
 
-  @override
+  /// The closed world computed by this world builder.
+  ///
+  /// This is only available after the world builder has been closed.
   KClosedWorld get closedWorldForTesting {
     if (!_closed) {
       failedAt(
@@ -385,7 +323,6 @@
   }
 
   // TODO(johnniwinther): Improve semantic precision.
-  @override
   Iterable<ClassEntity> get directlyInstantiatedClasses {
     Set<ClassEntity> classes = {};
     getInstantiationMap().forEach((ClassEntity cls, InstantiationInfo info) {
@@ -396,7 +333,7 @@
     return classes;
   }
 
-  @override
+  /// Registers that [element] has been closurized.
   void registerClosurizedMember(MemberEntity element) {
     FunctionType type = _elementEnvironment.getFunctionType(element);
     if (type.containsTypeVariables) {
@@ -404,10 +341,10 @@
     }
   }
 
+  /// Register [type] as (directly) instantiated.
   // TODO(johnniwinther): Fully enforce the separation between exact, through
   // subclass and through subtype instantiated types/classes.
   // TODO(johnniwinther): Support unknown type arguments for generic types.
-  @override
   void registerTypeInstantiation(
       InterfaceType type, ClassUsedCallback classUsed,
       {ConstructorEntity constructor}) {
@@ -495,7 +432,8 @@
     return _hasMatchingSelector(_invokedSetters[member.name], member);
   }
 
-  @override
+  /// Applies the [dynamicUse] to applicable instance members. Calls
+  /// [membersUsed] with the usage changes for each member.
   void registerDynamicUse(
       DynamicUse dynamicUse, MemberUsedCallback memberUsed) {
     Selector selector = dynamicUse.selector;
@@ -573,22 +511,23 @@
     return constraints.addReceiverConstraint(constraint);
   }
 
-  @override
+  /// Registers that [type] is checked in this world builder.
   void registerIsCheck(covariant DartType type) {
     _isChecks.add(type);
   }
 
-  @override
   void registerNamedTypeVariableNewRti(TypeVariableType type) {
     _namedTypeVariablesNewRti.add(type);
   }
 
-  @override
+  /// Register the constant [use] with this world builder. Returns `true` if
+  /// the constant use was new to the world.
   bool registerConstantUse(ConstantUse use) {
     return _constantValues.add(use.value);
   }
 
-  @override
+  /// Applies the [staticUse] to applicable members. Calls [membersUsed] with
+  /// the usage changes for each member.
   void registerStaticUse(StaticUse staticUse, MemberUsedCallback memberUsed) {
     if (staticUse.kind == StaticUseKind.CLOSURE) {
       Local localFunction = staticUse.element;
@@ -718,7 +657,12 @@
     }
   }
 
-  @override
+  /// Computes usage for all members declared by [cls]. Calls [membersUsed] with
+  /// the usage changes for each member.
+  ///
+  /// If [checkEnqueuerConsistency] is `true` we check that no new member
+  /// usage can be found. This check is performed without changing the already
+  /// collected member usage.
   void processClassMembers(ClassEntity cls, MemberUsedCallback memberUsed,
       {bool checkEnqueuerConsistency = false}) {
     _elementEnvironment.forEachClassMember(cls,
@@ -891,7 +835,6 @@
     }
   }
 
-  @override
   void registerUsedElement(MemberEntity element) {
     if (element.isInstanceMember && !element.isAbstract) {
       _liveInstanceMembers.add(element);
@@ -945,12 +888,23 @@
     return assignedInstanceMembers;
   }
 
-  @override
   void registerClass(ClassEntity cls) {
     _classHierarchyBuilder.registerClass(cls);
   }
 
-  @override
+  /// Returns `true` if [member] is inherited into a subtype of [type].
+  ///
+  /// For instance:
+  ///
+  ///     class A { m() {} }
+  ///     class B extends A implements I {}
+  ///     class C extends Object with A implements I {}
+  ///     abstract class I { m(); }
+  ///     abstract class J implements A { }
+  ///
+  /// Here `A.m` is inherited into `A`, `B`, and `C`. Because `B` and
+  /// `C` implement `I`, `isInheritedInSubtypeOf(A.m, I)` is true, but
+  /// `isInheritedInSubtypeOf(A.m, J)` is false.
   bool isInheritedIn(
       MemberEntity member, ClassEntity type, ClassRelation relation) {
     // TODO(johnniwinther): Use the [member] itself to avoid enqueueing members
@@ -979,7 +933,6 @@
     throw UnsupportedError("Unexpected ClassRelation $relation.");
   }
 
-  @override
   KClosedWorld closeWorld(DiagnosticReporter reporter) {
     Map<ClassEntity, Set<ClassEntity>> typesImplementedBySubclasses =
         populateHierarchyNodes();
@@ -1014,7 +967,7 @@
       }
     });
 
-    KClosedWorld closedWorld = KClosedWorldImpl(_elementMap,
+    KClosedWorld closedWorld = KClosedWorld(_elementMap,
         options: _options,
         elementEnvironment: _elementEnvironment,
         dartTypes: _dartTypes,
diff --git a/pkg/compiler/lib/src/universe/world_builder.dart b/pkg/compiler/lib/src/universe/world_builder.dart
index 9470571..d75a9e2 100644
--- a/pkg/compiler/lib/src/universe/world_builder.dart
+++ b/pkg/compiler/lib/src/universe/world_builder.dart
@@ -10,7 +10,8 @@
 import '../elements/types.dart';
 import '../ir/static_type.dart';
 import '../js_backend/native_data.dart' show NativeBasicData;
-import '../world.dart' show World, JClosedWorld, OpenWorld;
+import '../universe/resolution_world_builder.dart' show ResolutionWorldBuilder;
+import '../world.dart' show World;
 import 'selector.dart' show Selector;
 import 'use.dart' show DynamicUse, StaticUse;
 
@@ -99,8 +100,8 @@
   }
 
   @override
-  bool appliedUnnamed(
-      DynamicUse dynamicUse, MemberEntity member, covariant OpenWorld world) {
+  bool appliedUnnamed(DynamicUse dynamicUse, MemberEntity member,
+      covariant ResolutionWorldBuilder world) {
     Selector selector = dynamicUse.selector;
     StrongModeConstraint constraint = dynamicUse.receiverConstraint;
     return selector.appliesUnnamed(member) &&
@@ -184,7 +185,7 @@
 
   bool needsNoSuchMethodHandling(Selector selector, World world) => true;
 
-  bool canHit(MemberEntity element, Name name, OpenWorld world) {
+  bool canHit(MemberEntity element, Name name, ResolutionWorldBuilder world) {
     return world.isInheritedIn(element, cls, relation);
   }
 
@@ -207,19 +208,7 @@
   String toString() => 'StrongModeConstraint($cls,$relation)';
 }
 
-/// The [WorldBuilder] is an auxiliary class used in the process of computing
-/// the [JClosedWorld].
-// TODO(johnniwinther): Move common implementation to a [WorldBuilderBase] when
-// universes and worlds have been unified.
 abstract class WorldBuilder {
-  /// All directly instantiated classes, that is, classes with a generative
-  /// constructor that has been called directly and not only through a
-  /// super-call.
-  // TODO(johnniwinther): Improve semantic precision.
-  Iterable<ClassEntity> get directlyInstantiatedClasses;
-}
-
-abstract class WorldBuilderBase {
   final Map<Entity, Set<DartType>> staticTypeArgumentDependencies = {};
 
   final Map<Selector, Set<DartType>> dynamicTypeArgumentDependencies = {};
diff --git a/pkg/compiler/lib/src/world.dart b/pkg/compiler/lib/src/world.dart
index b5c4d4f..7a77d72 100644
--- a/pkg/compiler/lib/src/world.dart
+++ b/pkg/compiler/lib/src/world.dart
@@ -5,21 +5,14 @@
 library dart2js.world;
 
 import 'closure.dart';
-import 'common.dart';
-import 'common/elements.dart'
-    show
-        JCommonElements,
-        JElementEnvironment,
-        KCommonElements,
-        KElementEnvironment;
+import 'common/elements.dart' show JCommonElements, JElementEnvironment;
 import 'deferred_load/output_unit.dart';
 import 'elements/entities.dart';
 import 'elements/names.dart';
 import 'elements/types.dart';
 import 'inferrer/abstract_value_domain.dart';
-import 'ir/static_type.dart';
 import 'js_backend/annotations.dart';
-import 'js_backend/field_analysis.dart' show JFieldAnalysis, KFieldAnalysis;
+import 'js_backend/field_analysis.dart' show JFieldAnalysis;
 import 'js_backend/backend_usage.dart' show BackendUsage;
 import 'js_backend/interceptor_data.dart' show InterceptorData;
 import 'js_backend/native_data.dart' show NativeData;
@@ -224,28 +217,6 @@
   void registerExtractTypeArguments(ClassEntity interface);
 }
 
-abstract class OpenWorld implements World {
-  void registerUsedElement(MemberEntity element);
-
-  KClosedWorld closeWorld(DiagnosticReporter reporter);
-
-  /// Returns `true` if [member] is inherited into a subtype of [type].
-  ///
-  /// For instance:
-  ///
-  ///     class A { m() {} }
-  ///     class B extends A implements I {}
-  ///     class C extends Object with A implements I {}
-  ///     abstract class I { m(); }
-  ///     abstract class J implements A { }
-  ///
-  /// Here `A.m` is inherited into `A`, `B`, and `C`. Because `B` and
-  /// `C` implement `I`, `isInheritedInSubtypeOf(A.m, I)` is true, but
-  /// `isInheritedInSubtypeOf(A.m, J)` is false.
-  bool isInheritedIn(
-      MemberEntity member, ClassEntity type, ClassRelation relation);
-}
-
 /// A [BuiltWorld] is an immutable result of a [WorldBuilder].
 abstract class BuiltWorld {
   ClassHierarchy get classHierarchy;
@@ -298,52 +269,3 @@
   void forEachDynamicTypeArgument(
       void f(Selector selector, Set<DartType> typeArguments));
 }
-
-// TODO(johnniwinther): Rename this to `ResolutionWorld` or `KWorld`?
-// The immutable result of the [ResolutionWorldBuilder].
-abstract class KClosedWorld implements BuiltWorld {
-  DartTypes get dartTypes;
-  KFieldAnalysis get fieldAnalysis;
-  BackendUsage get backendUsage;
-  NativeData get nativeData;
-  InterceptorData get interceptorData;
-  KElementEnvironment get elementEnvironment;
-  KCommonElements get commonElements;
-
-  @override
-  ClassHierarchy get classHierarchy;
-
-  /// Returns `true` if [cls] is implemented by an instantiated class.
-  bool isImplemented(ClassEntity cls);
-
-  Iterable<MemberEntity> get liveInstanceMembers;
-  Map<ClassEntity, Set<ClassEntity>> get mixinUses;
-  Map<ClassEntity, Set<ClassEntity>> get typesImplementedBySubclasses;
-
-  /// Members that are written either directly or through a setter selector.
-  Iterable<MemberEntity> get assignedInstanceMembers;
-
-  Iterable<ClassEntity> get liveNativeClasses;
-  Map<MemberEntity, MemberUsage> get liveMemberUsage;
-  RuntimeTypesNeed get rtiNeed;
-  NoSuchMethodData get noSuchMethodData;
-
-  @override
-  AnnotationsData get annotationsData;
-
-  /// Set of live closurized members whose signatures reference type variables.
-  ///
-  /// A closurized method is considered live if the enclosing class has been
-  /// instantiated.
-  Iterable<FunctionEntity> get closurizedMembersWithFreeTypeVariables;
-
-  /// Set of (live) local functions (closures).
-  ///
-  /// A live function is one whose enclosing member function has been enqueued.
-  Iterable<Local> get localFunctions;
-
-  /// Returns `true` if [member] has been marked as used (called, read, etc.) in
-  /// this world builder.
-  // TODO(johnniwinther): Maybe this should be part of [ClosedWorld] (instead).
-  bool isMemberUsed(MemberEntity member);
-}
diff --git a/pkg/compiler/test/helpers/type_test_helper.dart b/pkg/compiler/test/helpers/type_test_helper.dart
index 5fdd343..570e368 100644
--- a/pkg/compiler/test/helpers/type_test_helper.dart
+++ b/pkg/compiler/test/helpers/type_test_helper.dart
@@ -15,8 +15,9 @@
 import 'package:compiler/src/elements/entities.dart';
 import 'package:compiler/src/kernel/kelements.dart';
 import 'package:compiler/src/kernel/kernel_strategy.dart';
+import 'package:compiler/src/kernel/kernel_world.dart';
 import 'package:compiler/src/options.dart';
-import 'package:compiler/src/world.dart' show JClosedWorld, KClosedWorld;
+import 'package:compiler/src/world.dart' show JClosedWorld;
 import 'memory_compiler.dart' as memory;
 
 extension DartTypeHelpers on DartType {
diff --git a/pkg/compiler/test/inlining/meta_annotations_test.dart b/pkg/compiler/test/inlining/meta_annotations_test.dart
index 0551ccb..e13070d 100644
--- a/pkg/compiler/test/inlining/meta_annotations_test.dart
+++ b/pkg/compiler/test/inlining/meta_annotations_test.dart
@@ -9,7 +9,7 @@
 import 'package:compiler/src/common/elements.dart';
 import 'package:compiler/src/compiler.dart';
 import 'package:compiler/src/elements/entities.dart';
-import 'package:compiler/src/world.dart' show KClosedWorld;
+import 'package:compiler/src/kernel/kernel_world.dart';
 import '../helpers/memory_compiler.dart';
 
 const Map<String, String> MEMORY_SOURCE_FILES = const {
diff --git a/pkg/compiler/test/member_usage/member_usage_test.dart b/pkg/compiler/test/member_usage/member_usage_test.dart
index ff367d6..0134f01 100644
--- a/pkg/compiler/test/member_usage/member_usage_test.dart
+++ b/pkg/compiler/test/member_usage/member_usage_test.dart
@@ -81,7 +81,7 @@
       Map<Id, ActualData<Features>> actualMap,
       {bool verbose: false}) {
     KernelFrontendStrategy frontendStrategy = compiler.frontendStrategy;
-    ResolutionWorldBuilderImpl resolutionWorldBuilder =
+    ResolutionWorldBuilder resolutionWorldBuilder =
         compiler.resolutionWorldBuilderForTesting;
     ir.Member node = frontendStrategy.elementMap.getMemberNode(member);
     Features features = new Features();
diff --git a/pkg/compiler/test/model/class_set_test.dart b/pkg/compiler/test/model/class_set_test.dart
index fd8526e..31e538e 100644
--- a/pkg/compiler/test/model/class_set_test.dart
+++ b/pkg/compiler/test/model/class_set_test.dart
@@ -11,6 +11,7 @@
 import 'package:expect/expect.dart';
 import 'package:async_helper/async_helper.dart';
 import 'package:compiler/src/elements/entities.dart' show ClassEntity;
+import 'package:compiler/src/kernel/kernel_world.dart';
 import 'package:compiler/src/universe/class_set.dart';
 import 'package:compiler/src/util/enumset.dart';
 import 'package:compiler/src/world.dart';
diff --git a/pkg/compiler/test/model/open_world_test.dart b/pkg/compiler/test/model/open_world_test.dart
index e694730..d098a5d 100644
--- a/pkg/compiler/test/model/open_world_test.dart
+++ b/pkg/compiler/test/model/open_world_test.dart
@@ -52,7 +52,7 @@
 
   CommonElements commonElements;
   NativeBasicData nativeBasicData;
-  ResolutionWorldBuilderImpl world;
+  ResolutionWorldBuilder world;
 
   List<ClassEntity> allClasses;
 
diff --git a/pkg/compiler/test/model/strong_mode_closed_world_test.dart b/pkg/compiler/test/model/strong_mode_closed_world_test.dart
index 76d847e..2b66300 100644
--- a/pkg/compiler/test/model/strong_mode_closed_world_test.dart
+++ b/pkg/compiler/test/model/strong_mode_closed_world_test.dart
@@ -9,7 +9,7 @@
 import 'package:compiler/src/compiler.dart';
 import 'package:compiler/src/common/elements.dart';
 import 'package:compiler/src/elements/entities.dart';
-import 'package:compiler/src/world.dart';
+import 'package:compiler/src/kernel/kernel_world.dart';
 import '../helpers/memory_compiler.dart';
 
 main() {
diff --git a/pkg/compiler/test/model/strong_mode_impact_test.dart b/pkg/compiler/test/model/strong_mode_impact_test.dart
index fc045cc..558f0af 100644
--- a/pkg/compiler/test/model/strong_mode_impact_test.dart
+++ b/pkg/compiler/test/model/strong_mode_impact_test.dart
@@ -12,7 +12,7 @@
 import 'package:compiler/src/common/elements.dart';
 import 'package:compiler/src/elements/entities.dart';
 import 'package:compiler/src/elements/types.dart';
-import 'package:compiler/src/world.dart';
+import 'package:compiler/src/kernel/kernel_world.dart';
 import 'package:compiler/src/universe/use.dart';
 import 'package:compiler/src/universe/world_impact.dart';
 import '../helpers/memory_compiler.dart';
diff --git a/pkg/compiler/test/model/subtypeset_test.dart b/pkg/compiler/test/model/subtypeset_test.dart
index f16f4c9..dca3abe 100644
--- a/pkg/compiler/test/model/subtypeset_test.dart
+++ b/pkg/compiler/test/model/subtypeset_test.dart
@@ -11,8 +11,8 @@
 import 'package:expect/expect.dart';
 import 'package:async_helper/async_helper.dart';
 import 'package:compiler/src/elements/entities.dart';
+import 'package:compiler/src/kernel/kernel_world.dart';
 import 'package:compiler/src/universe/class_set.dart';
-import 'package:compiler/src/world.dart';
 import '../helpers/type_test_helper.dart';
 
 void main() {
diff --git a/tools/VERSION b/tools/VERSION
index a502dde..7ca1bae 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 126
+PRERELEASE 127
 PRERELEASE_PATCH 0
\ No newline at end of file