Version 3.6.0-111.0.dev

Merge 3b09a49ce58a1820ffef121910ba3de2a46f1f3a into dev
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
index 5f8215d..7394dce 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/declaration_helper.dart
@@ -15,6 +15,7 @@
 import 'package:analyzer/dart/element/type.dart';
 import 'package:analyzer/src/dart/ast/extensions.dart';
 import 'package:analyzer/src/dart/element/element.dart';
+import 'package:analyzer/src/dart/element/extensions.dart';
 import 'package:analyzer/src/dart/element/member.dart';
 import 'package:analyzer/src/dart/element/type_algebra.dart';
 import 'package:analyzer/src/dart/resolver/applicable_extensions.dart';
@@ -25,10 +26,6 @@
 /// A helper class that produces candidate suggestions for all of the
 /// declarations that are in scope at the completion location.
 class DeclarationHelper {
-  /// The regular expression used to detect an unused identifier (a sequence of
-  /// one or more underscores with no other characters).
-  static final RegExp UnusedIdentifier = RegExp(r'^_+$');
-
   /// The completion request being processed.
   final DartCompletionRequest request;
 
@@ -318,6 +315,10 @@
         continue;
       }
 
+      if (prefixElement.isWildcardVariable) {
+        continue;
+      }
+
       var importedLibrary = element.importedLibrary;
       if (importedLibrary == null) {
         continue;
@@ -661,6 +662,9 @@
     required Namespace namespace,
     required String? prefix,
   }) {
+    // Don't suggest declarations in wildcard prefixed namespaces.
+    if (_isWildcard(prefix)) return;
+
     var importData = ImportData(
       libraryUri: library.source.uri,
       prefix: prefix,
@@ -1384,9 +1388,8 @@
     return true;
   }
 
-  /// Returns `true` if the [identifier] is composed of one or more underscore
-  /// characters and nothing else.
-  bool _isUnused(String identifier) => UnusedIdentifier.hasMatch(identifier);
+  /// Returns `true` if the [identifier] is a wildcard (a single `_`).
+  bool _isWildcard(String? identifier) => identifier == '_';
 
   /// Record that the given [operation] should be performed in the second pass.
   void _recordOperation(NotImportedOperation operation) {
@@ -1622,6 +1625,8 @@
           (mustBeNonVoid && element.returnType is VoidType)) {
         return;
       }
+      // Don't suggest wildcard local functions.
+      if (_isWildcard(element.name)) return;
       var matcherScore = state.matcher.score(element.displayName);
       if (matcherScore != -1) {
         var suggestion = LocalFunctionSuggestion(
@@ -1695,7 +1700,7 @@
   /// Adds a suggestion for the parameter represented by the [element].
   void _suggestParameter(ParameterElement element) {
     if (visibilityTracker.isVisible(element: element, importData: null)) {
-      if (mustBeConstant || _isUnused(element.name)) {
+      if (mustBeConstant || _isWildcard(element.name)) {
         return;
       }
       var matcherScore = state.matcher.score(element.displayName);
@@ -1918,6 +1923,7 @@
 
   /// Adds a suggestion for the local variable represented by the [element].
   void _suggestVariable(LocalVariableElement element) {
+    if (element.isWildcardVariable) return;
     if (visibilityTracker.isVisible(element: element, importData: null)) {
       if (mustBeConstant && !element.isConst) {
         return;
diff --git a/pkg/analysis_server/test/services/completion/dart/declaration/wildcard_variables_test.dart b/pkg/analysis_server/test/services/completion/dart/declaration/wildcard_variables_test.dart
index 94edfcf..ff191d4 100644
--- a/pkg/analysis_server/test/services/completion/dart/declaration/wildcard_variables_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/declaration/wildcard_variables_test.dart
@@ -9,6 +9,7 @@
 void main() {
   defineReflectiveSuite(() {
     defineReflectiveTests(WildcardFieldTest);
+    defineReflectiveTests(WildcardForLoopTest);
     defineReflectiveTests(WildcardImportPrefixTest);
     defineReflectiveTests(WildcardLocalVariableTest);
     defineReflectiveTests(WildcardParameterTest);
@@ -42,7 +43,6 @@
 ''');
   }
 
-  @FailingTest(reason: "the local '_' is shadowing the field")
   Future<void> test_argumentList_withLocal() async {
     await computeSuggestions('''
 void p(Object o) {}
@@ -63,14 +63,86 @@
 }
 
 @reflectiveTest
-class WildcardImportPrefixTest extends AbstractCompletionDriverTest {
+class WildcardForLoopTest extends AbstractCompletionDriverTest {
   @override
-  Set<String> allowedIdentifiers = {'_', 'isBlank'};
+  Set<String> allowedIdentifiers = {'_', '__'};
 
   @override
   bool get includeKeywords => false;
 
-  @FailingTest(reason: "'_' shouldn't be suggested")
+  Future<void> test_forEach_argumentList() async {
+    await computeSuggestions('''
+void p(Object o) {}
+
+void f() {
+  for (var _ in []) {
+    p(^);
+  }
+}
+''');
+    assertResponse('''
+suggestions
+''');
+  }
+
+  Future<void> test_forEach_argumentList_underscores() async {
+    await computeSuggestions('''
+void p(Object o) {}
+
+void f() {
+  for (var __ in []) {
+    p(^);
+  }
+}
+''');
+    assertResponse('''
+suggestions
+  __
+    kind: localVariable
+''');
+  }
+
+  Future<void> test_forParts_argumentList() async {
+    await computeSuggestions('''
+void p(Object o) {}
+
+void f() {
+  for (var _ = 0; ;) {
+    p(^);
+  }
+}
+''');
+    assertResponse('''
+suggestions
+''');
+  }
+
+  Future<void> test_forParts_argumentList_underscores() async {
+    await computeSuggestions('''
+void p(Object o) {}
+
+void f() {
+  for (var __ = 0; ;) {
+    p(^);
+  }
+}
+''');
+    assertResponse('''
+suggestions
+  __
+    kind: localVariable
+''');
+  }
+}
+
+@reflectiveTest
+class WildcardImportPrefixTest extends AbstractCompletionDriverTest {
+  @override
+  Set<String> allowedIdentifiers = {'_', '__', 'isBlank'};
+
+  @override
+  bool get includeKeywords => false;
+
   Future<void> test_argumentList() async {
     newFile('$testPackageLibPath/ext.dart', '''
 extension ES on String {
@@ -93,6 +165,31 @@
 ''');
   }
 
+  Future<void> test_argumentList_underscores() async {
+    newFile('$testPackageLibPath/ext.dart', '''
+extension ES on String {
+  bool get isBlank => false;
+}
+''');
+
+    await computeSuggestions('''
+import 'ext.dart' as __;
+
+void p(Object o) {}
+
+void f() {
+  p(^);
+}
+''');
+    assertResponse('''
+suggestions
+  __.ES
+    kind: extensionInvocation
+  __
+    kind: library
+''');
+  }
+
   Future<void> test_stringExtension_argumentList() async {
     newFile('$testPackageLibPath/ext.dart', '''
 extension ES on String {
@@ -120,12 +217,11 @@
 @reflectiveTest
 class WildcardLocalVariableTest extends AbstractCompletionDriverTest {
   @override
-  Set<String> allowedIdentifiers = {'_', 'b'};
+  Set<String> allowedIdentifiers = {'_', '__', 'b'};
 
   @override
   bool get includeKeywords => false;
 
-  @FailingTest(reason: "'_' shouldn't be suggested")
   Future<void> test_argumentList() async {
     await computeSuggestions('''
 void p(Object o) {}
@@ -136,17 +232,47 @@
 }
 ''');
     assertResponse(r'''
-  suggestions
+suggestions
   b
     kind: localVariable
 ''');
   }
+
+  Future<void> test_argumentList_function() async {
+    await computeSuggestions('''
+void p(Object o) {}
+
+void f() {
+  _() {}
+  p(^);
+}
+''');
+    assertResponse(r'''
+suggestions
+''');
+  }
+
+  Future<void> test_argumentList_underscores() async {
+    await computeSuggestions('''
+void p(Object o) {}
+
+void f() {
+  var __ = 0;
+  p(^);
+}
+''');
+    assertResponse(r'''
+suggestions
+  __
+    kind: localVariable
+''');
+  }
 }
 
 @reflectiveTest
 class WildcardParameterTest extends AbstractCompletionDriverTest {
   @override
-  Set<String> allowedIdentifiers = {'_', 'b'};
+  Set<String> allowedIdentifiers = {'_', '__', 'b'};
 
   @override
   bool get includeKeywords => false;
@@ -165,6 +291,21 @@
     kind: parameter
 ''');
   }
+
+  Future<void> test_argumentList_underscores() async {
+    await computeSuggestions('''
+void p(Object o) {}
+
+void f(int __) {
+  p(^);
+}
+''');
+    assertResponse('''
+suggestions
+  __
+    kind: parameter
+''');
+  }
 }
 
 /// Top level variables are binding so not technically wildcards but look just
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index bf7346d..4713c5c 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -4876,11 +4876,20 @@
   }
 
   List<CompilationUnitElementImpl> get _partUnits {
-    return parts
-        .map((e) => e.uri)
-        .whereType<DirectiveUriWithUnitImpl>()
-        .map((e) => e.unit)
-        .toList();
+    var result = <CompilationUnitElementImpl>[];
+
+    void visitParts(CompilationUnitElementImpl unit) {
+      for (var part in unit.parts) {
+        if (part.uri case DirectiveUriWithUnitImpl uri) {
+          var unit = uri.unit;
+          result.add(unit);
+          visitParts(unit);
+        }
+      }
+    }
+
+    visitParts(definingCompilationUnit);
+    return result;
   }
 
   @override
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 329f3fe..3dc1509 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -106,7 +106,15 @@
       }
 
       _writeElements('parts', e.parts, (part) {
-        _writePartElement(part, onlyId: false);
+        _sink.writelnWithIndent(_idMap[part]);
+      });
+
+      _writeElements('units', e.units, (unit) {
+        _sink.writeIndent();
+        _elementPrinter.writeElement(unit);
+        _sink.withIndent(() {
+          _writeUnitElement(unit);
+        });
       });
 
       // All fragments have this library.
@@ -820,10 +828,7 @@
     var definingUnit = e.definingCompilationUnit;
     expect(definingUnit.libraryOrAugmentationElement, same(e));
     if (configuration.filter(definingUnit)) {
-      _sink.writelnWithIndent('definingUnit');
-      _sink.withIndent(() {
-        _writeUnitElement(definingUnit);
-      });
+      _elementPrinter.writeNamedElement('definingUnit', definingUnit);
     }
 
     if (e is LibraryElementImpl) {
@@ -1256,14 +1261,8 @@
     _writeElements('parameters', elements, _writeParameterElement);
   }
 
-  void _writePartElement(
-    PartElementImpl e, {
-    required bool onlyId,
-  }) {
+  void _writePartElement(PartElementImpl e) {
     _sink.writelnWithIndent(_idMap[e]);
-    if (onlyId) {
-      return;
-    }
 
     _sink.withIndent(() {
       var uri = e.uri;
@@ -1271,9 +1270,12 @@
         _sink.write('uri: ');
         _writeDirectiveUri(e.uri);
       });
+
+      _writeEnclosingElement(e);
       _writeMetadata(e);
+
       if (uri is DirectiveUriWithUnitImpl) {
-        _writeUnitElement(uri.unit);
+        _elementPrinter.writeNamedElement('unit', uri.unit);
       }
     });
   }
@@ -1582,7 +1584,6 @@
   }
 
   void _writeUnitElement(CompilationUnitElementImpl e) {
-    _writeReference(e);
     _writeEnclosingElement(e);
 
     if (configuration.withImports) {
@@ -1598,10 +1599,7 @@
     );
     _writeElements(
         'libraryExports', e.libraryExports, _writeLibraryExportElement);
-
-    _writeElements('parts', e.parts, (part) {
-      _writePartElement(part, onlyId: true);
-    });
+    _writeElements('parts', e.parts, _writePartElement);
 
     _writeElements('classes', e.classes, _writeInterfaceElement);
     _writeElements('enums', e.enums, _writeInterfaceElement);
diff --git a/pkg/analyzer/test/src/summary/elements_test.dart b/pkg/analyzer/test/src/summary/elements_test.dart
index 91fd662..b02e25d 100644
--- a/pkg/analyzer/test/src/summary/elements_test.dart
+++ b/pkg/analyzer/test/src/summary/elements_test.dart
@@ -77,46 +77,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          class A @36
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        class A @36
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          methods
+            foo @47
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+              returnType: void
+          augmented
             constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+              <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
             methods
-              foo @47
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
-                returnType: void
-            augmented
-              constructors
-                <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
-              methods
-                <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
-                <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo
-          augment class A @73
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            methods
-              bar @84
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
+              <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo
+        augment class A @73
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          methods
+            bar @84
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
 ''');
   }
 
@@ -138,53 +139,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          const @43
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            const @43
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             fields
-              static const foo @66
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @72
-                    staticType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic static get foo @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            static const foo @66
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @72
+                  staticType: int
+          accessors
+            synthetic static get foo @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
 ''');
   }
 
@@ -204,53 +206,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             fields
-              static const foo @66
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @72
-                    staticType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic static get foo @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            static const foo @66
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @72
+                  staticType: int
+          accessors
+            synthetic static get foo @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
 ''');
   }
 
@@ -272,53 +275,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          const @43
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            const @43
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             fields
-              final foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @65
-                    staticType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic get foo @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            final foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @65
+                  staticType: int
+          accessors
+            synthetic get foo @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
 ''');
   }
 
@@ -338,49 +342,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             fields
-              final foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic get foo @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            final foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+          accessors
+            synthetic get foo @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
 ''');
   }
 
@@ -429,101 +434,102 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @58
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a1.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a1.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a1.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a1.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a1.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @97
-            reference: <testLibrary>::@fragment::package:test/a1.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a1.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/a11.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/a1.dart
       augmentationImports
         package:test/a11.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a1.dart
           reference: <testLibrary>::@augmentation::package:test/a11.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/a11.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/a11.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart
-            classes
-              augment class A @41
-                reference: <testLibrary>::@fragment::package:test/a11.dart::@classAugmentation::A
-                enclosingElement: <testLibrary>::@fragment::package:test/a11.dart
-                augmentationTarget: <testLibrary>::@fragment::package:test/a1.dart::@classAugmentation::A
-                augmentation: <testLibrary>::@fragment::package:test/a12.dart::@classAugmentation::A
+          definingUnit: <testLibrary>::@fragment::package:test/a11.dart
         package:test/a12.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a1.dart
           reference: <testLibrary>::@augmentation::package:test/a12.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/a12.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/a12.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart
-            classes
-              augment class A @41
-                reference: <testLibrary>::@fragment::package:test/a12.dart::@classAugmentation::A
-                enclosingElement: <testLibrary>::@fragment::package:test/a12.dart
-                augmentationTarget: <testLibrary>::@fragment::package:test/a11.dart::@classAugmentation::A
-                augmentation: <testLibrary>::@fragment::package:test/a2.dart::@classAugmentation::A
+          definingUnit: <testLibrary>::@fragment::package:test/a12.dart
     package:test/a2.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a2.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a2.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a2.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @97
-            reference: <testLibrary>::@fragment::package:test/a2.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a2.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a12.dart::@classAugmentation::A
-            augmentation: <testLibrary>::@fragment::package:test/a21.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/a2.dart
       augmentationImports
         package:test/a21.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a2.dart
           reference: <testLibrary>::@augmentation::package:test/a21.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/a21.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/a21.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart
-            classes
-              augment class A @41
-                reference: <testLibrary>::@fragment::package:test/a21.dart::@classAugmentation::A
-                enclosingElement: <testLibrary>::@fragment::package:test/a21.dart
-                augmentationTarget: <testLibrary>::@fragment::package:test/a2.dart::@classAugmentation::A
-                augmentation: <testLibrary>::@fragment::package:test/a22.dart::@classAugmentation::A
+          definingUnit: <testLibrary>::@fragment::package:test/a21.dart
         package:test/a22.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a2.dart
           reference: <testLibrary>::@augmentation::package:test/a22.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/a22.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/a22.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart
-            classes
-              augment class A @41
-                reference: <testLibrary>::@fragment::package:test/a22.dart::@classAugmentation::A
-                enclosingElement: <testLibrary>::@fragment::package:test/a22.dart
-                augmentationTarget: <testLibrary>::@fragment::package:test/a21.dart::@classAugmentation::A
+          definingUnit: <testLibrary>::@fragment::package:test/a22.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @58
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a1.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a1.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a1.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @97
+          reference: <testLibrary>::@fragment::package:test/a1.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a1.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/a11.dart::@classAugmentation::A
+    <testLibrary>::@fragment::package:test/a11.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a11.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart
+      classes
+        augment class A @41
+          reference: <testLibrary>::@fragment::package:test/a11.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a11.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a1.dart::@classAugmentation::A
+          augmentation: <testLibrary>::@fragment::package:test/a12.dart::@classAugmentation::A
+    <testLibrary>::@fragment::package:test/a12.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a12.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a1.dart
+      classes
+        augment class A @41
+          reference: <testLibrary>::@fragment::package:test/a12.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a12.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a11.dart::@classAugmentation::A
+          augmentation: <testLibrary>::@fragment::package:test/a2.dart::@classAugmentation::A
+    <testLibrary>::@fragment::package:test/a2.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a2.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @97
+          reference: <testLibrary>::@fragment::package:test/a2.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a2.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a12.dart::@classAugmentation::A
+          augmentation: <testLibrary>::@fragment::package:test/a21.dart::@classAugmentation::A
+    <testLibrary>::@fragment::package:test/a21.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a21.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart
+      classes
+        augment class A @41
+          reference: <testLibrary>::@fragment::package:test/a21.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a21.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a2.dart::@classAugmentation::A
+          augmentation: <testLibrary>::@fragment::package:test/a22.dart::@classAugmentation::A
+    <testLibrary>::@fragment::package:test/a22.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a22.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a2.dart
+      classes
+        augment class A @41
+          reference: <testLibrary>::@fragment::package:test/a22.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a22.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a21.dart::@classAugmentation::A
   exportedReferences
     declared <testLibraryFragment>::@class::A
   exportNamespace
@@ -555,58 +561,59 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @44
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @44
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+          methods
+            foo1 @55
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@method::foo1
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+              returnType: void
+        class A @74
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          methods
+            foo2 @85
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+              returnType: void
+          augmented
             constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+              <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
             methods
-              foo1 @55
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@method::foo1
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
-                returnType: void
-          class A @74
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            methods
-              foo2 @85
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
-                returnType: void
-            augmented
-              constructors
-                <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
-              methods
-                <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo2
-                <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@method::foo3
-          augment class A @112
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            methods
-              foo3 @123
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@method::foo3
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
-                returnType: void
+              <testLibrary>::@fragment::package:test/a.dart::@class::A::@method::foo2
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@method::foo3
+        augment class A @112
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          methods
+            foo3 @123
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@method::foo3
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
+              returnType: void
 ''');
   }
 
@@ -634,63 +641,64 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @31
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @68
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            methods
-              foo1 @79
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo1
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-            augmented
-              constructors
-                <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
-              methods
-                <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo1
-                <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@method::foo2
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
       augmentationImports
         package:test/b.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
           reference: <testLibrary>::@augmentation::package:test/b.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/b.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
-            classes
-              augment class A @40
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                methods
-                  foo2 @51
-                    reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@method::foo2
-                    enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                    returnType: void
+          definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @31
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @68
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          methods
+            foo1 @79
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo1
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+          augmented
+            constructors
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
+            methods
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo1
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@method::foo2
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+      classes
+        augment class A @40
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          methods
+            foo2 @51
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@method::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              returnType: void
 ''');
   }
 
@@ -712,60 +720,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @41
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @41
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
             constructors
-              augment foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 58
-                nameEnd: 62
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            augment foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 58
+              nameEnd: 62
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
 ''');
   }
 
@@ -787,51 +796,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        accessors
-          get foo @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          accessors
+            get foo @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
             constructors
-              augment foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 58
-                nameEnd: 62
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            augment foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 58
+              nameEnd: 62
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
 ''');
   }
 
@@ -853,44 +863,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-        augmented
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-          methods
-            <testLibraryFragment>::@class::A::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+          augmented
             constructors
-              augment foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 58
-                nameEnd: 62
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+            methods
+              <testLibraryFragment>::@class::A::@method::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            augment foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 58
+              nameEnd: 62
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
 ''');
   }
 
@@ -912,54 +923,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        accessors
-          set foo= @41
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @49
-                type: int
-            returnType: void
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-          accessors
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          accessors
+            set foo= @41
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @49
+                  type: int
+              returnType: void
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
             constructors
-              augment foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 58
-                nameEnd: 62
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@setter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+            accessors
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            augment foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 58
+              nameEnd: 62
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@setter::foo
 ''');
   }
 
@@ -979,36 +991,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        augmented
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          augmented
             constructors
-              named @51
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 50
-                nameEnd: 56
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            named @51
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 50
+              nameEnd: 56
 ''');
   }
 
@@ -1028,47 +1041,48 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @33
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        augmented
-          constructors
-            ConstructorMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-              augmentationSubstitution: {T2: T1}
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @33
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          augmented
             constructors
-              named @55
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 54
-                nameEnd: 60
-                parameters
-                  requiredPositional a @64
-                    type: T2
+              ConstructorMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+                augmentationSubstitution: {T2: T1}
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            named @55
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 54
+              nameEnd: 60
+              parameters
+                requiredPositional a @64
+                  type: T2
 ''');
   }
 
@@ -1090,41 +1104,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          @37
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            @37
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             constructors
-              named @51
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 50
-                nameEnd: 56
+              <testLibraryFragment>::@class::A::@constructor::new
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            named @51
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 50
+              nameEnd: 56
 ''');
   }
 
@@ -1144,34 +1159,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        augmented
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          augmented
             constructors
-              @49
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            @49
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
 ''');
   }
 
@@ -1193,41 +1209,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          named @39
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 38
-            nameEnd: 44
-        augmented
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
-            <testLibraryFragment>::@class::A::@constructor::named
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            named @39
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 38
+              nameEnd: 44
+          augmented
             constructors
-              @49
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
+              <testLibraryFragment>::@class::A::@constructor::named
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            @49
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
 ''');
   }
 
@@ -1249,54 +1266,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          final f @47
-            reference: <testLibraryFragment>::@class::A::@field::f
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::A::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::f
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-          accessors
-            <testLibraryFragment>::@class::A::@getter::f
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            final f @47
+              reference: <testLibraryFragment>::@class::A::@field::f
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::A::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::f
             constructors
-              named @51
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 50
-                nameEnd: 56
-                parameters
-                  requiredPositional final this.f @62
-                    type: int
-                    field: <testLibraryFragment>::@class::A::@field::f
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+            accessors
+              <testLibraryFragment>::@class::A::@getter::f
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            named @51
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 50
+              nameEnd: 56
+              parameters
+                requiredPositional final this.f @62
+                  type: int
+                  field: <testLibraryFragment>::@class::A::@field::f
 ''');
   }
 
@@ -1318,60 +1336,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          final f @47
-            reference: <testLibraryFragment>::@class::A::@field::f
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::A::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::f
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-          accessors
-            <testLibraryFragment>::@class::A::@getter::f
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            final f @47
+              reference: <testLibraryFragment>::@class::A::@field::f
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::A::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::f
             constructors
-              const named @57
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 56
-                nameEnd: 62
-                constantInitializers
-                  ConstructorFieldInitializer
-                    fieldName: SimpleIdentifier
-                      token: f @67
-                      staticElement: <testLibraryFragment>::@class::A::@field::f
-                      staticType: null
-                    equals: = @69
-                    expression: IntegerLiteral
-                      literal: 0 @71
-                      staticType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+            accessors
+              <testLibraryFragment>::@class::A::@getter::f
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            const named @57
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructor::named
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 56
+              nameEnd: 62
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: f @67
+                    staticElement: <testLibraryFragment>::@class::A::@field::f
+                    staticType: null
+                  equals: = @69
+                  expression: IntegerLiteral
+                    literal: 0 @71
+                    staticType: int
 ''');
   }
 
@@ -1394,46 +1413,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          foo @39
-            reference: <testLibraryFragment>::@class::A::@constructor::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 38
-            nameEnd: 42
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            foo @39
+              reference: <testLibraryFragment>::@class::A::@constructor::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 38
+              nameEnd: 42
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_0
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
 ''');
   }
 
@@ -1456,73 +1476,74 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @41
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @41
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -1553,95 +1574,96 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @56
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @66
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
-                augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @56
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @66
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_2
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_2
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
 ''');
   }
 
@@ -1672,95 +1694,96 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @56
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @66
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_1
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @56
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @66
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_1
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -1791,98 +1814,99 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @56
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @66
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            accessors
-              augment set foo= @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @69
-                    type: int
-                returnType: void
-                id: setter_1
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@setter::foo
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @56
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @66
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          accessors
+            augment set foo= @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @69
+                  type: int
+              returnType: void
+              id: setter_1
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -1905,69 +1929,70 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          static const foo @54
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @60
-                staticType: int
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic static get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            static const foo @54
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @60
+                  staticType: int
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic static get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+          augmented
             fields
-              augment static const foo @75
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                constantInitializer
-                  AugmentedInvocation
-                    augmentedKeyword: augmented @81
-                    arguments: ArgumentList
-                      leftParenthesis: ( @90
-                      rightParenthesis: ) @91
-                    element: <null>
-                    staticType: InvalidType
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment static const foo @75
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                AugmentedInvocation
+                  augmentedKeyword: augmented @81
+                  arguments: ArgumentList
+                    leftParenthesis: ( @90
+                    rightParenthesis: ) @91
+                  element: <null>
+                  staticType: InvalidType
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -1990,73 +2015,74 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @41
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @41
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              augment foo @64
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: double
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment foo @64
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: double
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -2079,74 +2105,75 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          final foo @47
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @53
-                staticType: int
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          const @64
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            final foo @47
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @53
+                  staticType: int
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            const @64
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+          augmented
             fields
-              augment final foo @67
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: AugmentedExpression
-                      augmentedKeyword: augmented @73
-                      element: <testLibraryFragment>::@class::A::@field::foo
-                      staticType: int
-                    operator: + @83
-                    rightOperand: IntegerLiteral
-                      literal: 1 @85
-                      staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment final foo @67
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                BinaryExpression
+                  leftOperand: AugmentedExpression
+                    augmentedKeyword: augmented @73
+                    element: <testLibraryFragment>::@class::A::@field::foo
                     staticType: int
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+                  operator: + @83
+                  rightOperand: IntegerLiteral
+                    literal: 1 @85
+                    staticType: int
+                  staticElement: dart:core::<fragment>::@class::num::@method::+
+                  staticInvokeType: num Function(num)
+                  staticType: int
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -2171,61 +2198,62 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -2248,51 +2276,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            <testLibraryFragment>::@class::A::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_0
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            methods
+              <testLibraryFragment>::@class::A::@method::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
 ''');
   }
 
@@ -2317,64 +2346,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            setter: setter_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          set foo= @41
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @49
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              setter: setter_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            set foo= @41
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @49
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              augment foo @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            augment foo @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@fieldAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              augmentationTarget: <testLibraryFragment>::@class::A::@field::foo
 ''');
   }
 
@@ -2397,92 +2427,93 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo1 @41
-            reference: <testLibraryFragment>::@class::A::@field::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo1 @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo1= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo1 @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo1
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo1
-            <testLibraryFragment>::@class::A::@setter::foo1
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo1 @41
+              reference: <testLibraryFragment>::@class::A::@field::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo1 @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo1= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo1 @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              foo2 @53
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                shouldUseTypeForInitializerInference: true
-                id: field_1
-                getter: getter_1
-                setter: setter_1
+              <testLibraryFragment>::@class::A::@field::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic get foo2 @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_1
-                variable: field_1
-              synthetic set foo2= @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _foo2 @-1
-                    type: int
-                returnType: void
-                id: setter_1
-                variable: field_1
+              <testLibraryFragment>::@class::A::@getter::foo1
+              <testLibraryFragment>::@class::A::@setter::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            foo2 @53
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_1
+              getter: getter_1
+              setter: setter_1
+          accessors
+            synthetic get foo2 @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_1
+              variable: field_1
+            synthetic set foo2= @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _foo2 @-1
+                  type: int
+              returnType: void
+              id: setter_1
+              variable: field_1
 ''');
   }
 
@@ -2505,102 +2536,103 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @33
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo1 @44
-            reference: <testLibraryFragment>::@class::A::@field::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: T1
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo1 @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: T1
-            id: getter_0
-            variable: field_0
-          synthetic set foo1= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo1 @-1
-                type: T1
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo1
-            FieldMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-              augmentationSubstitution: {T2: T1}
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo1
-            <testLibraryFragment>::@class::A::@setter::foo1
-            PropertyAccessorMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
-              augmentationSubstitution: {T2: T1}
-            PropertyAccessorMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
-              augmentationSubstitution: {T2: T1}
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @33
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo1 @44
+              reference: <testLibraryFragment>::@class::A::@field::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: T1
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo1 @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: T1
+              id: getter_0
+              variable: field_0
+            synthetic set foo1= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo1 @-1
+                  type: T1
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              foo2 @56
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: T2
-                id: field_1
-                getter: getter_1
-                setter: setter_1
+              <testLibraryFragment>::@class::A::@field::foo1
+              FieldMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+                augmentationSubstitution: {T2: T1}
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic get foo2 @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: T2
-                id: getter_1
-                variable: field_1
-              synthetic set foo2= @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _foo2 @-1
-                    type: T2
-                returnType: void
-                id: setter_1
-                variable: field_1
+              <testLibraryFragment>::@class::A::@getter::foo1
+              <testLibraryFragment>::@class::A::@setter::foo1
+              PropertyAccessorMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+                augmentationSubstitution: {T2: T1}
+              PropertyAccessorMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+                augmentationSubstitution: {T2: T1}
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            foo2 @56
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: T2
+              id: field_1
+              getter: getter_1
+              setter: setter_1
+          accessors
+            synthetic get foo2 @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: T2
+              id: getter_1
+              variable: field_1
+            synthetic set foo2= @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _foo2 @-1
+                  type: T2
+              returnType: void
+              id: setter_1
+              variable: field_1
 ''');
   }
 
@@ -2622,52 +2654,53 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          @37
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional final this.foo @44
-                type: int
-                field: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            @37
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional final this.foo @44
+                  type: int
+                  field: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+          augmented
             fields
-              final foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic get foo @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            final foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+          accessors
+            synthetic get foo @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
 ''');
   }
 
@@ -2689,58 +2722,59 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          const @43
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: foo @49
-                  staticElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-                  staticType: null
-                equals: = @53
-                expression: IntegerLiteral
-                  literal: 0 @55
-                  staticType: int
-        augmented
-          fields
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            const @43
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: foo @49
+                    staticElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+                    staticType: null
+                  equals: = @53
+                  expression: IntegerLiteral
+                    literal: 0 @55
+                    staticType: int
+          augmented
             fields
-              final foo @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              synthetic get foo @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            final foo @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+          accessors
+            synthetic get foo @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
 ''');
   }
 
@@ -2763,46 +2797,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          foo @39
-            reference: <testLibraryFragment>::@class::A::@constructor::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 38
-            nameEnd: 42
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::foo
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            foo @39
+              reference: <testLibraryFragment>::@class::A::@constructor::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 38
+              nameEnd: 42
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::foo
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_0
-                variable: <null>
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_0
+              variable: <null>
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
 ''');
   }
 
@@ -2825,51 +2860,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-          methods
-            <testLibraryFragment>::@class::A::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_0
-                variable: <null>
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+            methods
+              <testLibraryFragment>::@class::A::@method::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_0
+              variable: <null>
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
 ''');
   }
 
@@ -2892,64 +2928,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            setter: setter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          set foo= @41
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @49
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              setter: setter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            set foo= @41
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @49
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_0
-                variable: <null>
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@setter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_0
+              variable: <null>
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@setter::foo
 ''');
   }
 
@@ -2972,68 +3009,69 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo1 @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo1 @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo1
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo1
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo1 @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo1 @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+          augmented
             fields
-              synthetic foo2 @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                id: field_1
-                getter: getter_1
+              <testLibraryFragment>::@class::A::@field::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              get foo2 @57
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_1
-                variable: field_1
+              <testLibraryFragment>::@class::A::@getter::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            synthetic foo2 @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              id: field_1
+              getter: getter_1
+          accessors
+            get foo2 @57
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_1
+              variable: field_1
 ''');
   }
 
@@ -3056,78 +3094,79 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @33
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo1 @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: T1
-            id: field_0
-            getter: getter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          abstract get foo1 @48
-            reference: <testLibraryFragment>::@class::A::@getter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: T1
-            id: getter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo1
-            FieldMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-              augmentationSubstitution: {T2: T1}
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo1
-            PropertyAccessorMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
-              augmentationSubstitution: {T2: T1}
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @33
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo1 @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: T1
+              id: field_0
+              getter: getter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            abstract get foo1 @48
+              reference: <testLibraryFragment>::@class::A::@getter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: T1
+              id: getter_0
+              variable: field_0
+          augmented
             fields
-              synthetic foo2 @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: T2
-                id: field_1
-                getter: getter_1
+              <testLibraryFragment>::@class::A::@field::foo1
+              FieldMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+                augmentationSubstitution: {T2: T1}
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              abstract get foo2 @60
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: T2
-                id: getter_1
-                variable: field_1
+              <testLibraryFragment>::@class::A::@getter::foo1
+              PropertyAccessorMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+                augmentationSubstitution: {T2: T1}
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            synthetic foo2 @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: T2
+              id: field_1
+              getter: getter_1
+          accessors
+            abstract get foo2 @60
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getter::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: T2
+              id: getter_1
+              variable: field_1
 ''');
   }
 
@@ -3150,73 +3189,74 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @41
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @41
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_1
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_1
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
 ''');
   }
 
@@ -3247,95 +3287,96 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @56
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @66
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
-            <testLibraryFragment>::@class::A::@setter::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_1
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
-                augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @56
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @66
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                returnType: int
-                id: getter_2
-                variable: field_0
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+              <testLibraryFragment>::@class::A::@setter::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_1
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              returnType: int
+              id: getter_2
+              variable: field_0
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
 ''');
   }
 
@@ -3359,75 +3400,76 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo1 @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-          synthetic foo2 @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo2
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_1
-            getter: getter_1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo1 @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo1
-          get foo2 @66
-            reference: <testLibraryFragment>::@class::A::@getter::foo2
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_1
-            variable: field_1
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo1
-            <testLibraryFragment>::@class::A::@field::foo2
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo1
-            <testLibraryFragment>::@class::A::@getter::foo2
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo1 @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+            synthetic foo2 @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo2
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_1
+              getter: getter_1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo1 @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo1
+            get foo2 @66
+              reference: <testLibraryFragment>::@class::A::@getter::foo2
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_1
+              variable: field_1
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo1
+              <testLibraryFragment>::@class::A::@field::foo2
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment get foo1 @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo1
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_2
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo1
+              <testLibraryFragment>::@class::A::@getter::foo2
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment get foo1 @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo1
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_2
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo1
 ''');
   }
 
@@ -3451,69 +3493,70 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::1
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::0
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::0
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_1
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
-                augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::1
-              augment get foo @93
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::1
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_2
-                variable: field_0
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::0
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::1
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::0
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_1
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::1
+            augment get foo @93
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::1
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_2
+              variable: field_0
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo::@def::0
 ''');
   }
 
@@ -3544,83 +3587,84 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @56
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @70
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_1
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
-                augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @56
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @70
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                returnType: int
-                id: getter_2
-                variable: field_0
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_1
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@getter::foo
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              returnType: int
+              id: getter_2
+              variable: field_0
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
 ''');
   }
 
@@ -3643,37 +3687,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        augmented
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          augmented
             accessors
-              augment get foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: int
-                id: getter_0
-                variable: <null>
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment get foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@getterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: int
+              id: getter_0
+              variable: <null>
 ''');
   }
 
@@ -3693,55 +3738,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        interfaces
-          I1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          interfaces
-            I1
-            I2
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-      class I1 @56
-        reference: <testLibraryFragment>::@class::I1
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::I1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::I1
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          interfaces
+            I1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             interfaces
+              I1
               I2
-          class I2 @68
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
             constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+              <testLibraryFragment>::@class::A::@constructor::new
+        class I1 @56
+          reference: <testLibraryFragment>::@class::I1
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::I1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::I1
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          interfaces
+            I2
+        class I2 @68
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
 ''');
   }
 
@@ -3768,79 +3814,80 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        interfaces
-          I1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          interfaces
-            I1
-            I2
-            I3
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-      class I1 @56
-        reference: <testLibraryFragment>::@class::I1
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::I1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::I1
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @68
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            interfaces
-              I2
-          class I2 @93
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
       augmentationImports
         package:test/b.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
           reference: <testLibrary>::@augmentation::package:test/b.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/b.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
-            classes
-              augment class A @40
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                interfaces
-                  I3
-              class I3 @65
-                reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-                constructors
-                  synthetic @-1
-                    reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3::@constructor::new
-                    enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@class::I3
+          definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          interfaces
+            I1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            interfaces
+              I1
+              I2
+              I3
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+        class I1 @56
+          reference: <testLibraryFragment>::@class::I1
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::I1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::I1
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @68
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          interfaces
+            I2
+        class I2 @93
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+      classes
+        augment class A @40
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          interfaces
+            I3
+        class I3 @65
+          reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/b.dart::@class::I3::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@class::I3
 ''');
   }
 
@@ -3860,64 +3907,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        interfaces
-          I1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          interfaces
-            I1
-            I2<T>
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-      class I1 @59
-        reference: <testLibraryFragment>::@class::I1
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::I1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::I1
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          interfaces
+            I1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             interfaces
-              I2<T2>
-          class I2 @76
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant E @79
-                defaultType: dynamic
+              I1
+              I2<T>
             constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+              <testLibraryFragment>::@class::A::@constructor::new
+        class I1 @59
+          reference: <testLibraryFragment>::@class::I1
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::I1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::I1
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          interfaces
+            I2<T2>
+        class I2 @76
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant E @79
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
 ''');
   }
 
@@ -3937,65 +3985,66 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        interfaces
-          I1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          interfaces
-            I1
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-      class I1 @59
-        reference: <testLibraryFragment>::@class::I1
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::I1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::I1
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-              covariant T3 @49
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          interfaces
+            I1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             interfaces
-              I2<T2>
-          class I2 @80
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant E @83
-                defaultType: dynamic
+              I1
             constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+              <testLibraryFragment>::@class::A::@constructor::new
+        class I1 @59
+          reference: <testLibraryFragment>::@class::I1
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::I1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::I1
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+            covariant T3 @49
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          interfaces
+            I2<T2>
+        class I2 @80
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant E @83
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::I2::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::I2
 ''');
   }
 
@@ -4017,44 +4066,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          foo @39
-            reference: <testLibraryFragment>::@class::A::@constructor::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 38
-            nameEnd: 42
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::foo
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            foo @39
+              reference: <testLibraryFragment>::@class::A::@constructor::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 38
+              nameEnd: 42
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::foo
             methods
-              augment foo @62
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo @62
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
 ''');
   }
 
@@ -4076,65 +4126,66 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @41
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibraryFragment>::@class::A::@setter::foo
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @41
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibraryFragment>::@class::A::@setter::foo
             methods
-              augment foo @62
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo @62
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
 ''');
   }
 
@@ -4156,56 +4207,57 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@getter::foo
             methods
-              augment foo @62
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo @62
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
 ''');
   }
 
@@ -4227,59 +4279,60 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          set foo= @41
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @49
-                type: int
-            returnType: void
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@setter::foo
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            set foo= @41
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @49
+                  type: int
+              returnType: void
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            accessors
+              <testLibraryFragment>::@class::A::@setter::foo
             methods
-              augment foo @62
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@setter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo @62
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@setter::foo
 ''');
   }
 
@@ -4301,47 +4354,48 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
-            <testLibraryFragment>::@class::A::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             methods
-              bar @54
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
+              <testLibraryFragment>::@class::A::@method::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            bar @54
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
 ''');
   }
 
@@ -4361,48 +4415,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             methods
-              foo @54
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  optionalPositional default x @63
-                    type: int
-                    constantInitializer
-                      IntegerLiteral
-                        literal: 42 @67
-                        staticType: int
-                returnType: void
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            foo @54
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                optionalPositional default x @63
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 42 @67
+                      staticType: int
+              returnType: void
 ''');
   }
 
@@ -4425,53 +4480,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo1 @42
-            reference: <testLibraryFragment>::@class::A::@method::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo1
-          foo2 @59
-            reference: <testLibraryFragment>::@class::A::@method::foo2
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo1
-            <testLibraryFragment>::@class::A::@method::foo2
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo1 @42
+              reference: <testLibraryFragment>::@class::A::@method::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo1
+            foo2 @59
+              reference: <testLibraryFragment>::@class::A::@method::foo2
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             methods
-              augment foo1 @62
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo1
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTarget: <testLibraryFragment>::@class::A::@method::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo1
+              <testLibraryFragment>::@class::A::@method::foo2
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo1 @62
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo1
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTarget: <testLibraryFragment>::@class::A::@method::foo1
 ''');
   }
 
@@ -4494,54 +4550,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::0
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::1
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::0
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             methods
-              augment foo @62
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::0
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
-                augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::1
-              augment foo @86
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::1
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::0
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::1
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo @62
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::0
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::1
+            augment foo @86
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::1
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo::@def::0
 ''');
   }
 
@@ -4566,60 +4623,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@methodAugmentation::foo
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@methodAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@methodAugmentation::foo
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             methods
-              augment foo @62
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
-                returnType: void
-                augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
-                augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@methodAugmentation::foo
-          augment class A @87
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
-            methods
-              augment foo @106
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
-                returnType: void
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@methodAugmentation::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
+          methods
+            augment foo @62
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+              returnType: void
+              augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@methodAugmentation::foo
+        augment class A @87
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0
+          methods
+            augment foo @106
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::1
+              returnType: void
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@def::0::@methodAugmentation::foo
 ''');
   }
 
@@ -4649,69 +4707,70 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@methodAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @68
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            methods
-              augment foo @87
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
-                augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@methodAugmentation::foo
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
       augmentationImports
         package:test/b.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
           reference: <testLibrary>::@augmentation::package:test/b.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/b.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
-            classes
-              augment class A @40
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                methods
-                  augment foo @59
-                    reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@methodAugmentation::foo
-                    enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                    returnType: void
-                    augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+          definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+            methods
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @68
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          methods
+            augment foo @87
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+      classes
+        augment class A @40
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          methods
+            augment foo @59
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              returnType: void
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
 ''');
   }
 
@@ -4733,55 +4792,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: T
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            MethodMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
-              augmentationSubstitution: {T2: T}
-            <testLibraryFragment>::@class::A::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: T
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             methods
-              bar @56
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: T2
+              MethodMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
+                augmentationSubstitution: {T2: T}
+              <testLibraryFragment>::@class::A::@method::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            bar @56
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@method::bar
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: T2
 ''');
   }
 
@@ -4803,56 +4863,57 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: T
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          methods
-            MethodMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-              augmentationSubstitution: {T2: T}
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: T
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             methods
-              augment foo @64
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: T2
-                augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
+              MethodMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+                augmentationSubstitution: {T2: T}
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo @64
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: T2
+              augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
 ''');
   }
 
@@ -4872,54 +4933,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        supertype: Object
-        mixins
-          M1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          mixins
-            M1
-            M2
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-    mixins
-      mixin M1 @50
-        reference: <testLibraryFragment>::@mixin::M1
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          supertype: Object
+          mixins
+            M1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             mixins
+              M1
               M2
-        mixins
-          mixin M2 @62
-            reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            superclassConstraints
-              Object
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+      mixins
+        mixin M1 @50
+          reference: <testLibraryFragment>::@mixin::M1
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          mixins
+            M2
+      mixins
+        mixin M2 @62
+          reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -4947,107 +5009,108 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @56
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant S @58
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class A @70
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @72
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        supertype: B<T1>
-        mixins
-          M1<T1>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::B::@constructor::new
-              substitution: {S: T1}
-        augmented
-          mixins
-            M1<T1>
-            M2<T1>
-            M3<T1>
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-    mixins
-      mixin M1 @107
-        reference: <testLibraryFragment>::@mixin::M1
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U1 @110
-            defaultType: dynamic
-        superclassConstraints
-          B<U1>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            mixins
-              M2<T2>
-        mixins
-          mixin M2 @66
-            reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant U2 @69
-                defaultType: dynamic
-            superclassConstraints
-              M1<U2>
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            typeParameters
-              covariant T3 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @56
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant S @58
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class A @70
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @72
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          supertype: B<T1>
+          mixins
+            M1<T1>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::B::@constructor::new
+                substitution: {S: T1}
+          augmented
             mixins
-              M3<T3>
-        mixins
-          mixin M3 @66
-            reference: <testLibrary>::@fragment::package:test/b.dart::@mixin::M3
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            typeParameters
-              covariant U3 @69
-                defaultType: dynamic
-            superclassConstraints
-              M2<U3>
+              M1<T1>
+              M2<T1>
+              M3<T1>
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+      mixins
+        mixin M1 @107
+          reference: <testLibraryFragment>::@mixin::M1
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U1 @110
+              defaultType: dynamic
+          superclassConstraints
+            B<U1>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          mixins
+            M2<T2>
+      mixins
+        mixin M2 @66
+          reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::M2
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant U2 @69
+              defaultType: dynamic
+          superclassConstraints
+            M1<U2>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          typeParameters
+            covariant T3 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          mixins
+            M3<T3>
+      mixins
+        mixin M3 @66
+          reference: <testLibrary>::@fragment::package:test/b.dart::@mixin::M3
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          typeParameters
+            covariant U3 @69
+              defaultType: dynamic
+          superclassConstraints
+            M2<U3>
 ''');
   }
 
@@ -5070,49 +5133,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          foo @39
-            reference: <testLibraryFragment>::@class::A::@constructor::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 38
-            nameEnd: 42
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::foo
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            foo @39
+              reference: <testLibraryFragment>::@class::A::@constructor::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 38
+              nameEnd: 42
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::foo
             accessors
-              augment set foo= @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @69
-                    type: int
-                returnType: void
-                id: setter_0
-                variable: <null>
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment set foo= @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @69
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: <null>
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@constructor::foo
 ''');
   }
 
@@ -5135,64 +5199,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment set foo= @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @69
-                    type: int
-                returnType: void
-                id: setter_0
-                variable: <null>
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment set foo= @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @69
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: <null>
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@getter::foo
 ''');
   }
 
@@ -5215,54 +5280,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-          methods
-            <testLibraryFragment>::@class::A::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment set foo= @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @69
-                    type: int
-                returnType: void
-                id: setter_0
-                variable: <null>
-                augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+            methods
+              <testLibraryFragment>::@class::A::@method::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment set foo= @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @69
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: <null>
+              augmentationTargetAny: <testLibraryFragment>::@class::A::@method::foo
 ''');
   }
 
@@ -5285,74 +5351,75 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo1 @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            setter: setter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          set foo1= @41
-            reference: <testLibraryFragment>::@class::A::@setter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @50
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo1
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@setter::foo1
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo1 @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              setter: setter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            set foo1= @41
+              reference: <testLibraryFragment>::@class::A::@setter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @50
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+          augmented
             fields
-              synthetic foo2 @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                type: int
-                id: field_1
-                setter: setter_1
+              <testLibraryFragment>::@class::A::@field::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              set foo2= @53
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @62
-                    type: int
-                returnType: void
-                id: setter_1
-                variable: field_1
+              <testLibraryFragment>::@class::A::@setter::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          fields
+            synthetic foo2 @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@field::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              type: int
+              id: field_1
+              setter: setter_1
+          accessors
+            set foo2= @53
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setter::foo2
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @62
+                  type: int
+              returnType: void
+              id: setter_1
+              variable: field_1
 ''');
   }
 
@@ -5375,76 +5442,77 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          foo @41
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibraryFragment>::@class::A::@getter::foo
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            foo @41
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment set foo= @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @69
-                    type: int
-                returnType: void
-                id: setter_1
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@setter::foo
+              <testLibraryFragment>::@class::A::@getter::foo
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment set foo= @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @69
+                  type: int
+              returnType: void
+              id: setter_1
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@setter::foo
 ''');
   }
 
@@ -5467,40 +5535,41 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        augmented
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          augmented
             accessors
-              augment set foo= @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @69
-                    type: int
-                returnType: void
-                id: setter_0
-                variable: <null>
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment set foo= @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @69
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: <null>
 ''');
   }
 
@@ -5524,84 +5593,85 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        fields
-          synthetic foo1 @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            setter: setter_0
-          synthetic foo2 @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo2
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_1
-            setter: setter_1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          set foo1= @41
-            reference: <testLibraryFragment>::@class::A::@setter::foo1
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @50
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo1
-          set foo2= @62
-            reference: <testLibraryFragment>::@class::A::@setter::foo2
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @71
-                type: int
-            returnType: void
-            id: setter_1
-            variable: field_1
-        augmented
-          fields
-            <testLibraryFragment>::@class::A::@field::foo1
-            <testLibraryFragment>::@class::A::@field::foo2
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-          accessors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo1
-            <testLibraryFragment>::@class::A::@setter::foo2
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          fields
+            synthetic foo1 @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              setter: setter_0
+            synthetic foo2 @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo2
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_1
+              setter: setter_1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            set foo1= @41
+              reference: <testLibraryFragment>::@class::A::@setter::foo1
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @50
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo1
+            set foo2= @62
+              reference: <testLibraryFragment>::@class::A::@setter::foo2
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @71
+                  type: int
+              returnType: void
+              id: setter_1
+              variable: field_1
+          augmented
+            fields
+              <testLibraryFragment>::@class::A::@field::foo1
+              <testLibraryFragment>::@class::A::@field::foo2
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
             accessors
-              augment set foo1= @61
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo1
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                parameters
-                  requiredPositional _ @70
-                    type: int
-                returnType: void
-                id: setter_2
-                variable: field_0
-                augmentationTarget: <testLibraryFragment>::@class::A::@setter::foo1
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo1
+              <testLibraryFragment>::@class::A::@setter::foo2
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          accessors
+            augment set foo1= @61
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@setterAugmentation::foo1
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              parameters
+                requiredPositional _ @70
+                  type: int
+              returnType: void
+              id: setter_2
+              variable: field_0
+              augmentationTarget: <testLibraryFragment>::@class::A::@setter::foo1
 ''');
   }
 
@@ -5629,46 +5699,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @57
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        mixins
-          augment mixin A @44
-            reference: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTargetAny: <testLibraryFragment>::@class::A
-            superclassConstraints
-              Object
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        mixins
-          augment mixin A @44
-            reference: <testLibrary>::@fragment::package:test/b.dart::@mixinAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTargetAny: <testLibraryFragment>::@class::A
-            superclassConstraints
-              Object
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @57
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      mixins
+        augment mixin A @44
+          reference: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTargetAny: <testLibraryFragment>::@class::A
+          superclassConstraints
+            Object
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      mixins
+        augment mixin A @44
+          reference: <testLibrary>::@fragment::package:test/b.dart::@mixinAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTargetAny: <testLibraryFragment>::@class::A
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -5697,46 +5768,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @57
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        mixins
-          augment mixin A @44
-            reference: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTargetAny: <testLibraryFragment>::@class::A
-            superclassConstraints
-              Object
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @44
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @57
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      mixins
+        augment mixin A @44
+          reference: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTargetAny: <testLibraryFragment>::@class::A
+          superclassConstraints
+            Object
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @44
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -5766,65 +5838,66 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @56
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          named @64
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 63
-            nameEnd: 69
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
-        augmented
-          constructors
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@constructorAugmentation::named
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            constructors
-              augment named @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 58
-                nameEnd: 64
-                augmentationTarget: <testLibraryFragment>::@class::A::@constructor::named
-                augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@constructorAugmentation::named
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @56
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            named @64
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 63
+              nameEnd: 69
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
+          augmented
             constructors
-              augment named @59
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@constructorAugmentation::named
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
-                periodOffset: 58
-                nameEnd: 64
-                augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@constructorAugmentation::named
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          constructors
+            augment named @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 58
+              nameEnd: 64
+              augmentationTarget: <testLibraryFragment>::@class::A::@constructor::named
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@constructorAugmentation::named
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            augment named @59
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A::@constructorAugmentation::named
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::A
+              periodOffset: 58
+              nameEnd: 64
+              augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
 ''');
   }
 
@@ -5846,44 +5919,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          named @39
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 38
-            nameEnd: 44
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
-        augmented
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            named @39
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 38
+              nameEnd: 44
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
+          augmented
             constructors
-              augment named @59
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                periodOffset: 58
-                nameEnd: 64
-                augmentationTarget: <testLibraryFragment>::@class::A::@constructor::named
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            augment named @59
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::named
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              periodOffset: 58
+              nameEnd: 64
+              augmentationTarget: <testLibraryFragment>::@class::A::@constructor::named
 ''');
   }
 
@@ -5905,40 +5979,41 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          @37
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::new
-        augmented
-          constructors
-            <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            @37
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::new
+          augmented
             constructors
-              augment @57
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                augmentationTarget: <testLibraryFragment>::@class::A::@constructor::new
+              <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+          constructors
+            augment @57
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@constructorAugmentation::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              augmentationTarget: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -5970,50 +6045,51 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @49
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/a.dart::<fragment>::@class::A::@constructor::new
-        augmented
-          constructors
-            <testLibraryFragment>::@class::B::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class B @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibraryFragment>::@class::B
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @49
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/a.dart::<fragment>::@class::A::@constructor::new
+          augmented
+            constructors
+              <testLibraryFragment>::@class::B::@constructor::new
             methods
-              foo @49
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@method::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-                parameters
-                  requiredPositional a @53
-                    type: String
-                returnType: int
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@method::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class B @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibraryFragment>::@class::B
+          methods
+            foo @49
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@method::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+              parameters
+                requiredPositional a @53
+                  type: String
+              returnType: int
 ''');
   }
 
@@ -6041,33 +6117,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @32
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-        methods
-          foo @38
-            reference: <testLibraryFragment>::@class::B::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional a @42
-                type: String
-            returnType: int
-        augmented
-          interfaces
-            A
-          constructors
-            <testLibraryFragment>::@class::B::@constructor::new
-          methods
-            <testLibraryFragment>::@class::B::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -6076,21 +6126,48 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        classes
-          augment class B @60
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibraryFragment>::@class::B
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @32
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+          methods
+            foo @38
+              reference: <testLibraryFragment>::@class::B::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional a @42
+                  type: String
+              returnType: int
+          augmented
             interfaces
               A
+            constructors
+              <testLibraryFragment>::@class::B::@constructor::new
+            methods
+              <testLibraryFragment>::@class::B::@method::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      classes
+        augment class B @60
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibraryFragment>::@class::B
+          interfaces
+            A
 ''');
   }
 
@@ -6118,33 +6195,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @32
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-        methods
-          foo @38
-            reference: <testLibraryFragment>::@class::B::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional a @42
-                type: String
-            returnType: int
-        augmented
-          mixins
-            A
-          constructors
-            <testLibraryFragment>::@class::B::@constructor::new
-          methods
-            <testLibraryFragment>::@class::B::@method::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -6153,21 +6204,48 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        classes
-          augment class B @60
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibraryFragment>::@class::B
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @32
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+          methods
+            foo @38
+              reference: <testLibraryFragment>::@class::B::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional a @42
+                  type: String
+              returnType: int
+          augmented
             mixins
               A
+            constructors
+              <testLibraryFragment>::@class::B::@constructor::new
+            methods
+              <testLibraryFragment>::@class::B::@method::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      classes
+        augment class B @60
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibraryFragment>::@class::B
+          mixins
+            A
 ''');
   }
 
@@ -6201,60 +6279,61 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @49
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/a.dart::<fragment>::@class::A::@constructor::new
-        methods
-          foo @65
-            reference: <testLibraryFragment>::@class::B::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional a @69
-                type: String
-            returnType: int
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@methodAugmentation::foo
-        augmented
-          constructors
-            <testLibraryFragment>::@class::B::@constructor::new
-          methods
-            <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@methodAugmentation::foo
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class B @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibraryFragment>::@class::B
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @49
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/a.dart::<fragment>::@class::A::@constructor::new
+          methods
+            foo @65
+              reference: <testLibraryFragment>::@class::B::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional a @69
+                  type: String
+              returnType: int
+              augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@methodAugmentation::foo
+          augmented
+            constructors
+              <testLibraryFragment>::@class::B::@constructor::new
             methods
-              augment foo @57
-                reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
-                parameters
-                  requiredPositional a @61
-                    type: String
-                returnType: int
-                augmentationTarget: <testLibraryFragment>::@class::B::@method::foo
+              <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@methodAugmentation::foo
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class B @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibraryFragment>::@class::B
+          methods
+            augment foo @57
+              reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::B
+              parameters
+                requiredPositional a @61
+                  type: String
+              returnType: int
+              augmentationTarget: <testLibraryFragment>::@class::B::@method::foo
 ''');
   }
 
@@ -6278,52 +6357,53 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        methods
-          foo @42
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-            augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-          bar @58
-            reference: <testLibraryFragment>::@class::A::@method::bar
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-        augmented
-          methods
-            <testLibraryFragment>::@class::A::@method::bar
-            MethodMember
-              base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-              augmentationSubstitution: {T: InvalidType}
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          methods
+            foo @42
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+              augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+            bar @58
+              reference: <testLibraryFragment>::@class::A::@method::bar
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+          augmented
             methods
-              augment foo @65
-                reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-                returnType: void
-                augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
+              <testLibraryFragment>::@class::A::@method::bar
+              MethodMember
+                base: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+                augmentationSubstitution: {T: InvalidType}
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::A
+          methods
+            augment foo @65
+              reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A::@methodAugmentation::foo
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+              returnType: void
+              augmentationTarget: <testLibraryFragment>::@class::A::@method::foo
 ''');
   }
 
@@ -6341,34 +6421,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class A @40
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment abstract class A @52
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class A @40
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment abstract class A @52
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6386,34 +6467,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      base class A @36
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment base class A @48
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        base class A @36
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment base class A @48
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6431,34 +6513,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      final class A @37
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment final class A @49
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        final class A @37
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment final class A @49
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6476,34 +6559,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      interface class A @41
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment interface class A @53
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        interface class A @41
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment interface class A @53
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6521,34 +6605,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      macro class A @37
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment macro class A @49
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        macro class A @37
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment macro class A @49
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6566,34 +6651,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      mixin class A @37
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment mixin class A @49
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        mixin class A @37
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment mixin class A @49
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6611,34 +6697,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract sealed class A @38
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment abstract sealed class A @50
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract sealed class A @38
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment abstract sealed class A @50
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6652,30 +6739,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          I
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
           interfaces
             I
-      class I @30
-        reference: <testLibraryFragment>::@class::I
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::I::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::I
-        augmented
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            interfaces
+              I
+        class I @30
+          reference: <testLibraryFragment>::@class::I
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::I::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::I
+          augmented
 ''');
   }
 
@@ -6689,31 +6777,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
           interfaces
             M
-    mixins
-      mixin M @30
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-        augmented
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            interfaces
+              M
+      mixins
+        mixin M @30
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
           superclassConstraints
             Object
+          augmented
+            superclassConstraints
+              Object
 ''');
   }
 
@@ -6731,42 +6820,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            bound: A<dynamic>
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T @45
-                bound: A<dynamic>
-                defaultType: A<dynamic>
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              bound: A<dynamic>
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T @45
+              bound: A<dynamic>
+              defaultType: A<dynamic>
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -6785,54 +6875,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @45
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @47
-            defaultType: dynamic
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::B
-        supertype: A<T1>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::A::@constructor::new
-              substitution: {T: T1}
-        augmented
-          constructors
-            <testLibraryFragment>::@class::B::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class B @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::B
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T2 @45
-                defaultType: dynamic
-            augmentationTarget: <testLibraryFragment>::@class::B
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @45
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @47
+              defaultType: dynamic
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::B
+          supertype: A<T1>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::new
+                substitution: {T: T1}
+          augmented
+            constructors
+              <testLibraryFragment>::@class::B::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class B @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::B
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T2 @45
+              defaultType: dynamic
+          augmentationTarget: <testLibraryFragment>::@class::B
 ''');
   }
 
@@ -6859,63 +6950,64 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @56
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @67
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @78
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::C
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        augmented
-          constructors
-            <testLibraryFragment>::@class::C::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class C @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::C
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::C
-            augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::C
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class C @43
-            reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::C
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::C
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @56
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @67
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @78
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::C
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          augmented
+            constructors
+              <testLibraryFragment>::@class::C::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class C @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::C
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::C
+          augmentation: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::C
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class C @43
+          reference: <testLibrary>::@fragment::package:test/b.dart::@classAugmentation::C
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          augmentationTarget: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::C
 ''');
   }
 
@@ -6934,49 +7026,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            bound: B
-            defaultType: B
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
-      class B @55
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T @45
-                bound: B
-                defaultType: B
-            augmentationTarget: <testLibraryFragment>::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              bound: B
+              defaultType: B
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
+            constructors
+              <testLibraryFragment>::@class::A::@constructor::new
+        class B @55
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T @45
+              bound: B
+              defaultType: B
+          augmentationTarget: <testLibraryFragment>::@class::A
 ''');
   }
 }
@@ -7008,57 +7101,58 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @20
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @0
-            name: SimpleIdentifier
-              token: A @1
-              staticElement: <testLibraryFragment>::@class::A
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @2
-              arguments
-                RecordLiteral
-                  leftParenthesis: ( @3
-                  fields
-                    IntegerLiteral
-                      literal: 2 @4
-                      staticType: int
-                    NamedExpression
-                      name: Label
-                        label: SimpleIdentifier
-                          token: a @7
-                          staticElement: <null>
-                          staticType: null
-                        colon: : @8
-                      expression: IntegerLiteral
-                        literal: 3 @10
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @20
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @0
+              name: SimpleIdentifier
+                token: A @1
+                staticElement: <testLibraryFragment>::@class::A
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @2
+                arguments
+                  RecordLiteral
+                    leftParenthesis: ( @3
+                    fields
+                      IntegerLiteral
+                        literal: 2 @4
                         staticType: int
-                  rightParenthesis: ) @11
-                  staticType: (int, {int a})
-              rightParenthesis: ) @12
-            element: <testLibraryFragment>::@class::A::@constructor::new
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @43
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional o @45
-                type: dynamic
+                      NamedExpression
+                        name: Label
+                          label: SimpleIdentifier
+                            token: a @7
+                            staticElement: <null>
+                            staticType: null
+                          colon: : @8
+                        expression: IntegerLiteral
+                          literal: 3 @10
+                          staticType: int
+                    rightParenthesis: ) @11
+                    staticType: (int, {int a})
+                rightParenthesis: ) @12
+              element: <testLibraryFragment>::@class::A::@constructor::new
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @43
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional o @45
+                  type: dynamic
 ''');
   }
 
@@ -7073,47 +7167,48 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @22
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @0
-            name: SimpleIdentifier
-              token: A @1
-              staticElement: <testLibraryFragment>::@class::A
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @2
-              arguments
-                RecordLiteral
-                  constKeyword: const @3
-                  leftParenthesis: ( @9
-                  fields
-                    SimpleStringLiteral
-                      literal: '' @10
-                  rightParenthesis: ) @13
-                  staticType: (String,)
-              rightParenthesis: ) @14
-            element: <testLibraryFragment>::@class::A::@constructor::new
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class A @33
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @45
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional o @47
-                type: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @22
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @0
+              name: SimpleIdentifier
+                token: A @1
+                staticElement: <testLibraryFragment>::@class::A
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @2
+                arguments
+                  RecordLiteral
+                    constKeyword: const @3
+                    leftParenthesis: ( @9
+                    fields
+                      SimpleStringLiteral
+                        literal: '' @10
+                    rightParenthesis: ) @13
+                    staticType: (String,)
+                rightParenthesis: ) @14
+              element: <testLibraryFragment>::@class::A::@constructor::new
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class A @33
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @45
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional o @47
+                  type: dynamic
 ''');
   }
 
@@ -7134,49 +7229,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @31
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          class A @60
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
       augmentationImports
         package:test/b.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
           reference: <testLibrary>::@augmentation::package:test/b.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/b.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
-            classes
-              class B @32
-                reference: <testLibrary>::@fragment::package:test/b.dart::@class::B
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-                constructors
-                  synthetic @-1
-                    reference: <testLibrary>::@fragment::package:test/b.dart::@class::B::@constructor::new
-                    enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@class::B
+          definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @31
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        class A @60
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+      classes
+        class B @32
+          reference: <testLibrary>::@fragment::package:test/b.dart::@class::B
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/b.dart::@class::B::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@class::B
 ''');
   }
 
@@ -7196,45 +7292,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @33
-            defaultType: dynamic
-        constructors
-          named @42
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 41
-            nameEnd: 47
-            parameters
-              requiredPositional a @50
-                type: T
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          class B @35
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            supertype: A<int>
-            constructors
-              @56
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
-                superConstructor: ConstructorMember
-                  base: <testLibraryFragment>::@class::A::@constructor::named
-                  substitution: {T: int}
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @33
+              defaultType: dynamic
+          constructors
+            named @42
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 41
+              nameEnd: 47
+              parameters
+                requiredPositional a @50
+                  type: T
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        class B @35
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          supertype: A<int>
+          constructors
+            @56
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::named
+                substitution: {T: int}
 ''');
   }
 
@@ -7254,37 +7351,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          named @39
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 38
-            nameEnd: 44
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          class B @35
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            supertype: A
-            constructors
-              @51
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
-                superConstructor: <testLibraryFragment>::@class::A::@constructor::named
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            named @39
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 38
+              nameEnd: 44
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        class B @35
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          supertype: A
+          constructors
+            @51
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::named
 ''');
   }
 
@@ -7302,35 +7400,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          class B @35
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            supertype: A
-            constructors
-              @51
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
-                superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        class B @35
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          supertype: A
+          constructors
+            @51
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -7348,38 +7447,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased notSimplyBounded F @33
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: dynamic Function(C<dynamic>)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional value @37
-              type: C<dynamic>
-          returnType: dynamic
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          notSimplyBounded class C @35
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::C
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T @37
-                bound: dynamic
-                defaultType: dynamic
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::C::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::C
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased notSimplyBounded F @33
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: dynamic Function(C<dynamic>)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional value @37
+                type: C<dynamic>
+            returnType: dynamic
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        notSimplyBounded class C @35
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::C
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T @37
+              bound: dynamic
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::C::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::C
 ''');
   }
 
@@ -7394,29 +7494,30 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          notSimplyBounded class C @35
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::C
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            typeParameters
-              covariant T @37
-                bound: C<dynamic>
-                defaultType: dynamic
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::C::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::C
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        notSimplyBounded class C @35
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::C
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          typeParameters
+            covariant T @37
+              bound: C<dynamic>
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::C::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::C
 ''');
   }
 
@@ -7440,9 +7541,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7451,36 +7550,39 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        functions
-          f @51
-            reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            parameters
-              optionalNamed default x @58
-                reference: <testLibrary>::@fragment::package:test/b.dart::@function::f::@parameter::x
-                type: int
-                constantInitializer
-                  PrefixedIdentifier
-                    prefix: SimpleIdentifier
-                      token: A @62
-                      staticElement: package:test/a.dart::<fragment>::@class::A
-                      staticType: null
-                    period: . @63
-                    identifier: SimpleIdentifier
-                      token: a @64
-                      staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
-                      staticType: int
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      functions
+        f @51
+          reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          parameters
+            optionalNamed default x @58
+              reference: <testLibrary>::@fragment::package:test/b.dart::@function::f::@parameter::x
+              type: int
+              constantInitializer
+                PrefixedIdentifier
+                  prefix: SimpleIdentifier
+                    token: A @62
+                    staticElement: package:test/a.dart::<fragment>::@class::A
+                    staticType: null
+                  period: . @63
+                  identifier: SimpleIdentifier
+                    token: a @64
                     staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
                     staticType: int
-            returnType: void
+                  staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
+                  staticType: int
+          returnType: void
 ''');
   }
 
@@ -7504,9 +7606,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7520,48 +7620,51 @@
           reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
           enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart as prefix @48
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        libraryImportPrefixes
-          prefix @48
-            reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        functions
-          f @61
-            reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            parameters
-              optionalNamed default x @68
-                reference: <testLibrary>::@fragment::package:test/b.dart::@function::f::@parameter::x
-                type: int
-                constantInitializer
-                  PropertyAccess
-                    target: PrefixedIdentifier
-                      prefix: SimpleIdentifier
-                        token: prefix @72
-                        staticElement: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
-                        staticType: null
-                      period: . @78
-                      identifier: SimpleIdentifier
-                        token: A @79
-                        staticElement: package:test/a.dart::<fragment>::@class::A
-                        staticType: null
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart as prefix @48
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      libraryImportPrefixes
+        prefix @48
+          reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
+          enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      functions
+        f @61
+          reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          parameters
+            optionalNamed default x @68
+              reference: <testLibrary>::@fragment::package:test/b.dart::@function::f::@parameter::x
+              type: int
+              constantInitializer
+                PropertyAccess
+                  target: PrefixedIdentifier
+                    prefix: SimpleIdentifier
+                      token: prefix @72
+                      staticElement: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
+                      staticType: null
+                    period: . @78
+                    identifier: SimpleIdentifier
+                      token: A @79
                       staticElement: package:test/a.dart::<fragment>::@class::A
                       staticType: null
-                    operator: . @80
-                    propertyName: SimpleIdentifier
-                      token: a @81
-                      staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
-                      staticType: int
+                    staticElement: package:test/a.dart::<fragment>::@class::A
+                    staticType: null
+                  operator: . @80
+                  propertyName: SimpleIdentifier
+                    token: a @81
+                    staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
                     staticType: int
-            returnType: void
+                  staticType: int
+          returnType: void
 ''');
   }
 
@@ -7583,9 +7686,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7594,30 +7695,33 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        topLevelVariables
-          static const b @52
-            reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              SimpleIdentifier
-                token: a @56
-                staticElement: package:test/a.dart::<fragment>::@getter::a
-                staticType: int
-        accessors
-          synthetic static get b @-1
-            reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: int
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      topLevelVariables
+        static const b @52
+          reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: a @56
+              staticElement: package:test/a.dart::<fragment>::@getter::a
+              staticType: int
+      accessors
+        synthetic static get b @-1
+          reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: int
 ''');
   }
 
@@ -7641,9 +7745,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7652,38 +7754,41 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        topLevelVariables
-          static const b @52
-            reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              PrefixedIdentifier
-                prefix: SimpleIdentifier
-                  token: A @56
-                  staticElement: package:test/a.dart::<fragment>::@class::A
-                  staticType: null
-                period: . @57
-                identifier: SimpleIdentifier
-                  token: a @58
-                  staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
-                  staticType: int
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      topLevelVariables
+        static const b @52
+          reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: A @56
+                staticElement: package:test/a.dart::<fragment>::@class::A
+                staticType: null
+              period: . @57
+              identifier: SimpleIdentifier
+                token: a @58
                 staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
                 staticType: int
-        accessors
-          synthetic static get b @-1
-            reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: int
+              staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
+              staticType: int
+      accessors
+        synthetic static get b @-1
+          reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: int
 ''');
   }
 
@@ -7707,9 +7812,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7718,37 +7821,40 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        topLevelVariables
-          static const a @52
-            reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::a
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            type: A
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: A @56
-                    element: package:test/a.dart::<fragment>::@class::A
-                    type: A
-                  staticElement: package:test/a.dart::<fragment>::@class::A::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @57
-                  rightParenthesis: ) @58
-                staticType: A
-        accessors
-          synthetic static get a @-1
-            reference: <testLibrary>::@fragment::package:test/b.dart::@getter::a
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      topLevelVariables
+        static const a @52
+          reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::a
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          type: A
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              constructorName: ConstructorName
+                type: NamedType
+                  name: A @56
+                  element: package:test/a.dart::<fragment>::@class::A
+                  type: A
+                staticElement: package:test/a.dart::<fragment>::@class::A::@constructor::new
+              argumentList: ArgumentList
+                leftParenthesis: ( @57
+                rightParenthesis: ) @58
+              staticType: A
+      accessors
+        synthetic static get a @-1
+          reference: <testLibrary>::@fragment::package:test/b.dart::@getter::a
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: A
 ''');
   }
 
@@ -7772,9 +7878,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7788,50 +7892,53 @@
           reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
           enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart as prefix @48
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        libraryImportPrefixes
-          prefix @48
-            reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        topLevelVariables
-          static const b @62
-            reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              PropertyAccess
-                target: PrefixedIdentifier
-                  prefix: SimpleIdentifier
-                    token: prefix @66
-                    staticElement: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
-                    staticType: null
-                  period: . @72
-                  identifier: SimpleIdentifier
-                    token: A @73
-                    staticElement: package:test/a.dart::<fragment>::@class::A
-                    staticType: null
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart as prefix @48
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      libraryImportPrefixes
+        prefix @48
+          reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
+          enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      topLevelVariables
+        static const b @62
+          reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PropertyAccess
+              target: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: prefix @66
+                  staticElement: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
+                  staticType: null
+                period: . @72
+                identifier: SimpleIdentifier
+                  token: A @73
                   staticElement: package:test/a.dart::<fragment>::@class::A
                   staticType: null
-                operator: . @74
-                propertyName: SimpleIdentifier
-                  token: a @75
-                  staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
-                  staticType: int
+                staticElement: package:test/a.dart::<fragment>::@class::A
+                staticType: null
+              operator: . @74
+              propertyName: SimpleIdentifier
+                token: a @75
+                staticElement: package:test/a.dart::<fragment>::@class::A::@getter::a
                 staticType: int
-        accessors
-          synthetic static get b @-1
-            reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: int
+              staticType: int
+      accessors
+        synthetic static get b @-1
+          reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: int
 ''');
   }
 
@@ -7857,9 +7964,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7873,43 +7978,46 @@
           reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
           enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart as prefix @48
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        libraryImportPrefixes
-          prefix @48
-            reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        functions
-          f @74
-            reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            metadata
-              Annotation
-                atSign: @ @57
-                name: PrefixedIdentifier
-                  prefix: SimpleIdentifier
-                    token: prefix @58
-                    staticElement: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
-                    staticType: null
-                  period: . @64
-                  identifier: SimpleIdentifier
-                    token: A @65
-                    staticElement: package:test/a.dart::<fragment>::@class::A
-                    staticType: null
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart as prefix @48
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      libraryImportPrefixes
+        prefix @48
+          reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
+          enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      functions
+        f @74
+          reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          metadata
+            Annotation
+              atSign: @ @57
+              name: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: prefix @58
+                  staticElement: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
+                  staticType: null
+                period: . @64
+                identifier: SimpleIdentifier
+                  token: A @65
                   staticElement: package:test/a.dart::<fragment>::@class::A
                   staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @66
-                  rightParenthesis: ) @67
-                element: package:test/a.dart::<fragment>::@class::A::@constructor::new
-            returnType: void
+                staticElement: package:test/a.dart::<fragment>::@class::A
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @66
+                rightParenthesis: ) @67
+              element: package:test/a.dart::<fragment>::@class::A::@constructor::new
+          returnType: void
 ''');
   }
 
@@ -7931,9 +8039,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7947,24 +8053,27 @@
           reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
           enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart as prefix @48
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        libraryImportPrefixes
-          prefix @48
-            reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        functions
-          f @65
-            reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart as prefix @48
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      libraryImportPrefixes
+        prefix @48
+          reference: <testLibrary>::@fragment::package:test/b.dart::@prefix::prefix
+          enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      functions
+        f @65
+          reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: A
 ''');
   }
 
@@ -7986,9 +8095,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -7997,25 +8104,28 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        topLevelVariables
-          static final b @52
-            reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            type: int
-            shouldUseTypeForInitializerInference: false
-        accessors
-          synthetic static get b @-1
-            reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: int
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      topLevelVariables
+        static final b @52
+          reference: <testLibrary>::@fragment::package:test/b.dart::@topLevelVariable::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          type: int
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get b @-1
+          reference: <testLibrary>::@fragment::package:test/b.dart::@getter::b
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: int
 ''');
   }
 
@@ -8040,14 +8150,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @27
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -8056,19 +8159,27 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-        functions
-          f @48
-            reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: A
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @27
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      functions
+        f @48
+          reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: A
 ''');
   }
 
@@ -8097,31 +8208,32 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    functions
-      f @44
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: A
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        functions
-          f @31
-            reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-            returnType: InvalidType
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      functions
+        f @44
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      functions
+        f @31
+          reference: <testLibrary>::@fragment::package:test/b.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          returnType: InvalidType
 ''');
   }
 
@@ -8147,13 +8259,7 @@
     dart:io
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:io
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
@@ -8162,14 +8268,7 @@
         dart:async
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryExports
-          dart:async
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
@@ -8180,17 +8279,31 @@
         dart:math
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryExports
-          dart:collection
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-          dart:math
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:io
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryExports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryExports
+        dart:collection
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+        dart:math
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
 ''');
   }
 
@@ -8216,13 +8329,7 @@
     dart:io
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:io
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
@@ -8231,14 +8338,7 @@
         dart:async
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          dart:async
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
     package:test/b.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/b.dart
@@ -8249,17 +8349,31 @@
         dart:math
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryImports
-          dart:collection
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-          dart:math
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:io
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryImports
+        dart:collection
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+        dart:math
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
 ''');
   }
 
@@ -8279,35 +8393,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @27
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: A
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          class A @35
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
-        functions
-          f @42
-            reference: <testLibrary>::@fragment::package:test/a.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            returnType: A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @27
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        class A @35
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+      functions
+        f @42
+          reference: <testLibrary>::@fragment::package:test/a.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          returnType: A
 ''');
   }
 
@@ -8327,35 +8442,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    functions
-      f @38
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: A
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        functions
-          f @31
-            reference: <testLibrary>::@fragment::package:test/a.dart::@function::f
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            returnType: A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      functions
+        f @38
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      functions
+        f @31
+          reference: <testLibrary>::@fragment::package:test/a.dart::@function::f
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          returnType: A
 ''');
   }
 
@@ -8364,17 +8480,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class C @15
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class C @15
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8383,17 +8500,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      base class C @11
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        base class C @11
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8402,17 +8520,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @16
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @16
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8421,17 +8540,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          external const @25
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            external const @25
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8446,18 +8566,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @34
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /**\n   * Docs\n   */
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @34
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /**\n   * Docs\n   */
 ''');
   }
 
@@ -8466,19 +8587,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          foo @12
-            reference: <testLibraryFragment>::@class::C::@constructor::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 11
-            nameEnd: 15
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            foo @12
+              reference: <testLibraryFragment>::@class::C::@constructor::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 11
+              nameEnd: 15
 ''');
   }
 
@@ -8487,22 +8609,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        constructors
-          @16
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          constructors
+            @16
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8511,17 +8634,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @10
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @10
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8530,17 +8654,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          external @19
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            external @19
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8549,17 +8674,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @18
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @18
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -8569,38 +8695,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @21
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @36
-                type: dynamic
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @21
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @36
+                  type: dynamic
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -8609,38 +8736,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @21
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @32
-                type: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @21
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @32
+                  type: int
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -8649,38 +8777,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @21
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @28
-                type: dynamic
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @21
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @28
+                  type: dynamic
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -8694,41 +8823,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @16
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @21
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @28
-                type: dynamic Function(double)
-                parameters
-                  requiredPositional b @37
-                    type: double
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @16
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @21
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @28
+                  type: dynamic Function(double)
+                  parameters
+                    requiredPositional b @37
+                      type: double
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -8742,41 +8872,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @16
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @21
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @32
-                type: int Function(double)
-                parameters
-                  requiredPositional b @41
-                    type: double
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @16
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @21
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @32
+                  type: int Function(double)
+                  parameters
+                    requiredPositional b @41
+                      type: double
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -8790,44 +8921,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          f @23
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic Function()
-        constructors
-          @28
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.f @43
-                type: List<U> Function<T, U>(T)
-                typeParameters
-                  covariant T @45
-                  covariant U @48
-                parameters
-                  requiredPositional t @53
-                    type: T
-                field: <testLibraryFragment>::@class::C::@field::f
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic Function()
-          synthetic set f= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _f @-1
-                type: dynamic Function()
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            f @23
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic Function()
+          constructors
+            @28
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.f @43
+                  type: List<U> Function<T, U>(T)
+                  typeParameters
+                    covariant T @45
+                    covariant U @48
+                  parameters
+                    requiredPositional t @53
+                      type: T
+                  field: <testLibraryFragment>::@class::C::@field::f
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic Function()
+            synthetic set f= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _f @-1
+                  type: dynamic Function()
+              returnType: void
 ''');
   }
 
@@ -8838,53 +8970,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @25
-            reference: <testLibraryFragment>::@class::C::@field::x::@def::0
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-          x @35
-            reference: <testLibraryFragment>::@class::C::@field::x::@def::1
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: String
-        constructors
-          @10
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @17
-                type: int
-                field: <testLibraryFragment>::@class::C::@field::x::@def::0
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x::@def::0
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x::@def::0
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x::@def::1
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: String
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x::@def::1
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: String
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @25
+              reference: <testLibraryFragment>::@class::C::@field::x::@def::0
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+            x @35
+              reference: <testLibraryFragment>::@class::C::@field::x::@def::1
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: String
+          constructors
+            @10
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @17
+                  type: int
+                  field: <testLibraryFragment>::@class::C::@field::x::@def::0
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x::@def::0
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x::@def::0
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x::@def::1
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: String
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x::@def::1
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: String
+              returnType: void
 ''');
   }
 
@@ -8894,21 +9027,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @10
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @17
-                type: dynamic
-                field: <null>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @10
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @17
+                  type: dynamic
+                  field: <null>
 ''');
   }
 
@@ -8917,38 +9051,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: num
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @32
-                type: dynamic
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: num
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: num
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: num
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @32
+                  type: dynamic
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: num
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: num
+              returnType: void
 ''');
   }
 
@@ -8957,38 +9092,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: num
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @28
-                type: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: num
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: num
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: num
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @28
+                  type: int
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: num
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: num
+              returnType: void
 ''');
   }
 
@@ -8997,38 +9133,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: num
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @24
-                type: num
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: num
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: num
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: num
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @24
+                  type: num
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: num
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: num
+              returnType: void
 ''');
   }
 
@@ -9037,38 +9174,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @32
-                type: dynamic
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @32
+                  type: dynamic
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -9077,38 +9215,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @28
-                type: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @28
+                  type: int
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -9117,38 +9256,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.x @24
-                type: dynamic
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.x @24
+                  type: dynamic
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -9157,39 +9297,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalNamed default final this.x @25
-                reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
-                type: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalNamed default final this.x @25
+                  reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
+                  type: int
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -9198,43 +9339,44 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalNamed default final this.x @25
-                reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 42 @28
-                    staticType: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalNamed default final this.x @25
+                  reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 42 @28
+                      staticType: int
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -9243,38 +9385,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default final this.x @25
-                type: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default final this.x @25
+                  type: int
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -9283,42 +9426,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          @17
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default final this.x @25
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 42 @29
-                    staticType: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            @17
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default final this.x @25
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 42 @29
+                      staticType: int
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -9327,22 +9471,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -9355,37 +9500,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional x @24
-                type: int
-            constantInitializers
-              AssertInitializer
-                assertKeyword: assert @29
-                leftParenthesis: ( @35
-                condition: BinaryExpression
-                  leftOperand: SimpleIdentifier
-                    token: x @36
-                    staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
-                    staticType: int
-                  operator: >= @38
-                  rightOperand: IntegerLiteral
-                    literal: 42 @41
-                    staticType: int
-                  staticElement: dart:core::<fragment>::@class::num::@method::>=
-                  staticInvokeType: bool Function(num)
-                  staticType: bool
-                rightParenthesis: ) @43
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional x @24
+                  type: int
+              constantInitializers
+                AssertInitializer
+                  assertKeyword: assert @29
+                  leftParenthesis: ( @35
+                  condition: BinaryExpression
+                    leftOperand: SimpleIdentifier
+                      token: x @36
+                      staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
+                      staticType: int
+                    operator: >= @38
+                    rightOperand: IntegerLiteral
+                      literal: 42 @41
+                      staticType: int
+                    staticElement: dart:core::<fragment>::@class::num::@method::>=
+                    staticInvokeType: bool Function(num)
+                    staticType: bool
+                  rightParenthesis: ) @43
 ''');
   }
 
@@ -9398,40 +9544,41 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional x @24
-                type: int
-            constantInitializers
-              AssertInitializer
-                assertKeyword: assert @29
-                leftParenthesis: ( @35
-                condition: BinaryExpression
-                  leftOperand: SimpleIdentifier
-                    token: x @36
-                    staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
-                    staticType: int
-                  operator: >= @38
-                  rightOperand: IntegerLiteral
-                    literal: 42 @41
-                    staticType: int
-                  staticElement: dart:core::<fragment>::@class::num::@method::>=
-                  staticInvokeType: bool Function(num)
-                  staticType: bool
-                comma: , @43
-                message: SimpleStringLiteral
-                  literal: 'foo' @45
-                rightParenthesis: ) @50
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional x @24
+                  type: int
+              constantInitializers
+                AssertInitializer
+                  assertKeyword: assert @29
+                  leftParenthesis: ( @35
+                  condition: BinaryExpression
+                    leftOperand: SimpleIdentifier
+                      token: x @36
+                      staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
+                      staticType: int
+                    operator: >= @38
+                    rightOperand: IntegerLiteral
+                      literal: 42 @41
+                      staticType: int
+                    staticElement: dart:core::<fragment>::@class::num::@method::>=
+                    staticInvokeType: bool Function(num)
+                    staticType: bool
+                  comma: , @43
+                  message: SimpleStringLiteral
+                    literal: 'foo' @45
+                  rightParenthesis: ) @50
 ''');
   }
 
@@ -9445,37 +9592,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          const @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: x @35
-                  staticElement: <testLibraryFragment>::@class::C::@field::x
-                  staticType: null
-                equals: = @37
-                expression: IntegerLiteral
-                  literal: 42 @39
-                  staticType: int
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            const @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: x @35
+                    staticElement: <testLibraryFragment>::@class::C::@field::x
+                    staticType: null
+                  equals: = @37
+                  expression: IntegerLiteral
+                    literal: 42 @39
+                    staticType: int
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -9491,49 +9639,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          const @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: x @35
-                  staticElement: <testLibraryFragment>::@class::C::@field::x
-                  staticType: null
-                equals: = @37
-                expression: MethodInvocation
-                  methodName: SimpleIdentifier
-                    token: foo @39
-                    staticElement: <testLibraryFragment>::@function::foo
-                    staticType: int Function()
-                  argumentList: ArgumentList
-                    leftParenthesis: ( @42
-                    rightParenthesis: ) @43
-                  staticInvokeType: int Function()
-                  staticType: int
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-    functions
-      foo @52
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            const @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: x @35
+                    staticElement: <testLibraryFragment>::@class::C::@field::x
+                    staticType: null
+                  equals: = @37
+                  expression: MethodInvocation
+                    methodName: SimpleIdentifier
+                      token: foo @39
+                      staticElement: <testLibraryFragment>::@function::foo
+                      staticType: int Function()
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @42
+                      rightParenthesis: ) @43
+                    staticInvokeType: int Function()
+                    staticType: int
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+      functions
+        foo @52
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -9547,45 +9696,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _f @22
-            reference: <testLibraryFragment>::@class::A::@field::_f
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          const @34
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              optionalPositional default f @41
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @45
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _f @22
+              reference: <testLibraryFragment>::@class::A::@field::_f
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            const @34
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                optionalPositional default f @41
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 0 @45
+                      staticType: int
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: _f @51
+                    staticElement: <testLibraryFragment>::@class::A::@field::_f
+                    staticType: null
+                  equals: = @54
+                  expression: SimpleIdentifier
+                    token: f @56
+                    staticElement: <testLibraryFragment>::@class::A::@constructor::new::@parameter::f
                     staticType: int
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: _f @51
-                  staticElement: <testLibraryFragment>::@class::A::@field::_f
-                  staticType: null
-                equals: = @54
-                expression: SimpleIdentifier
-                  token: f @56
-                  staticElement: <testLibraryFragment>::@class::A::@constructor::new::@parameter::f
-                  staticType: int
-        accessors
-          synthetic get _f @-1
-            reference: <testLibraryFragment>::@class::A::@getter::_f
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
+          accessors
+            synthetic get _f @-1
+              reference: <testLibraryFragment>::@class::A::@getter::_f
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
 ''');
   }
 
@@ -9599,49 +9749,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @25
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: Object
-        constructors
-          const @36
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional a @42
-                type: int
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: x @47
-                  staticElement: <testLibraryFragment>::@class::C::@field::x
-                  staticType: null
-                equals: = @49
-                expression: RecordLiteral
-                  leftParenthesis: ( @51
-                  fields
-                    IntegerLiteral
-                      literal: 0 @52
-                      staticType: int
-                    SimpleIdentifier
-                      token: a @55
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::a
-                      staticType: int
-                  rightParenthesis: ) @56
-                  staticType: (int, int)
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @25
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: Object
+          constructors
+            const @36
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional a @42
+                  type: int
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: x @47
+                    staticElement: <testLibraryFragment>::@class::C::@field::x
+                    staticType: null
+                  equals: = @49
+                  expression: RecordLiteral
+                    leftParenthesis: ( @51
+                    fields
+                      IntegerLiteral
+                        literal: 0 @52
+                        staticType: int
+                      SimpleIdentifier
+                        token: a @55
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::a
+                        staticType: int
+                    rightParenthesis: ) @56
+                    staticType: (int, int)
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: Object
 ''');
   }
 
@@ -9655,49 +9806,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          const @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional p @35
-                type: int
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: x @40
-                  staticElement: <testLibraryFragment>::@class::C::@field::x
-                  staticType: null
-                equals: = @42
-                expression: BinaryExpression
-                  leftOperand: IntegerLiteral
-                    literal: 1 @44
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            const @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional p @35
+                  type: int
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: x @40
+                    staticElement: <testLibraryFragment>::@class::C::@field::x
+                    staticType: null
+                  equals: = @42
+                  expression: BinaryExpression
+                    leftOperand: IntegerLiteral
+                      literal: 1 @44
+                      staticType: int
+                    operator: + @46
+                    rightOperand: SimpleIdentifier
+                      token: p @48
+                      staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::p
+                      staticType: int
+                    staticElement: dart:core::<fragment>::@class::num::@method::+
+                    staticInvokeType: num Function(num)
                     staticType: int
-                  operator: + @46
-                  rightOperand: SimpleIdentifier
-                    token: p @48
-                    staticElement: <testLibraryFragment>::@class::C::@constructor::new::@parameter::p
-                    staticType: int
-                  staticElement: dart:core::<fragment>::@class::num::@method::+
-                  staticInvokeType: num Function(num)
-                  staticType: int
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -9715,71 +9867,72 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @34
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @46
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional x @56
-                type: dynamic
-          const f @70
-            reference: <testLibraryFragment>::@class::B::@constructor::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            periodOffset: 69
-            nameEnd: 71
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @79
-                argumentList: ArgumentList
-                  leftParenthesis: ( @83
-                  arguments
-                    InstanceCreationExpression
-                      constructorName: ConstructorName
-                        type: NamedType
-                          name: A @84
-                          typeArguments: TypeArgumentList
-                            leftBracket: < @85
-                            arguments
-                              GenericFunctionType
-                                functionKeyword: Function @86
-                                parameters: FormalParameterList
-                                  leftParenthesis: ( @94
-                                  rightParenthesis: ) @95
-                                declaredElement: GenericFunctionTypeElement
-                                  parameters
-                                  returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @34
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @46
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional x @56
+                  type: dynamic
+            const f @70
+              reference: <testLibraryFragment>::@class::B::@constructor::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              periodOffset: 69
+              nameEnd: 71
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @79
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @83
+                    arguments
+                      InstanceCreationExpression
+                        constructorName: ConstructorName
+                          type: NamedType
+                            name: A @84
+                            typeArguments: TypeArgumentList
+                              leftBracket: < @85
+                              arguments
+                                GenericFunctionType
+                                  functionKeyword: Function @86
+                                  parameters: FormalParameterList
+                                    leftParenthesis: ( @94
+                                    rightParenthesis: ) @95
+                                  declaredElement: GenericFunctionTypeElement
+                                    parameters
+                                    returnType: dynamic
+                                    type: dynamic Function()
                                   type: dynamic Function()
-                                type: dynamic Function()
-                            rightBracket: > @96
-                          element: <testLibraryFragment>::@class::A
-                          type: A<dynamic Function()>
-                        staticElement: ConstructorMember
-                          base: <testLibraryFragment>::@class::A::@constructor::new
-                          substitution: {T: dynamic Function()}
-                      argumentList: ArgumentList
-                        leftParenthesis: ( @97
-                        rightParenthesis: ) @98
-                      staticType: A<dynamic Function()>
-                  rightParenthesis: ) @99
-                staticElement: <testLibraryFragment>::@class::B::@constructor::new
-            redirectedConstructor: <testLibraryFragment>::@class::B::@constructor::new
+                              rightBracket: > @96
+                            element: <testLibraryFragment>::@class::A
+                            type: A<dynamic Function()>
+                          staticElement: ConstructorMember
+                            base: <testLibraryFragment>::@class::A::@constructor::new
+                            substitution: {T: dynamic Function()}
+                        argumentList: ArgumentList
+                          leftParenthesis: ( @97
+                          rightParenthesis: ) @98
+                        staticType: A<dynamic Function()>
+                    rightParenthesis: ) @99
+                  staticElement: <testLibraryFragment>::@class::B::@constructor::new
+              redirectedConstructor: <testLibraryFragment>::@class::B::@constructor::new
 ''');
   }
 
@@ -9795,42 +9948,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional values @33
-                type: List<String>
-      class B @50
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          const @72
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @78
-                argumentList: ArgumentList
-                  leftParenthesis: ( @83
-                  arguments
-                    ListLiteral
-                      constKeyword: const @84
-                      leftBracket: [ @90
-                      rightBracket: ] @91
-                      staticType: List<String>
-                  rightParenthesis: ) @92
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional values @33
+                  type: List<String>
+        class B @50
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            const @72
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @78
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @83
+                    arguments
+                      ListLiteral
+                        constKeyword: const @84
+                        leftBracket: [ @90
+                        rightBracket: ] @91
+                        staticType: List<String>
+                    rightParenthesis: ) @92
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -9846,47 +10000,48 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const aaa @20
-            reference: <testLibraryFragment>::@class::A::@constructor::aaa
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 19
-            nameEnd: 23
-            parameters
-              requiredPositional p @28
-                type: int
-      class C @40
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          const @62
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @68
-                period: . @73
-                constructorName: SimpleIdentifier
-                  token: aaa @74
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const aaa @20
+              reference: <testLibraryFragment>::@class::A::@constructor::aaa
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 19
+              nameEnd: 23
+              parameters
+                requiredPositional p @28
+                  type: int
+        class C @40
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            const @62
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @68
+                  period: . @73
+                  constructorName: SimpleIdentifier
+                    token: aaa @74
+                    staticElement: <testLibraryFragment>::@class::A::@constructor::aaa
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @77
+                    arguments
+                      IntegerLiteral
+                        literal: 42 @78
+                        staticType: int
+                    rightParenthesis: ) @80
                   staticElement: <testLibraryFragment>::@class::A::@constructor::aaa
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @77
-                  arguments
-                    IntegerLiteral
-                      literal: 42 @78
-                      staticType: int
-                  rightParenthesis: ) @80
-                staticElement: <testLibraryFragment>::@class::A::@constructor::aaa
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::aaa
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::aaa
 ''');
   }
 
@@ -9902,40 +10057,41 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const _ @20
-            reference: <testLibraryFragment>::@class::A::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 19
-            nameEnd: 21
-      class B @33
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          const @55
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @61
-                period: . @66
-                constructorName: SimpleIdentifier
-                  token: _ @67
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const _ @20
+              reference: <testLibraryFragment>::@class::A::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 19
+              nameEnd: 21
+        class B @33
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            const @55
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @61
+                  period: . @66
+                  constructorName: SimpleIdentifier
+                    token: _ @67
+                    staticElement: <testLibraryFragment>::@class::A::@constructor::_
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @68
+                    rightParenthesis: ) @69
                   staticElement: <testLibraryFragment>::@class::A::@constructor::_
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @68
-                  rightParenthesis: ) @69
-                staticElement: <testLibraryFragment>::@class::A::@constructor::_
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::_
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::_
 ''');
   }
 
@@ -9951,60 +10107,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const aaa @20
-            reference: <testLibraryFragment>::@class::A::@constructor::aaa
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 19
-            nameEnd: 23
-            parameters
-              requiredPositional a @24
-                type: dynamic
-              optionalNamed default b @32
-                reference: <testLibraryFragment>::@class::A::@constructor::aaa::@parameter::b
-                type: int
-      class C @45
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          const @67
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @73
-                period: . @78
-                constructorName: SimpleIdentifier
-                  token: aaa @79
-                  staticElement: <testLibraryFragment>::@class::A::@constructor::aaa
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @82
-                  arguments
-                    IntegerLiteral
-                      literal: 1 @83
-                      staticType: int
-                    NamedExpression
-                      name: Label
-                        label: SimpleIdentifier
-                          token: b @86
-                          staticElement: <testLibraryFragment>::@class::A::@constructor::aaa::@parameter::b
-                          staticType: null
-                        colon: : @87
-                      expression: IntegerLiteral
-                        literal: 2 @89
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const aaa @20
+              reference: <testLibraryFragment>::@class::A::@constructor::aaa
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 19
+              nameEnd: 23
+              parameters
+                requiredPositional a @24
+                  type: dynamic
+                optionalNamed default b @32
+                  reference: <testLibraryFragment>::@class::A::@constructor::aaa::@parameter::b
+                  type: int
+        class C @45
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            const @67
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @73
+                  period: . @78
+                  constructorName: SimpleIdentifier
+                    token: aaa @79
+                    staticElement: <testLibraryFragment>::@class::A::@constructor::aaa
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @82
+                    arguments
+                      IntegerLiteral
+                        literal: 1 @83
                         staticType: int
-                  rightParenthesis: ) @90
-                staticElement: <testLibraryFragment>::@class::A::@constructor::aaa
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::aaa
+                      NamedExpression
+                        name: Label
+                          label: SimpleIdentifier
+                            token: b @86
+                            staticElement: <testLibraryFragment>::@class::A::@constructor::aaa::@parameter::b
+                            staticType: null
+                          colon: : @87
+                        expression: IntegerLiteral
+                          literal: 2 @89
+                          staticType: int
+                    rightParenthesis: ) @90
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::aaa
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::aaa
 ''');
   }
 
@@ -10020,42 +10177,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional p @24
-                type: int
-      class C @36
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          const ccc @60
-            reference: <testLibraryFragment>::@class::C::@constructor::ccc
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 59
-            nameEnd: 63
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @68
-                argumentList: ArgumentList
-                  leftParenthesis: ( @73
-                  arguments
-                    IntegerLiteral
-                      literal: 42 @74
-                      staticType: int
-                  rightParenthesis: ) @76
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional p @24
+                  type: int
+        class C @36
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            const ccc @60
+              reference: <testLibraryFragment>::@class::C::@constructor::ccc
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 59
+              nameEnd: 63
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @68
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @73
+                    arguments
+                      IntegerLiteral
+                        literal: 42 @74
+                        staticType: int
+                    rightParenthesis: ) @76
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10069,39 +10227,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional values @33
-                type: List<String>
-          const empty @52
-            reference: <testLibraryFragment>::@class::A::@constructor::empty
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 51
-            nameEnd: 57
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @62
-                argumentList: ArgumentList
-                  leftParenthesis: ( @66
-                  arguments
-                    ListLiteral
-                      constKeyword: const @67
-                      leftBracket: [ @73
-                      rightBracket: ] @74
-                      staticType: List<String>
-                  rightParenthesis: ) @75
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            redirectedConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional values @33
+                  type: List<String>
+            const empty @52
+              reference: <testLibraryFragment>::@class::A::@constructor::empty
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 51
+              nameEnd: 57
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @62
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @66
+                    arguments
+                      ListLiteral
+                        constKeyword: const @67
+                        leftBracket: [ @73
+                        rightBracket: ] @74
+                        staticType: List<String>
+                    rightParenthesis: ) @75
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              redirectedConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10115,46 +10274,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @24
-                period: . @28
-                constructorName: SimpleIdentifier
-                  token: named @29
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @24
+                  period: . @28
+                  constructorName: SimpleIdentifier
+                    token: named @29
+                    staticElement: <testLibraryFragment>::@class::C::@constructor::named
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @34
+                    arguments
+                      IntegerLiteral
+                        literal: 1 @35
+                        staticType: int
+                      SimpleStringLiteral
+                        literal: 'bbb' @38
+                    rightParenthesis: ) @43
                   staticElement: <testLibraryFragment>::@class::C::@constructor::named
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @34
-                  arguments
-                    IntegerLiteral
-                      literal: 1 @35
-                      staticType: int
-                    SimpleStringLiteral
-                      literal: 'bbb' @38
-                  rightParenthesis: ) @43
-                staticElement: <testLibraryFragment>::@class::C::@constructor::named
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
-          const named @56
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 55
-            nameEnd: 61
-            parameters
-              requiredPositional a @66
-                type: int
-              requiredPositional b @76
-                type: String
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
+            const named @56
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 55
+              nameEnd: 61
+              parameters
+                requiredPositional a @66
+                  type: int
+                requiredPositional b @76
+                  type: String
 ''');
   }
 
@@ -10168,55 +10328,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @24
-                period: . @28
-                constructorName: SimpleIdentifier
-                  token: named @29
-                  staticElement: <testLibraryFragment>::@class::C::@constructor::named
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @34
-                  arguments
-                    IntegerLiteral
-                      literal: 1 @35
-                      staticType: int
-                    NamedExpression
-                      name: Label
-                        label: SimpleIdentifier
-                          token: b @38
-                          staticElement: <testLibraryFragment>::@class::C::@constructor::named::@parameter::b
-                          staticType: null
-                        colon: : @39
-                      expression: IntegerLiteral
-                        literal: 2 @41
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @24
+                  period: . @28
+                  constructorName: SimpleIdentifier
+                    token: named @29
+                    staticElement: <testLibraryFragment>::@class::C::@constructor::named
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @34
+                    arguments
+                      IntegerLiteral
+                        literal: 1 @35
                         staticType: int
-                  rightParenthesis: ) @42
-                staticElement: <testLibraryFragment>::@class::C::@constructor::named
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
-          const named @55
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 54
-            nameEnd: 60
-            parameters
-              requiredPositional a @61
-                type: dynamic
-              optionalNamed default b @69
-                reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::b
-                type: int
+                      NamedExpression
+                        name: Label
+                          label: SimpleIdentifier
+                            token: b @38
+                            staticElement: <testLibraryFragment>::@class::C::@constructor::named::@parameter::b
+                            staticType: null
+                          colon: : @39
+                        expression: IntegerLiteral
+                          literal: 2 @41
+                          staticType: int
+                    rightParenthesis: ) @42
+                  staticElement: <testLibraryFragment>::@class::C::@constructor::named
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
+            const named @55
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 54
+              nameEnd: 60
+              parameters
+                requiredPositional a @61
+                  type: dynamic
+                optionalNamed default b @69
+                  reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::b
+                  type: int
 ''');
   }
 
@@ -10230,41 +10391,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const named @20
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 19
-            nameEnd: 25
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @30
-                argumentList: ArgumentList
-                  leftParenthesis: ( @34
-                  arguments
-                    IntegerLiteral
-                      literal: 1 @35
-                      staticType: int
-                    SimpleStringLiteral
-                      literal: 'bbb' @38
-                  rightParenthesis: ) @43
-                staticElement: <testLibraryFragment>::@class::C::@constructor::new
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
-          const @54
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional a @60
-                type: int
-              requiredPositional b @70
-                type: String
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const named @20
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 19
+              nameEnd: 25
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @30
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @34
+                    arguments
+                      IntegerLiteral
+                        literal: 1 @35
+                        staticType: int
+                      SimpleStringLiteral
+                        literal: 'bbb' @38
+                    rightParenthesis: ) @43
+                  staticElement: <testLibraryFragment>::@class::C::@constructor::new
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
+            const @54
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional a @60
+                  type: int
+                requiredPositional b @70
+                  type: String
 ''');
   }
 
@@ -10281,39 +10443,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @22
-                type: Object?
-      class B @35
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @51
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional final super.a @63
-                type: int Function<T extends num>(T)?
-                typeParameters
-                  covariant T @65
-                    bound: num
-                parameters
-                  requiredPositional d @82
-                    type: T
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @22
+                  type: Object?
+        class B @35
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @51
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional final super.a @63
+                  type: int Function<T extends num>(T)?
+                  typeParameters
+                    covariant T @65
+                      bound: num
+                  parameters
+                    requiredPositional d @82
+                      type: T
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10330,33 +10493,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @18
-                type: num
-      class B @31
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @47
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional final super.a @59
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @18
+                  type: num
+        class B @31
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @47
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional final super.a @59
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10373,33 +10537,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @19
-                type: num?
-      class B @32
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @48
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional final super.a @61
-                type: int?
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @19
+                  type: num?
+        class B @32
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @48
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional final super.a @61
+                  type: int?
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10410,18 +10575,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional final super.a @13
-            type: dynamic
-            superConstructorParameter: <null>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional final super.a @13
+              type: dynamic
+              superConstructorParameter: <null>
+          returnType: void
 ''');
   }
 
@@ -10438,48 +10604,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredNamed default a @28
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-                type: int
-              requiredNamed default b @47
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
-                type: double
-      class B @61
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @77
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              optionalNamed default o1 @87
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o1
-                type: String
-              optionalNamed default final super.a @97
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-              optionalNamed default o2 @107
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o2
-                type: String
-              optionalNamed default final super.b @117
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::b
-                type: double
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredNamed default a @28
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                  type: int
+                requiredNamed default b @47
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
+                  type: double
+        class B @61
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @77
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                optionalNamed default o1 @87
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o1
+                  type: String
+                optionalNamed default final super.a @97
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                optionalNamed default o2 @107
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o2
+                  type: String
+                optionalNamed default final super.b @117
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::b
+                  type: double
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10497,39 +10664,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              optionalNamed default a @19
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @23
-                    staticType: int
-      class B @37
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @53
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              optionalNamed default final hasDefaultValue super.a @62
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                optionalNamed default a @19
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 0 @23
+                      staticType: int
+        class B @37
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @53
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                optionalNamed default final hasDefaultValue super.a @62
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10546,35 +10714,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredNamed default a @28
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-                type: int
-      class B @42
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @58
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              optionalNamed default final super.b @67
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::b
-                type: dynamic
-                superConstructorParameter: <null>
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredNamed default a @28
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                  type: int
+        class B @42
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @58
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                optionalNamed default final super.b @67
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::b
+                  type: dynamic
+                  superConstructorParameter: <null>
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10591,34 +10760,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @18
-                type: int
-      class B @31
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @47
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              optionalNamed default final super.a @56
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
-                type: dynamic
-                superConstructorParameter: <null>
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @18
+                  type: int
+        class B @31
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @47
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                optionalNamed default final super.a @56
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
+                  type: dynamic
+                  superConstructorParameter: <null>
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10635,42 +10805,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @18
-                type: int
-              requiredPositional b @28
-                type: double
-      class B @41
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @57
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              optionalPositional default o1 @67
-                type: String
-              optionalPositional default final super.a @77
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-              optionalPositional default o2 @87
-                type: String
-              optionalPositional default final super.b @97
-                type: double
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @18
+                  type: int
+                requiredPositional b @28
+                  type: double
+        class B @41
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @57
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                optionalPositional default o1 @67
+                  type: String
+                optionalPositional default final super.a @77
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                optionalPositional default o2 @87
+                  type: String
+                optionalPositional default final super.b @97
+                  type: double
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10692,48 +10863,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredNamed default a @28
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-                type: int
-              requiredNamed default b @47
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
-                type: double
-      class B @61
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @77
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredNamed default o1 @101
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o1
-                type: String
-              requiredNamed default final super.a @124
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-              requiredNamed default o2 @147
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o2
-                type: String
-              requiredNamed default final super.b @170
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::b
-                type: double
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredNamed default a @28
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                  type: int
+                requiredNamed default b @47
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
+                  type: double
+        class B @61
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @77
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredNamed default o1 @101
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o1
+                  type: String
+                requiredNamed default final super.a @124
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                requiredNamed default o2 @147
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::o2
+                  type: String
+                requiredNamed default final super.b @170
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::b
+                  type: double
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10751,39 +10923,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              optionalNamed default a @19
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @23
-                    staticType: int
-      class B @37
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @53
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredNamed default final super.a @71
-                reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                optionalNamed default a @19
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 0 @23
+                      staticType: int
+        class B @37
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @53
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredNamed default final super.a @71
+                  reference: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10800,42 +10973,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @18
-                type: int
-              requiredPositional b @28
-                type: double
-      class B @41
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @57
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional o1 @66
-                type: String
-              requiredPositional final super.a @76
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-              requiredPositional o2 @86
-                type: String
-              requiredPositional final super.b @96
-                type: double
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @18
+                  type: int
+                requiredPositional b @28
+                  type: double
+        class B @41
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @57
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional o1 @66
+                  type: String
+                requiredPositional final super.a @76
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                requiredPositional o2 @86
+                  type: String
+                requiredPositional final super.b @96
+                  type: double
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::b
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10858,46 +11032,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class A @15
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @27
-                type: int
-      class C @40
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: B
-        constructors
-          @56
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final super.a @64
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::B::@constructor::new
-      class B @77
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @93
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional final super.a @101
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class A @15
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @27
+                  type: int
+        class C @40
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: B
+          constructors
+            @56
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final super.a @64
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::B::@constructor::new
+        class B @77
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @93
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional final super.a @101
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10920,53 +11095,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @18
-                type: int
-      class C @31
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: B<String>
-        constructors
-          @55
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final super.a @63
-                type: int
-                superConstructorParameter: SuperFormalParameterMember
-                  base: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
-                  substitution: {T: String}
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::B::@constructor::new
-              substitution: {T: String}
-      class B @76
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @78
-            defaultType: dynamic
-        supertype: A
-        constructors
-          @95
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional final super.a @103
-                type: int
-                superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @18
+                  type: int
+        class C @31
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: B<String>
+          constructors
+            @55
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final super.a @63
+                  type: int
+                  superConstructorParameter: SuperFormalParameterMember
+                    base: <testLibraryFragment>::@class::B::@constructor::new::@parameter::a
+                    substitution: {T: String}
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::B::@constructor::new
+                substitution: {T: String}
+        class B @76
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @78
+              defaultType: dynamic
+          supertype: A
+          constructors
+            @95
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional final super.a @103
+                  type: int
+                  superConstructorParameter: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -10981,30 +11157,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @18
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @34
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional final super.a @42
-                type: dynamic
-                superConstructorParameter: <null>
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @18
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @34
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional final super.a @42
+                  type: dynamic
+                  superConstructorParameter: <null>
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -11021,34 +11198,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredNamed default a @28
-                reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
-                type: int
-      class B @41
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @57
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional final super.a @65
-                type: dynamic
-                superConstructorParameter: <null>
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredNamed default a @28
+                  reference: <testLibraryFragment>::@class::A::@constructor::new::@parameter::a
+                  type: int
+        class B @41
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @57
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional final super.a @65
+                  type: dynamic
+                  superConstructorParameter: <null>
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -11057,22 +11235,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @10
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional x @12
-                type: dynamic
-              requiredPositional y @19
-                type: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @10
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional x @12
+                  type: dynamic
+                requiredPositional y @19
+                  type: int
 ''');
   }
 
@@ -11089,34 +11268,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @20
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: <testLibraryFragment>::@class::D::@constructor::named
-          _ @39
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 38
-            nameEnd: 40
-      class D @52
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: C
-        constructors
-          named @70
-            reference: <testLibraryFragment>::@class::D::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::D
-            periodOffset: 69
-            nameEnd: 75
-            superConstructor: <testLibraryFragment>::@class::C::@constructor::_
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @20
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: <testLibraryFragment>::@class::D::@constructor::named
+            _ @39
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 38
+              nameEnd: 40
+        class D @52
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: C
+          constructors
+            named @70
+              reference: <testLibraryFragment>::@class::D::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::D
+              periodOffset: 69
+              nameEnd: 75
+              superConstructor: <testLibraryFragment>::@class::C::@constructor::_
 ''');
   }
 
@@ -11133,48 +11313,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        constructors
-          factory @26
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::D::@constructor::named
-              substitution: {T: U, U: T}
-          _ @51
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 50
-            nameEnd: 52
-      class D @64
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @66
-            defaultType: dynamic
-          covariant U @69
-            defaultType: dynamic
-        supertype: C<U, T>
-        constructors
-          named @94
-            reference: <testLibraryFragment>::@class::D::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::D
-            periodOffset: 93
-            nameEnd: 99
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::C::@constructor::_
-              substitution: {T: U, U: T}
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          constructors
+            factory @26
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::D::@constructor::named
+                substitution: {T: U, U: T}
+            _ @51
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 50
+              nameEnd: 52
+        class D @64
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @66
+              defaultType: dynamic
+            covariant U @69
+              defaultType: dynamic
+          supertype: C<U, T>
+          constructors
+            named @94
+              reference: <testLibraryFragment>::@class::D::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::D
+              periodOffset: 93
+              nameEnd: 99
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::C::@constructor::_
+                substitution: {T: U, U: T}
 ''');
   }
 
@@ -11192,58 +11373,59 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @33
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @35
-            defaultType: dynamic
-          covariant U @38
-            defaultType: dynamic
-        constructors
-          factory @53
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            redirectedConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::C::@constructor::named
-              substitution: {T: U, U: T}
-          _ @78
-            reference: <testLibraryFragment>::@class::B::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::B
-            periodOffset: 77
-            nameEnd: 79
-      class C @91
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @93
-            defaultType: dynamic
-          covariant U @96
-            defaultType: dynamic
-        supertype: C<U, T>
-          alias: <testLibraryFragment>::@typeAlias::A
-            typeArguments
-              U
-              T
-        constructors
-          named @121
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 120
-            nameEnd: 126
-    typeAliases
-      A @8
-        reference: <testLibraryFragment>::@typeAlias::A
-        typeParameters
-          covariant T @10
-            defaultType: dynamic
-          covariant U @13
-            defaultType: dynamic
-        aliasedType: C<T, U>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @33
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @35
+              defaultType: dynamic
+            covariant U @38
+              defaultType: dynamic
+          constructors
+            factory @53
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              redirectedConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::C::@constructor::named
+                substitution: {T: U, U: T}
+            _ @78
+              reference: <testLibraryFragment>::@class::B::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::B
+              periodOffset: 77
+              nameEnd: 79
+        class C @91
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @93
+              defaultType: dynamic
+            covariant U @96
+              defaultType: dynamic
+          supertype: C<U, T>
+            alias: <testLibraryFragment>::@typeAlias::A
+              typeArguments
+                U
+                T
+          constructors
+            named @121
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 120
+              nameEnd: 126
+      typeAliases
+        A @8
+          reference: <testLibraryFragment>::@typeAlias::A
+          typeParameters
+            covariant T @10
+              defaultType: dynamic
+            covariant U @13
+              defaultType: dynamic
+          aliasedType: C<T, U>
 ''');
   }
 
@@ -11268,27 +11450,28 @@
     package:test/foo.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @25
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @39
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::named
-          _ @58
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 57
-            nameEnd: 59
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @25
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @39
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::named
+            _ @58
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 57
+              nameEnd: 59
 ''');
   }
 
@@ -11313,34 +11496,35 @@
     package:test/foo.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @25
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @27
-            defaultType: dynamic
-          covariant U @30
-            defaultType: dynamic
-        constructors
-          factory @45
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: ConstructorMember
-              base: package:test/foo.dart::<fragment>::@class::D::@constructor::named
-              substitution: {T: U, U: T}
-          _ @70
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 69
-            nameEnd: 71
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @25
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @27
+              defaultType: dynamic
+            covariant U @30
+              defaultType: dynamic
+          constructors
+            factory @45
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: ConstructorMember
+                base: package:test/foo.dart::<fragment>::@class::D::@constructor::named
+                substitution: {T: U, U: T}
+            _ @70
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 69
+              nameEnd: 71
 ''');
   }
 
@@ -11370,32 +11554,33 @@
       reference: <testLibraryFragment>::@prefix::foo
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart as foo @21
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      foo @21
-        reference: <testLibraryFragment>::@prefix::foo
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @32
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @46
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::named
-          _ @69
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 68
-            nameEnd: 70
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart as foo @21
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        foo @21
+          reference: <testLibraryFragment>::@prefix::foo
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @32
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @46
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::named
+            _ @69
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 68
+              nameEnd: 70
 ''');
   }
 
@@ -11425,39 +11610,40 @@
       reference: <testLibraryFragment>::@prefix::foo
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart as foo @21
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      foo @21
-        reference: <testLibraryFragment>::@prefix::foo
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @32
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @34
-            defaultType: dynamic
-          covariant U @37
-            defaultType: dynamic
-        constructors
-          factory @52
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: ConstructorMember
-              base: package:test/foo.dart::<fragment>::@class::D::@constructor::named
-              substitution: {T: U, U: T}
-          _ @81
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 80
-            nameEnd: 82
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart as foo @21
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        foo @21
+          reference: <testLibraryFragment>::@prefix::foo
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @32
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @34
+              defaultType: dynamic
+            covariant U @37
+              defaultType: dynamic
+          constructors
+            factory @52
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: ConstructorMember
+                base: package:test/foo.dart::<fragment>::@class::D::@constructor::named
+                substitution: {T: U, U: T}
+            _ @81
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 80
+              nameEnd: 82
 ''');
   }
 
@@ -11470,20 +11656,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant E @8
-            defaultType: dynamic
-        constructors
-          factory @23
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant E @8
+              defaultType: dynamic
+          constructors
+            factory @23
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -11497,27 +11684,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class D @6
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class C @17
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant E @19
-            defaultType: dynamic
-        constructors
-          factory @34
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class D @6
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class C @17
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant E @19
+              defaultType: dynamic
+          constructors
+            factory @34
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -11534,32 +11722,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @20
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: <testLibraryFragment>::@class::D::@constructor::new
-          _ @33
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 32
-            nameEnd: 34
-      class D @46
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: C
-        constructors
-          @62
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            superConstructor: <testLibraryFragment>::@class::C::@constructor::_
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @20
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: <testLibraryFragment>::@class::D::@constructor::new
+            _ @33
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 32
+              nameEnd: 34
+        class D @46
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: C
+          constructors
+            @62
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              superConstructor: <testLibraryFragment>::@class::C::@constructor::_
 ''');
   }
 
@@ -11576,46 +11765,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        constructors
-          factory @26
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::D::@constructor::new
-              substitution: {T: U, U: T}
-          _ @45
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 44
-            nameEnd: 46
-      class D @58
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @60
-            defaultType: dynamic
-          covariant U @63
-            defaultType: dynamic
-        supertype: C<U, T>
-        constructors
-          @86
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::C::@constructor::_
-              substitution: {T: U, U: T}
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          constructors
+            factory @26
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::D::@constructor::new
+                substitution: {T: U, U: T}
+            _ @45
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 44
+              nameEnd: 46
+        class D @58
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @60
+              defaultType: dynamic
+            covariant U @63
+              defaultType: dynamic
+          supertype: C<U, T>
+          constructors
+            @86
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::C::@constructor::_
+                substitution: {T: U, U: T}
 ''');
   }
 
@@ -11633,52 +11823,53 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @33
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @35
-            defaultType: dynamic
-          covariant U @38
-            defaultType: dynamic
-        constructors
-          factory @53
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            redirectedConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::C::@constructor::new
-              substitution: {T: U, U: T}
-        methods
-          abstract B_ @70
-            reference: <testLibraryFragment>::@class::B::@method::B_
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: dynamic
-      class C @84
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @86
-            defaultType: dynamic
-          covariant U @89
-            defaultType: dynamic
-        supertype: B<U, T>
-        constructors
-          @112
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    typeAliases
-      A @8
-        reference: <testLibraryFragment>::@typeAlias::A
-        typeParameters
-          covariant T @10
-            defaultType: dynamic
-          covariant U @13
-            defaultType: dynamic
-        aliasedType: C<T, U>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @33
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @35
+              defaultType: dynamic
+            covariant U @38
+              defaultType: dynamic
+          constructors
+            factory @53
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              redirectedConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::C::@constructor::new
+                substitution: {T: U, U: T}
+          methods
+            abstract B_ @70
+              reference: <testLibraryFragment>::@class::B::@method::B_
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: dynamic
+        class C @84
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @86
+              defaultType: dynamic
+            covariant U @89
+              defaultType: dynamic
+          supertype: B<U, T>
+          constructors
+            @112
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      typeAliases
+        A @8
+          reference: <testLibraryFragment>::@typeAlias::A
+          typeParameters
+            covariant T @10
+              defaultType: dynamic
+            covariant U @13
+              defaultType: dynamic
+          aliasedType: C<T, U>
 ''');
   }
 
@@ -11703,27 +11894,28 @@
     package:test/foo.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @25
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @39
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::new
-          _ @52
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 51
-            nameEnd: 53
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @25
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @39
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::new
+            _ @52
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 51
+              nameEnd: 53
 ''');
   }
 
@@ -11748,34 +11940,35 @@
     package:test/foo.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @25
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @27
-            defaultType: dynamic
-          covariant U @30
-            defaultType: dynamic
-        constructors
-          factory @45
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: ConstructorMember
-              base: package:test/foo.dart::<fragment>::@class::D::@constructor::new
-              substitution: {T: U, U: T}
-          _ @64
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 63
-            nameEnd: 65
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @25
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @27
+              defaultType: dynamic
+            covariant U @30
+              defaultType: dynamic
+          constructors
+            factory @45
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: ConstructorMember
+                base: package:test/foo.dart::<fragment>::@class::D::@constructor::new
+                substitution: {T: U, U: T}
+            _ @64
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 63
+              nameEnd: 65
 ''');
   }
 
@@ -11801,27 +11994,28 @@
     package:test/foo.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @25
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @39
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: package:test/foo.dart::<fragment>::@class::B::@constructor::new
-          _ @52
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 51
-            nameEnd: 53
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @25
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @39
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: package:test/foo.dart::<fragment>::@class::B::@constructor::new
+            _ @52
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 51
+              nameEnd: 53
 ''');
   }
 
@@ -11851,32 +12045,33 @@
       reference: <testLibraryFragment>::@prefix::foo
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart as foo @21
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      foo @21
-        reference: <testLibraryFragment>::@prefix::foo
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @32
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @46
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::new
-          _ @63
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 62
-            nameEnd: 64
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart as foo @21
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        foo @21
+          reference: <testLibraryFragment>::@prefix::foo
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @32
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @46
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: package:test/foo.dart::<fragment>::@class::D::@constructor::new
+            _ @63
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 62
+              nameEnd: 64
 ''');
   }
 
@@ -11906,39 +12101,40 @@
       reference: <testLibraryFragment>::@prefix::foo
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart as foo @21
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      foo @21
-        reference: <testLibraryFragment>::@prefix::foo
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @32
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @34
-            defaultType: dynamic
-          covariant U @37
-            defaultType: dynamic
-        constructors
-          factory @52
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: ConstructorMember
-              base: package:test/foo.dart::<fragment>::@class::D::@constructor::new
-              substitution: {T: U, U: T}
-          _ @75
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 74
-            nameEnd: 76
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart as foo @21
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        foo @21
+          reference: <testLibraryFragment>::@prefix::foo
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @32
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @34
+              defaultType: dynamic
+            covariant U @37
+              defaultType: dynamic
+          constructors
+            factory @52
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: ConstructorMember
+                base: package:test/foo.dart::<fragment>::@class::D::@constructor::new
+                substitution: {T: U, U: T}
+            _ @75
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 74
+              nameEnd: 76
 ''');
   }
 
@@ -11969,32 +12165,33 @@
       reference: <testLibraryFragment>::@prefix::foo
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart as foo @21
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      foo @21
-        reference: <testLibraryFragment>::@prefix::foo
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @32
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @46
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: package:test/foo.dart::<fragment>::@class::B::@constructor::new
-          _ @63
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 62
-            nameEnd: 64
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart as foo @21
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        foo @21
+          reference: <testLibraryFragment>::@prefix::foo
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @32
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @46
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: package:test/foo.dart::<fragment>::@class::B::@constructor::new
+            _ @63
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 62
+              nameEnd: 64
 ''');
   }
 
@@ -12007,20 +12204,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant E @8
-            defaultType: dynamic
-        constructors
-          factory @23
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant E @8
+              defaultType: dynamic
+          constructors
+            factory @23
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -12038,36 +12236,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @21
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          factory @35
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
-          _ @48
-            reference: <testLibraryFragment>::@class::B::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::B
-            periodOffset: 47
-            nameEnd: 49
-      class C @61
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: B
-        constructors
-          @77
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::B::@constructor::_
-    typeAliases
-      A @8
-        reference: <testLibraryFragment>::@typeAlias::A
-        aliasedType: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @21
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            factory @35
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
+            _ @48
+              reference: <testLibraryFragment>::@class::B::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::B
+              periodOffset: 47
+              nameEnd: 49
+        class C @61
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: B
+          constructors
+            @77
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::B::@constructor::_
+      typeAliases
+        A @8
+          reference: <testLibraryFragment>::@typeAlias::A
+          aliasedType: C
 ''');
   }
 
@@ -12081,35 +12280,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const named @20
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 19
-            nameEnd: 25
-          const @37
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @43
-                period: . @47
-                constructorName: SimpleIdentifier
-                  token: named @48
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const named @20
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 19
+              nameEnd: 25
+            const @37
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @43
+                  period: . @47
+                  constructorName: SimpleIdentifier
+                    token: named @48
+                    staticElement: <testLibraryFragment>::@class::C::@constructor::named
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @53
+                    rightParenthesis: ) @54
                   staticElement: <testLibraryFragment>::@class::C::@constructor::named
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @53
-                  rightParenthesis: ) @54
-                staticElement: <testLibraryFragment>::@class::C::@constructor::named
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
 ''');
   }
 
@@ -12123,38 +12323,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const named @23
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 22
-            nameEnd: 28
-          const @40
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @46
-                period: . @50
-                constructorName: SimpleIdentifier
-                  token: named @51
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const named @23
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 22
+              nameEnd: 28
+            const @40
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @46
+                  period: . @50
+                  constructorName: SimpleIdentifier
+                    token: named @51
+                    staticElement: <testLibraryFragment>::@class::C::@constructor::named
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @56
+                    rightParenthesis: ) @57
                   staticElement: <testLibraryFragment>::@class::C::@constructor::named
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @56
-                  rightParenthesis: ) @57
-                staticElement: <testLibraryFragment>::@class::C::@constructor::named
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
 ''');
   }
 
@@ -12168,23 +12369,24 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          named @14
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 13
-            nameEnd: 19
-          @25
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            named @14
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 13
+              nameEnd: 19
+            @25
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::named
 ''');
   }
 
@@ -12198,30 +12400,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-          const named @33
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 32
-            nameEnd: 38
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @43
-                argumentList: ArgumentList
-                  leftParenthesis: ( @47
-                  rightParenthesis: ) @48
-                staticElement: <testLibraryFragment>::@class::C::@constructor::new
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+            const named @33
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 32
+              nameEnd: 38
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @43
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @47
+                    rightParenthesis: ) @48
+                  staticElement: <testLibraryFragment>::@class::C::@constructor::new
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
 ''');
   }
 
@@ -12235,33 +12438,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-          const named @36
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 35
-            nameEnd: 41
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @46
-                argumentList: ArgumentList
-                  leftParenthesis: ( @50
-                  rightParenthesis: ) @51
-                staticElement: <testLibraryFragment>::@class::C::@constructor::new
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+            const named @36
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 35
+              nameEnd: 41
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @46
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @50
+                    rightParenthesis: ) @51
+                  staticElement: <testLibraryFragment>::@class::C::@constructor::new
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
 ''');
   }
 
@@ -12275,23 +12479,24 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-          named @21
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 20
-            nameEnd: 26
-            redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+            named @21
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 20
+              nameEnd: 26
+              redirectedConstructor: <testLibraryFragment>::@class::C::@constructor::new
 ''');
   }
 
@@ -12307,36 +12512,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          named @17
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 16
-            nameEnd: 22
-            parameters
-              requiredPositional a @25
-                type: T
-      class B @37
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A<int>
-        constructors
-          @58
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::A::@constructor::named
-              substitution: {T: int}
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            named @17
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 16
+              nameEnd: 22
+              parameters
+                requiredPositional a @25
+                  type: T
+        class B @37
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A<int>
+          constructors
+            @58
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::named
+                substitution: {T: int}
 ''');
   }
 
@@ -12352,28 +12558,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          named @14
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 13
-            nameEnd: 19
-      class B @31
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @47
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::named
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            named @14
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 13
+              nameEnd: 19
+        class B @31
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @47
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::named
 ''');
   }
 
@@ -12387,26 +12594,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @17
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @33
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @17
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @33
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -12420,26 +12628,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @17
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          @33
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @17
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            @33
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -12451,26 +12660,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @17
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @17
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -12480,18 +12690,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            displayName: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              displayName: C
 ''');
   }
 
@@ -12509,82 +12720,83 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          const @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: x @35
-                  staticElement: <testLibraryFragment>::@class::C::@field::x
-                  staticType: null
-                equals: = @37
-                expression: InstanceCreationExpression
-                  keyword: const @39
-                  constructorName: ConstructorName
-                    type: NamedType
-                      name: D @45
-                      element: <testLibraryFragment>::@class::D
-                      type: D
-                    staticElement: <testLibraryFragment>::@class::D::@constructor::new
-                  argumentList: ArgumentList
-                    leftParenthesis: ( @46
-                    rightParenthesis: ) @47
-                  staticType: D
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-      class D @58
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @70
-            reference: <testLibraryFragment>::@class::D::@field::x
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: dynamic
-        constructors
-          const @81
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: x @87
-                  staticElement: <testLibraryFragment>::@class::D::@field::x
-                  staticType: null
-                equals: = @89
-                expression: InstanceCreationExpression
-                  keyword: const @91
-                  constructorName: ConstructorName
-                    type: NamedType
-                      name: C @97
-                      element: <testLibraryFragment>::@class::C
-                      type: C
-                    staticElement: <testLibraryFragment>::@class::C::@constructor::new
-                  argumentList: ArgumentList
-                    leftParenthesis: ( @98
-                    rightParenthesis: ) @99
-                  staticType: C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::D::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            const @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: x @35
+                    staticElement: <testLibraryFragment>::@class::C::@field::x
+                    staticType: null
+                  equals: = @37
+                  expression: InstanceCreationExpression
+                    keyword: const @39
+                    constructorName: ConstructorName
+                      type: NamedType
+                        name: D @45
+                        element: <testLibraryFragment>::@class::D
+                        type: D
+                      staticElement: <testLibraryFragment>::@class::D::@constructor::new
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @46
+                      rightParenthesis: ) @47
+                    staticType: D
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+        class D @58
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @70
+              reference: <testLibraryFragment>::@class::D::@field::x
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: dynamic
+          constructors
+            const @81
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: x @87
+                    staticElement: <testLibraryFragment>::@class::D::@field::x
+                    staticType: null
+                  equals: = @89
+                  expression: InstanceCreationExpression
+                    keyword: const @91
+                    constructorName: ConstructorName
+                      type: NamedType
+                        name: C @97
+                        element: <testLibraryFragment>::@class::C
+                        type: C
+                      staticElement: <testLibraryFragment>::@class::C::@constructor::new
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @98
+                      rightParenthesis: ) @99
+                    staticType: C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::D::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: dynamic
 ''');
   }
 
@@ -12602,44 +12814,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @23
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-      class D @50
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @62
-            reference: <testLibraryFragment>::@class::D::@field::x
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: dynamic
-        constructors
-          @67
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::D::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @23
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+        class D @50
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @62
+              reference: <testLibraryFragment>::@class::D::@field::x
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: dynamic
+          constructors
+            @67
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::D::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: dynamic
 ''');
   }
 
@@ -12653,20 +12866,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          foo @14
-            reference: <testLibraryFragment>::@class::C::@constructor::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            displayName: C.foo
-            periodOffset: 13
-            nameEnd: 17
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            foo @14
+              reference: <testLibraryFragment>::@class::C::@constructor::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              displayName: C.foo
+              periodOffset: 13
+              nameEnd: 17
 ''');
   }
 
@@ -12680,18 +12894,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            displayName: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              displayName: C
 ''');
   }
 
@@ -12705,20 +12920,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @14
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            displayName: C
-            periodOffset: 13
-            nameEnd: 17
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @14
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              displayName: C
+              periodOffset: 13
+              nameEnd: 17
 ''');
   }
 
@@ -12731,18 +12947,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @22
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @22
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -12787,50 +13004,51 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @36
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * bbb\n */
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @79
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// bbb\n/// ccc
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @122
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * ccc\n */
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @173
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// ddd
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @207
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * aaa\n */
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @36
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * bbb\n */
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @79
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// bbb\n/// ccc
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @122
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * ccc\n */
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @173
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// ddd
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @207
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * aaa\n */
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -12843,18 +13061,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @37
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// first\n/// second\n/// third
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @37
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// first\n/// second\n/// third
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -12870,32 +13089,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @47
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs referring to [D] and [E]\n */
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @59
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @70
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @47
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs referring to [D] and [E]\n */
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @59
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @70
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -12904,18 +13124,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @25
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @25
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -12929,18 +13150,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @66
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @66
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -12979,125 +13201,126 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class BeforeMeta @48
-        reference: <testLibraryFragment>::@class::BeforeMeta
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1\n/// Comment 2
-        metadata
-          Annotation
-            atSign: @ @28
-            name: SimpleIdentifier
-              token: Annotation @29
-              staticElement: <testLibraryFragment>::@class::Annotation
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @39
-              rightParenthesis: ) @40
-            element: <testLibraryFragment>::@class::Annotation::@constructor::new
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::BeforeMeta::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::BeforeMeta
-      class BeforeMetaNamed @117
-        reference: <testLibraryFragment>::@class::BeforeMetaNamed
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1\n/// Comment 2
-        metadata
-          Annotation
-            atSign: @ @91
-            name: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: Annotation @92
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class BeforeMeta @48
+          reference: <testLibraryFragment>::@class::BeforeMeta
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1\n/// Comment 2
+          metadata
+            Annotation
+              atSign: @ @28
+              name: SimpleIdentifier
+                token: Annotation @29
                 staticElement: <testLibraryFragment>::@class::Annotation
                 staticType: null
-              period: . @102
-              identifier: SimpleIdentifier
-                token: named @103
+              arguments: ArgumentList
+                leftParenthesis: ( @39
+                rightParenthesis: ) @40
+              element: <testLibraryFragment>::@class::Annotation::@constructor::new
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::BeforeMeta::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::BeforeMeta
+        class BeforeMetaNamed @117
+          reference: <testLibraryFragment>::@class::BeforeMetaNamed
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1\n/// Comment 2
+          metadata
+            Annotation
+              atSign: @ @91
+              name: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: Annotation @92
+                  staticElement: <testLibraryFragment>::@class::Annotation
+                  staticType: null
+                period: . @102
+                identifier: SimpleIdentifier
+                  token: named @103
+                  staticElement: <testLibraryFragment>::@class::Annotation::@constructor::named
+                  staticType: null
                 staticElement: <testLibraryFragment>::@class::Annotation::@constructor::named
                 staticType: null
-              staticElement: <testLibraryFragment>::@class::Annotation::@constructor::named
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @108
-              rightParenthesis: ) @109
-            element: <testLibraryFragment>::@class::Annotation::@constructor::named
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::BeforeMetaNamed::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::BeforeMetaNamed
-      class AfterMeta @185
-        reference: <testLibraryFragment>::@class::AfterMeta
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1\n/// Comment 2
-        metadata
-          Annotation
-            atSign: @ @137
-            name: SimpleIdentifier
-              token: Annotation @138
-              staticElement: <testLibraryFragment>::@class::Annotation
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @148
-              rightParenthesis: ) @149
-            element: <testLibraryFragment>::@class::Annotation::@constructor::new
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::AfterMeta::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::AfterMeta
-      class AroundMeta @247
-        reference: <testLibraryFragment>::@class::AroundMeta
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 2
-        metadata
-          Annotation
-            atSign: @ @213
-            name: SimpleIdentifier
-              token: Annotation @214
-              staticElement: <testLibraryFragment>::@class::Annotation
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @224
-              rightParenthesis: ) @225
-            element: <testLibraryFragment>::@class::Annotation::@constructor::new
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::AroundMeta::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::AroundMeta
-      class DocBeforeMetaNotDocAfter @319
-        reference: <testLibraryFragment>::@class::DocBeforeMetaNotDocAfter
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Doc comment.
-        metadata
-          Annotation
-            atSign: @ @279
-            name: SimpleIdentifier
-              token: Annotation @280
-              staticElement: <testLibraryFragment>::@class::Annotation
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @290
-              rightParenthesis: ) @291
-            element: <testLibraryFragment>::@class::Annotation::@constructor::new
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::DocBeforeMetaNotDocAfter::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::DocBeforeMetaNotDocAfter
-      class Annotation @354
-        reference: <testLibraryFragment>::@class::Annotation
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @375
-            reference: <testLibraryFragment>::@class::Annotation::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Annotation
-          const named @408
-            reference: <testLibraryFragment>::@class::Annotation::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::Annotation
-            periodOffset: 407
-            nameEnd: 413
+              arguments: ArgumentList
+                leftParenthesis: ( @108
+                rightParenthesis: ) @109
+              element: <testLibraryFragment>::@class::Annotation::@constructor::named
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::BeforeMetaNamed::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::BeforeMetaNamed
+        class AfterMeta @185
+          reference: <testLibraryFragment>::@class::AfterMeta
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1\n/// Comment 2
+          metadata
+            Annotation
+              atSign: @ @137
+              name: SimpleIdentifier
+                token: Annotation @138
+                staticElement: <testLibraryFragment>::@class::Annotation
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @148
+                rightParenthesis: ) @149
+              element: <testLibraryFragment>::@class::Annotation::@constructor::new
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::AfterMeta::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::AfterMeta
+        class AroundMeta @247
+          reference: <testLibraryFragment>::@class::AroundMeta
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 2
+          metadata
+            Annotation
+              atSign: @ @213
+              name: SimpleIdentifier
+                token: Annotation @214
+                staticElement: <testLibraryFragment>::@class::Annotation
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @224
+                rightParenthesis: ) @225
+              element: <testLibraryFragment>::@class::Annotation::@constructor::new
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::AroundMeta::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::AroundMeta
+        class DocBeforeMetaNotDocAfter @319
+          reference: <testLibraryFragment>::@class::DocBeforeMetaNotDocAfter
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Doc comment.
+          metadata
+            Annotation
+              atSign: @ @279
+              name: SimpleIdentifier
+                token: Annotation @280
+                staticElement: <testLibraryFragment>::@class::Annotation
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @290
+                rightParenthesis: ) @291
+              element: <testLibraryFragment>::@class::Annotation::@constructor::new
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::DocBeforeMetaNotDocAfter::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::DocBeforeMetaNotDocAfter
+        class Annotation @354
+          reference: <testLibraryFragment>::@class::Annotation
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @375
+              reference: <testLibraryFragment>::@class::Annotation::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Annotation
+            const named @408
+              reference: <testLibraryFragment>::@class::Annotation::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::Annotation
+              periodOffset: 407
+              nameEnd: 413
 ''');
   }
 
@@ -13110,34 +13333,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class C @15
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          abstract i @34
-            reference: <testLibraryFragment>::@class::C::@field::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic abstract get i @-1
-            reference: <testLibraryFragment>::@class::C::@getter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic abstract set i= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _i @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class C @15
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            abstract i @34
+              reference: <testLibraryFragment>::@class::C::@field::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic abstract get i @-1
+              reference: <testLibraryFragment>::@class::C::@getter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic abstract set i= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _i @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -13146,32 +13370,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const i @27
-            reference: <testLibraryFragment>::@class::C::@field::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @31
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get i @-1
-            reference: <testLibraryFragment>::@class::C::@getter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const i @27
+              reference: <testLibraryFragment>::@class::C::@field::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @31
+                  staticType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get i @-1
+              reference: <testLibraryFragment>::@class::C::@getter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -13181,32 +13406,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static late const i @32
-            reference: <testLibraryFragment>::@class::C::@field::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @36
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get i @-1
-            reference: <testLibraryFragment>::@class::C::@getter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static late const i @32
+              reference: <testLibraryFragment>::@class::C::@field::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @36
+                  staticType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get i @-1
+              reference: <testLibraryFragment>::@class::C::@getter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -13218,34 +13444,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          covariant x @26
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional covariant _x @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            covariant x @26
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional covariant _x @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -13260,35 +13487,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @38
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /**\n   * Docs\n   */
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @38
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /**\n   * Docs\n   */
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -13303,54 +13531,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          foo @16
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            id: field_1
-            getter: getter_1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::C::@getter::foo::@def::0
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-          get foo @35
-            reference: <testLibraryFragment>::@class::C::@getter::foo::@def::1
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-            id: getter_1
-            variable: field_1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            foo @16
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              id: field_1
+              getter: getter_1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::C::@getter::foo::@def::0
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+            get foo @35
+              reference: <testLibraryFragment>::@class::C::@getter::foo::@def::1
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+              id: getter_1
+              variable: field_1
 ''');
   }
 
@@ -13365,57 +13594,58 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          foo @16
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            id: field_1
-            setter: setter_1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::C::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::foo::@def::0
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-          set foo= @31
-            reference: <testLibraryFragment>::@class::C::@setter::foo::@def::1
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _ @39
-                type: int
-            returnType: void
-            id: setter_1
-            variable: field_1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            foo @16
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              id: field_1
+              setter: setter_1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::C::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::foo::@def::0
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+            set foo= @31
+              reference: <testLibraryFragment>::@class::C::@setter::foo::@def::1
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _ @39
+                  type: int
+              returnType: void
+              id: setter_1
+              variable: field_1
 ''');
   }
 
@@ -13428,34 +13658,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class C @15
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          external i @34
-            reference: <testLibraryFragment>::@class::C::@field::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get i @-1
-            reference: <testLibraryFragment>::@class::C::@getter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set i= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _i @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class C @15
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            external i @34
+              reference: <testLibraryFragment>::@class::C::@field::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get i @-1
+              reference: <testLibraryFragment>::@class::C::@getter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set i= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _i @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -13469,32 +13700,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 42 @22
-                staticType: int
-        constructors
-          const @34
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                IntegerLiteral
+                  literal: 42 @22
+                  staticType: int
+          constructors
+            const @34
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -13511,82 +13743,83 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @34
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        fields
-          final f @46
-            reference: <testLibraryFragment>::@class::B::@field::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: A<int Function(double)>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                keyword: const @50
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: A @56
-                    typeArguments: TypeArgumentList
-                      leftBracket: < @57
-                      arguments
-                        GenericFunctionType
-                          returnType: NamedType
-                            name: int @58
-                            element: dart:core::<fragment>::@class::int
-                            type: int
-                          functionKeyword: Function @62
-                          parameters: FormalParameterList
-                            leftParenthesis: ( @70
-                            parameter: SimpleFormalParameter
-                              type: NamedType
-                                name: double @71
-                                element: dart:core::<fragment>::@class::double
-                                type: double
-                              name: a @78
-                              declaredElement: a@78
-                                type: double
-                            rightParenthesis: ) @79
-                          declaredElement: GenericFunctionTypeElement
-                            parameters
-                              a
-                                kind: required positional
-                                type: double
-                            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @34
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          fields
+            final f @46
+              reference: <testLibraryFragment>::@class::B::@field::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: A<int Function(double)>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  keyword: const @50
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: A @56
+                      typeArguments: TypeArgumentList
+                        leftBracket: < @57
+                        arguments
+                          GenericFunctionType
+                            returnType: NamedType
+                              name: int @58
+                              element: dart:core::<fragment>::@class::int
+                              type: int
+                            functionKeyword: Function @62
+                            parameters: FormalParameterList
+                              leftParenthesis: ( @70
+                              parameter: SimpleFormalParameter
+                                type: NamedType
+                                  name: double @71
+                                  element: dart:core::<fragment>::@class::double
+                                  type: double
+                                name: a @78
+                                declaredElement: a@78
+                                  type: double
+                              rightParenthesis: ) @79
+                            declaredElement: GenericFunctionTypeElement
+                              parameters
+                                a
+                                  kind: required positional
+                                  type: double
+                              returnType: int
+                              type: int Function(double)
                             type: int Function(double)
-                          type: int Function(double)
-                      rightBracket: > @80
-                    element: <testLibraryFragment>::@class::A
-                    type: A<int Function(double)>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@class::A::@constructor::new
-                    substitution: {T: int Function(double)}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @81
-                  rightParenthesis: ) @82
-                staticType: A<int Function(double)>
-        constructors
-          const @93
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::B::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: A<int Function(double)>
+                        rightBracket: > @80
+                      element: <testLibraryFragment>::@class::A
+                      type: A<int Function(double)>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@class::A::@constructor::new
+                      substitution: {T: int Function(double)}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @81
+                    rightParenthesis: ) @82
+                  staticType: A<int Function(double)>
+          constructors
+            const @93
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::B::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: A<int Function(double)>
 ''');
   }
 
@@ -13599,28 +13832,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -13636,45 +13870,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final foo @22
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-        constructors
-          @29
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional final this.foo @36
-                type: int
-                field: <testLibraryFragment>::@class::A::@field::foo
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          set foo= @48
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional newValue @56
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final foo @22
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+          constructors
+            @29
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional final this.foo @36
+                  type: int
+                  field: <testLibraryFragment>::@class::A::@field::foo
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            set foo= @48
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional newValue @56
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
 ''');
   }
 
@@ -13684,57 +13919,58 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        fields
-          v @24
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          @27
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.v @34
-                type: int
-                field: <testLibraryFragment>::@class::C::@field::v
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        accessors
-          synthetic get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _v @-1
-                type: int
-            returnType: void
-      abstract class D @55
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic v @-1
-            reference: <testLibraryFragment>::@class::D::@field::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          abstract get v @67
-            reference: <testLibraryFragment>::@class::D::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          fields
+            v @24
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            @27
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.v @34
+                  type: int
+                  field: <testLibraryFragment>::@class::C::@field::v
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          accessors
+            synthetic get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: int
+              returnType: void
+        abstract class D @55
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic v @-1
+              reference: <testLibraryFragment>::@class::D::@field::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            abstract get v @67
+              reference: <testLibraryFragment>::@class::D::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: int
 ''');
   }
 
@@ -13743,34 +13979,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -13779,34 +14016,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          late x @19
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            late x @19
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -13815,35 +14053,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          v @14
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: num
-            shouldUseTypeForInitializerInference: true
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: num
-          synthetic set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _v @-1
-                type: num
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            v @14
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: num
+              shouldUseTypeForInitializerInference: true
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: num
+            synthetic set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: num
+              returnType: void
 ''');
   }
 
@@ -13852,35 +14091,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          v @14
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _v @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            v @14
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -13890,53 +14130,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        fields
-          v @24
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        accessors
-          synthetic get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _v @-1
-                type: int
-            returnType: void
-      abstract class D @44
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic v @-1
-            reference: <testLibraryFragment>::@class::D::@field::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          abstract get v @56
-            reference: <testLibraryFragment>::@class::D::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          fields
+            v @24
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          accessors
+            synthetic get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: int
+              returnType: void
+        abstract class D @44
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic v @-1
+              reference: <testLibraryFragment>::@class::D::@field::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            abstract get v @56
+              reference: <testLibraryFragment>::@class::D::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: int
 ''');
   }
 
@@ -13955,72 +14196,73 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class A @28
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic f @-1
-            reference: <testLibraryFragment>::@class::A::@field::f
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: List<int>
-        constructors
-          const @40
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          abstract get f @61
-            reference: <testLibraryFragment>::@class::A::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: List<int>
-      class B @72
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        fields
-          final f @107
-            reference: <testLibraryFragment>::@class::B::@field::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: List<int>
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @111
-                elements
-                  SimpleIdentifier
-                    token: a @112
-                    staticElement: <testLibraryFragment>::@getter::a
-                    staticType: int
-                rightBracket: ] @113
-                staticType: List<int>
-        constructors
-          const @94
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::B::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: List<int>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class A @28
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic f @-1
+              reference: <testLibraryFragment>::@class::A::@field::f
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: List<int>
+          constructors
+            const @40
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            abstract get f @61
+              reference: <testLibraryFragment>::@class::A::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: List<int>
+        class B @72
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          fields
+            final f @107
+              reference: <testLibraryFragment>::@class::B::@field::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: List<int>
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @111
+                  elements
+                    SimpleIdentifier
+                      token: a @112
+                      staticElement: <testLibraryFragment>::@getter::a
+                      staticType: int
+                  rightBracket: ] @113
+                  staticType: List<int>
+          constructors
+            const @94
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::B::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: List<int>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -14029,35 +14271,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static v @21
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic static set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _v @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static v @21
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic static set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -14075,51 +14318,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class A @15
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: double
-        constructors
-          const @27
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          abstract get foo @45
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: double
-      class B @58
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        fields
-          final foo @93
-            reference: <testLibraryFragment>::@class::B::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: double
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 2 @99
-                staticType: double
-        constructors
-          const @80
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::B::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: double
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class A @15
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: double
+          constructors
+            const @27
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            abstract get foo @45
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: double
+        class B @58
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          fields
+            final foo @93
+              reference: <testLibraryFragment>::@class::B::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: double
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 2 @99
+                  staticType: double
+          constructors
+            const @80
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::B::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: double
 ''');
   }
 
@@ -14139,18 +14383,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
   fieldNameNonPromotabilityInfo
     _foo
       conflictingGetters
@@ -14174,18 +14419,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14209,18 +14455,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @21
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @38
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @21
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @38
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>
+      enclosingElement3: <testLibraryFragment>
   fieldNameNonPromotabilityInfo
     _foo
       conflictingGetters
@@ -14244,18 +14494,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14275,18 +14526,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
   fieldNameNonPromotabilityInfo
     _foo
       conflictingFields
@@ -14310,18 +14562,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14341,18 +14594,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14369,18 +14623,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @22
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @39
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @22
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @39
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14405,18 +14660,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
   fieldNameNonPromotabilityInfo
     _foo
       conflictingNsmClasses
@@ -14452,39 +14708,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
-      class B @90
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @107
-            reference: <testLibraryFragment>::@class::B::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: int?
-            shouldUseTypeForInitializerInference: true
-    mixins
-      mixin M @54
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-        fields
-          final promotable _foo @71
-            reference: <testLibraryFragment>::@mixin::M::@field::_foo
-            enclosingElement: <testLibraryFragment>::@mixin::M
-            type: int?
-            shouldUseTypeForInitializerInference: true
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
+        class B @90
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @107
+              reference: <testLibraryFragment>::@class::B::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: int?
+              shouldUseTypeForInitializerInference: true
+      mixins
+        mixin M @54
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+          fields
+            final promotable _foo @71
+              reference: <testLibraryFragment>::@mixin::M::@field::_foo
+              enclosingElement: <testLibraryFragment>::@mixin::M
+              type: int?
+              shouldUseTypeForInitializerInference: true
 ''');
   }
 
@@ -14515,27 +14772,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
-      class B @54
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @71
-            reference: <testLibraryFragment>::@class::B::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: int?
-            shouldUseTypeForInitializerInference: true
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
+        class B @54
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @71
+              reference: <testLibraryFragment>::@class::B::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: int?
+              shouldUseTypeForInitializerInference: true
 ''');
   }
 
@@ -14562,18 +14820,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
   fieldNameNonPromotabilityInfo
     _foo
       conflictingNsmClasses
@@ -14605,27 +14864,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
-      class B @54
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @71
-            reference: <testLibraryFragment>::@class::B::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: int?
-            shouldUseTypeForInitializerInference: true
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
+        class B @54
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @71
+              reference: <testLibraryFragment>::@class::B::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: int?
+              shouldUseTypeForInitializerInference: true
   fieldNameNonPromotabilityInfo
     _foo
       conflictingNsmClasses
@@ -14654,18 +14914,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
   fieldNameNonPromotabilityInfo
     _foo
       conflictingNsmClasses
@@ -14706,22 +14967,23 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class A @24
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @41
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class A @24
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @41
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14746,18 +15008,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
   fieldNameNonPromotabilityInfo
     _foo
       conflictingNsmClasses
@@ -14791,30 +15054,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
-    mixins
-      mixin M @54
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-        fields
-          final _foo @71
-            reference: <testLibraryFragment>::@mixin::M::@field::_foo
-            enclosingElement: <testLibraryFragment>::@mixin::M
-            type: int?
-            shouldUseTypeForInitializerInference: true
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
+      mixins
+        mixin M @54
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+          fields
+            final _foo @71
+              reference: <testLibraryFragment>::@mixin::M::@field::_foo
+              enclosingElement: <testLibraryFragment>::@mixin::M
+              type: int?
+              shouldUseTypeForInitializerInference: true
   fieldNameNonPromotabilityInfo
     _foo
       conflictingNsmClasses
@@ -14844,18 +15108,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14870,18 +15135,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          _foo @17
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            _foo @17
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
   fieldNameNonPromotabilityInfo
     _foo
       conflictingFields
@@ -14900,18 +15166,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          field @17
-            reference: <testLibraryFragment>::@class::A::@field::field
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            field @17
+              reference: <testLibraryFragment>::@class::A::@field::field
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
 ''');
   }
 
@@ -14929,23 +15196,24 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final promotable _foo @23
-            reference: <testLibraryFragment>::@class::A::@field::_foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int?
-          final bar @37
-            reference: <testLibraryFragment>::@class::A::@field::bar
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: false
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final promotable _foo @23
+              reference: <testLibraryFragment>::@class::A::@field::_foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int?
+            final bar @37
+              reference: <testLibraryFragment>::@class::A::@field::bar
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: false
 ''');
   }
 
@@ -14957,32 +15225,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const x @25
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @29
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const x @25
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @29
+                  staticType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15000,32 +15269,33 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @23
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final b @35
-            reference: <testLibraryFragment>::@class::C::@field::b
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: double
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get b @-1
-            reference: <testLibraryFragment>::@class::C::@getter::b
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: double
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @23
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final b @35
+              reference: <testLibraryFragment>::@class::C::@field::b
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: double
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get b @-1
+              reference: <testLibraryFragment>::@class::C::@getter::b
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: double
 ''');
   }
 
@@ -15042,34 +15312,38 @@
   name: lib
   nameOffset: 8
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    parts
-      part_0
-    classes
-      class C @34
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final b @46
-            reference: <testLibraryFragment>::@class::C::@field::b
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: double
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get b @-1
-            reference: <testLibraryFragment>::@class::C::@getter::b
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: double
+  definingUnit: <testLibraryFragment>
   parts
     part_0
-      uri: package:test/a.dart
-      reference: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      parts
+        part_0
+          uri: package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          unit: <testLibrary>::@fragment::package:test/a.dart
+      classes
+        class C @34
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final b @46
+              reference: <testLibraryFragment>::@class::C::@field::b
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: double
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get b @-1
+              reference: <testLibraryFragment>::@class::C::@getter::b
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: double
+    <testLibrary>::@fragment::package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
       topLevelVariables
@@ -15094,28 +15368,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15127,28 +15402,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static final x @25
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static final x @25
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15157,34 +15433,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static i @21
-            reference: <testLibraryFragment>::@class::C::@field::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get i @-1
-            reference: <testLibraryFragment>::@class::C::@getter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic static set i= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _i @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static i @21
+              reference: <testLibraryFragment>::@class::C::@field::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get i @-1
+              reference: <testLibraryFragment>::@class::C::@getter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic static set i= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _i @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15198,28 +15475,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static final f @25
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          const @40
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static final f @25
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            const @40
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15228,28 +15506,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static final x @23
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static final x @23
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15258,34 +15537,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static late i @26
-            reference: <testLibraryFragment>::@class::C::@field::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get i @-1
-            reference: <testLibraryFragment>::@class::C::@getter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic static set i= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _i @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static late i @26
+              reference: <testLibraryFragment>::@class::C::@field::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get i @-1
+              reference: <testLibraryFragment>::@class::C::@getter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic static set i= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _i @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15299,35 +15579,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          a @16
-            reference: <testLibraryFragment>::@class::C::@field::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get a @-1
-            reference: <testLibraryFragment>::@class::C::@getter::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set a= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _a @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            a @16
+              reference: <testLibraryFragment>::@class::C::@field::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get a @-1
+              reference: <testLibraryFragment>::@class::C::@getter::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set a= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _a @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15341,35 +15622,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          foo @16
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::C::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            foo @16
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::C::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15387,47 +15669,48 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class A @15
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          abstract get foo @29
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-      class B @43
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        fields
-          final foo @65
-            reference: <testLibraryFragment>::@class::B::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: int
-            shouldUseTypeForInitializerInference: true
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::B::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class A @15
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            abstract get foo @29
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+        class B @43
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          fields
+            final foo @65
+              reference: <testLibraryFragment>::@class::B::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: int
+              shouldUseTypeForInitializerInference: true
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::B::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: int
 ''');
   }
 
@@ -15441,35 +15724,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          a @16
-            reference: <testLibraryFragment>::@class::C::@field::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: Never
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get a @-1
-            reference: <testLibraryFragment>::@class::C::@getter::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: Never
-          synthetic set a= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _a @-1
-                type: Never
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            a @16
+              reference: <testLibraryFragment>::@class::C::@field::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: Never
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get a @-1
+              reference: <testLibraryFragment>::@class::C::@getter::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: Never
+            synthetic set a= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _a @-1
+                  type: Never
+              returnType: void
 ''');
   }
 
@@ -15478,35 +15762,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15515,35 +15800,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @14
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @14
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15552,49 +15838,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          i @14
-            reference: <testLibraryFragment>::@class::C::@field::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-          j @21
-            reference: <testLibraryFragment>::@class::C::@field::j
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get i @-1
-            reference: <testLibraryFragment>::@class::C::@getter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set i= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::i
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _i @-1
-                type: int
-            returnType: void
-          synthetic get j @-1
-            reference: <testLibraryFragment>::@class::C::@getter::j
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set j= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::j
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _j @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            i @14
+              reference: <testLibraryFragment>::@class::C::@field::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+            j @21
+              reference: <testLibraryFragment>::@class::C::@field::j
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get i @-1
+              reference: <testLibraryFragment>::@class::C::@getter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set i= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::i
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _i @-1
+                  type: int
+              returnType: void
+            synthetic get j @-1
+              reference: <testLibraryFragment>::@class::C::@getter::j
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set j= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::j
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _j @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15607,34 +15894,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          late foo @21
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::C::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            late foo @21
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::C::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15647,34 +15935,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          late final foo @27
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::C::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            late final foo @27
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::C::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15687,28 +15976,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          late final foo @27
-            reference: <testLibraryFragment>::@class::C::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::C::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            late final foo @27
+              reference: <testLibraryFragment>::@class::C::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::C::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15725,49 +16015,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @16
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-      class B @37
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        fields
-          late f @62
-            reference: <testLibraryFragment>::@class::B::@field::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::B::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: int
-          synthetic set f= @-1
-            reference: <testLibraryFragment>::@class::B::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional _f @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @16
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+        class B @37
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          fields
+            late f @62
+              reference: <testLibraryFragment>::@class::B::@field::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::B::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: int
+            synthetic set f= @-1
+              reference: <testLibraryFragment>::@class::B::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional _f @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15784,54 +16075,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @20
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-      class B @39
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        fields
-          late f @64
-            reference: <testLibraryFragment>::@class::B::@field::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::B::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: int
-          synthetic set f= @-1
-            reference: <testLibraryFragment>::@class::B::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional _f @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @20
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+        class B @39
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          fields
+            late f @64
+              reference: <testLibraryFragment>::@class::B::@field::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::B::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: int
+            synthetic set f= @-1
+              reference: <testLibraryFragment>::@class::B::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional _f @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -15840,17 +16132,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      final class C @12
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        final class C @12
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -15859,27 +16152,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class C @15
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          abstract get x @27
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class C @15
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            abstract get x @27
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15888,27 +16182,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          external get x @27
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            external get x @27
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -15917,27 +16212,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          get x @14
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            get x @14
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -15952,27 +16248,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @20 invokesSuperSelf
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @20 invokesSuperSelf
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
 ''');
   }
 
@@ -15987,27 +16284,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @20 invokesSuperSelf
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @20 invokesSuperSelf
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
 ''');
   }
 
@@ -16022,27 +16320,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          get foo @20
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            get foo @20
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
 ''');
   }
 
@@ -16055,27 +16354,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          external get x @20
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            external get x @20
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -16084,27 +16384,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic static x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          static get x @25
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic static x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            static get x @25
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -16114,35 +16415,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-          synthetic y @-1
-            reference: <testLibraryFragment>::@class::C::@field::y
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          get x @18
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          get y @33
-            reference: <testLibraryFragment>::@class::C::@getter::y
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+            synthetic y @-1
+              reference: <testLibraryFragment>::@class::C::@field::y
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            get x @18
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            get y @33
+              reference: <testLibraryFragment>::@class::C::@getter::y
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -16156,34 +16458,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          get x @20
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          set x= @39
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @45
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            get x @20
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            set x= @39
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @45
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -16197,34 +16500,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @21
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @27
-                type: int
-            returnType: void
-          get x @47
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @21
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @27
+                  type: int
+              returnType: void
+            get x @47
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -16233,17 +16537,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      interface class C @16
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        interface class C @16
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -16256,34 +16561,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          D
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @33
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @44
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            D
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @33
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @44
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -16298,39 +16604,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-      class C @45
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-      class D @56
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          A
-          C
-    extensionTypes
-      B @26
-        reference: <testLibraryFragment>::@extensionType::B
-        enclosingElement: <testLibraryFragment>
-        representation: <testLibraryFragment>::@extensionType::B::@field::it
-        primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
-        typeErasure: int
-        fields
-          final it @32
-            reference: <testLibraryFragment>::@extensionType::B::@field::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            type: int
-        accessors
-          synthetic get it @-1
-            reference: <testLibraryFragment>::@extensionType::B::@getter::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+        class C @45
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+        class D @56
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            A
+            C
+      extensionTypes
+        B @26
+          reference: <testLibraryFragment>::@extensionType::B
+          enclosingElement: <testLibraryFragment>
+          representation: <testLibraryFragment>::@extensionType::B::@field::it
+          primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
+          typeErasure: int
+          fields
+            final it @32
+              reference: <testLibraryFragment>::@extensionType::B::@field::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              type: int
+          accessors
+            synthetic get it @-1
+              reference: <testLibraryFragment>::@extensionType::B::@getter::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              returnType: int
 ''');
   }
 
@@ -16343,34 +16650,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @17
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @28
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          A
-          B
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @17
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @28
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            A
+            B
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -16380,34 +16688,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          X
-          Z
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class X @36
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
-      class Z @47
-        reference: <testLibraryFragment>::@class::Z
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::Z::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Z
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            X
+            Z
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class X @36
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+        class Z @47
+          reference: <testLibraryFragment>::@class::Z
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::Z::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Z
 ''');
   }
 
@@ -16416,22 +16725,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class C @15
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          abstract f @19
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class C @15
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            abstract f @19
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -16449,26 +16759,27 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @27
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @40 async
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: Future<dynamic>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @27
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @40 async
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: Future<dynamic>
 ''');
   }
 
@@ -16486,26 +16797,27 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @27
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @40 async*
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: Stream<dynamic>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @27
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @40 async*
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: Stream<dynamic>
 ''');
   }
 
@@ -16520,23 +16832,24 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @34
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /**\n   * Docs\n   */
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @34
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /**\n   * Docs\n   */
+              returnType: dynamic
 ''');
   }
 
@@ -16545,22 +16858,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          external f @19
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            external f @19
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -16592,42 +16906,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        methods
-          f @25
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @27
-                type: int
-            returnType: void
-      abstract class D @54
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        methods
-          abstract f @63
-            reference: <testLibraryFragment>::@class::D::@method::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional value @69
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          methods
+            f @25
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @27
+                  type: int
+              returnType: void
+        abstract class D @54
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          methods
+            abstract f @63
+              reference: <testLibraryFragment>::@class::D::@method::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional value @69
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -16643,36 +16958,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        methods
-          f @22
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-      abstract class D @52
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        methods
-          abstract f @62
-            reference: <testLibraryFragment>::@class::D::@method::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          methods
+            f @22
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+        abstract class D @52
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          methods
+            abstract f @62
+              reference: <testLibraryFragment>::@class::D::@method::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: int
 ''');
   }
 
@@ -16687,22 +17003,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @17 invokesSuperSelf
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @17 invokesSuperSelf
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
 ''');
   }
 
@@ -16716,31 +17033,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @17
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        methods
-          A @38
-            reference: <testLibraryFragment>::@class::B::@method::A
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @17
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          methods
+            A @38
+              reference: <testLibraryFragment>::@class::B::@method::A
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: void
 ''');
   }
 
@@ -16753,22 +17071,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          external m @16
-            reference: <testLibraryFragment>::@class::C::@method::m
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            external m @16
+              reference: <testLibraryFragment>::@class::C::@method::m
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -16777,27 +17096,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @10
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional x @12
-                type: dynamic
-              requiredPositional y @15
-                type: dynamic
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @10
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional x @12
+                  type: dynamic
+                requiredPositional y @15
+                  type: dynamic
+              returnType: dynamic
 ''');
   }
 
@@ -16806,22 +17126,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          static f @17
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            static f @17
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -16836,22 +17157,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @26 sync*
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: Iterable<int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @26 sync*
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: Iterable<int>
 ''');
   }
 
@@ -16860,30 +17182,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @12
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            typeParameters
-              covariant T @14
-                defaultType: dynamic
-              covariant U @17
-                defaultType: dynamic
-            parameters
-              requiredPositional u @22
-                type: U
-            returnType: T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @12
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              typeParameters
+                covariant T @14
+                  defaultType: dynamic
+                covariant U @17
+                  defaultType: dynamic
+              parameters
+                requiredPositional u @22
+                  type: U
+              returnType: T
 ''');
   }
 
@@ -16896,39 +17219,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @20
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            typeParameters
-              covariant V @22
-                defaultType: dynamic
-              covariant W @25
-                defaultType: dynamic
-            parameters
-              requiredPositional t @30
-                type: T
-              requiredPositional u @35
-                type: U
-              requiredPositional w @40
-                type: W
-            returnType: V
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @20
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              typeParameters
+                covariant V @22
+                  defaultType: dynamic
+                covariant W @25
+                  defaultType: dynamic
+              parameters
+                requiredPositional t @30
+                  type: T
+                requiredPositional u @35
+                  type: U
+                requiredPositional w @40
+                  type: W
+              returnType: V
 ''');
   }
 
@@ -16937,33 +17261,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @15
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            typeParameters
-              covariant T @17
-                defaultType: dynamic
-              covariant U @20
-                defaultType: dynamic
-            parameters
-              requiredPositional x @25
-                type: T Function(U)
-                parameters
-                  requiredPositional u @29
-                    type: U
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @15
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              typeParameters
+                covariant T @17
+                  defaultType: dynamic
+                covariant U @20
+                  defaultType: dynamic
+              parameters
+                requiredPositional x @25
+                  type: T Function(U)
+                  parameters
+                    requiredPositional u @29
+                      type: U
+              returnType: void
 ''');
   }
 
@@ -16972,26 +17297,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @10
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          g @17
-            reference: <testLibraryFragment>::@class::C::@method::g
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @10
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            g @17
+              reference: <testLibraryFragment>::@class::C::@method::g
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -17000,17 +17326,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      mixin class C @12
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        mixin class C @12
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17025,51 +17352,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        mixins
-          E
-          F
-          G
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @40
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @51
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
-      class F @62
-        reference: <testLibraryFragment>::@class::F
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::F::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::F
-      class G @73
-        reference: <testLibraryFragment>::@class::G
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::G::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::G
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          mixins
+            E
+            F
+            G
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @40
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @51
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
+        class F @62
+          reference: <testLibraryFragment>::@class::F
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::F::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::F
+        class G @73
+          reference: <testLibraryFragment>::@class::G
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::G::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::G
 ''');
   }
 
@@ -17084,45 +17412,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class D @56
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          A
-          C
-    extensionTypes
-      B @26
-        reference: <testLibraryFragment>::@extensionType::B
-        enclosingElement: <testLibraryFragment>
-        representation: <testLibraryFragment>::@extensionType::B::@field::it
-        primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
-        typeErasure: int
-        fields
-          final it @32
-            reference: <testLibraryFragment>::@extensionType::B::@field::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            type: int
-        accessors
-          synthetic get it @-1
-            reference: <testLibraryFragment>::@extensionType::B::@getter::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            returnType: int
-    mixins
-      mixin A @6
-        reference: <testLibraryFragment>::@mixin::A
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-      mixin C @45
-        reference: <testLibraryFragment>::@mixin::C
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class D @56
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            A
+            C
+      extensionTypes
+        B @26
+          reference: <testLibraryFragment>::@extensionType::B
+          enclosingElement: <testLibraryFragment>
+          representation: <testLibraryFragment>::@extensionType::B::@field::it
+          primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
+          typeErasure: int
+          fields
+            final it @32
+              reference: <testLibraryFragment>::@extensionType::B::@field::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              type: int
+          accessors
+            synthetic get it @-1
+              reference: <testLibraryFragment>::@extensionType::B::@getter::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              returnType: int
+      mixins
+        mixin A @6
+          reference: <testLibraryFragment>::@mixin::A
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+        mixin C @45
+          reference: <testLibraryFragment>::@mixin::C
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -17136,49 +17465,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class Z @6
-        reference: <testLibraryFragment>::@class::Z
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        mixins
-          B<int>
-          C<double>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::Z::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Z
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-      class A @50
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @61
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant B1 @63
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @76
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant C1 @78
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class Z @6
+          reference: <testLibraryFragment>::@class::Z
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          mixins
+            B<int>
+            C<double>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::Z::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Z
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+        class A @50
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @61
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant B1 @63
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @76
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant C1 @78
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17190,29 +17520,30 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @20
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M<dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    mixins
-      mixin M @6
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @20
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M<dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      mixins
+        mixin M @6
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -17225,35 +17556,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @30
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @32
-            defaultType: dynamic
-        supertype: Object
-        mixins
-          M1
-          M2
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    mixins
-      mixin M1 @6
-        reference: <testLibraryFragment>::@mixin::M1
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-      mixin M2 @18
-        reference: <testLibraryFragment>::@mixin::M2
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @30
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @32
+              defaultType: dynamic
+          supertype: Object
+          mixins
+            M1
+            M2
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      mixins
+        mixin M1 @6
+          reference: <testLibraryFragment>::@mixin::M1
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+        mixin M2 @18
+          reference: <testLibraryFragment>::@mixin::M2
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -17263,35 +17595,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          X
-          Z
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class X @45
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
-      class Z @56
-        reference: <testLibraryFragment>::@class::Z
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::Z::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Z
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            X
+            Z
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class X @45
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+        class Z @56
+          reference: <testLibraryFragment>::@class::Z
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::Z::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Z
 ''');
   }
 
@@ -17303,25 +17636,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: dynamic
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    typeAliases
-      notSimplyBounded A @32
-        reference: <testLibraryFragment>::@typeAlias::A
-        aliasedType: (C<dynamic>, int)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: dynamic
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      typeAliases
+        notSimplyBounded A @32
+          reference: <testLibraryFragment>::@typeAlias::A
+          aliasedType: (C<dynamic>, int)
 ''');
   }
 
@@ -17335,30 +17669,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: dynamic
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    typeAliases
-      functionTypeAliasBased notSimplyBounded F @32
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: dynamic Function(C<dynamic>)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional value @36
-              type: C<dynamic>
-          returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: dynamic
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      typeAliases
+        functionTypeAliasBased notSimplyBounded F @32
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: dynamic Function(C<dynamic>)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional value @36
+                type: C<dynamic>
+            returnType: dynamic
 ''');
   }
 
@@ -17371,21 +17706,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: C<dynamic>
-            defaultType: C<dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: C<dynamic>
+              defaultType: C<dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17397,32 +17733,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: D<dynamic>
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      notSimplyBounded class D @30
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @32
-            bound: C<dynamic>
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: D<dynamic>
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        notSimplyBounded class D @30
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @32
+              bound: C<dynamic>
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -17434,28 +17771,29 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      notSimplyBounded C @8
-        reference: <testLibraryFragment>::@typeAlias::C
-        typeParameters
-          unrelated T @10
-            bound: dynamic
-            defaultType: dynamic
-        aliasedType: void Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: void
-      notSimplyBounded D @50
-        reference: <testLibraryFragment>::@typeAlias::D
-        typeParameters
-          unrelated T @52
-            bound: dynamic
-            defaultType: dynamic
-        aliasedType: void Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        notSimplyBounded C @8
+          reference: <testLibraryFragment>::@typeAlias::C
+          typeParameters
+            unrelated T @10
+              bound: dynamic
+              defaultType: dynamic
+          aliasedType: void Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: void
+        notSimplyBounded D @50
+          reference: <testLibraryFragment>::@typeAlias::D
+          typeParameters
+            unrelated T @52
+              bound: dynamic
+              defaultType: dynamic
+          aliasedType: void Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: void
 ''');
   }
 
@@ -17467,24 +17805,25 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      notSimplyBounded C @8
-        reference: <testLibraryFragment>::@typeAlias::C
-        typeParameters
-          covariant T @10
-            bound: dynamic
-            defaultType: dynamic
-        aliasedType: List<T>
-      notSimplyBounded D @42
-        reference: <testLibraryFragment>::@typeAlias::D
-        typeParameters
-          covariant T @44
-            bound: dynamic
-            defaultType: dynamic
-        aliasedType: List<T>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        notSimplyBounded C @8
+          reference: <testLibraryFragment>::@typeAlias::C
+          typeParameters
+            covariant T @10
+              bound: dynamic
+              defaultType: dynamic
+          aliasedType: List<T>
+        notSimplyBounded D @42
+          reference: <testLibraryFragment>::@typeAlias::D
+          typeParameters
+            covariant T @44
+              bound: dynamic
+              defaultType: dynamic
+          aliasedType: List<T>
 ''');
   }
 
@@ -17496,32 +17835,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: D<dynamic>
-            defaultType: D<dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      notSimplyBounded class D @30
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @32
-            bound: D<dynamic>
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: D<dynamic>
+              defaultType: D<dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        notSimplyBounded class D @30
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @32
+              bound: D<dynamic>
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -17533,31 +17873,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: D<T>
-            defaultType: D<dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @33
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @35
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: D<T>
+              defaultType: D<dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @33
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @35
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -17571,32 +17912,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: D<dynamic>
-            defaultType: D<dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      notSimplyBounded class D @39
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @41
-            bound: D<T>
-            defaultType: D<dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: D<dynamic>
+              defaultType: D<dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        notSimplyBounded class D @39
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @41
+              bound: D<T>
+              defaultType: D<dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -17607,21 +17949,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: void Function(T)
-            defaultType: void Function(Never)
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: void Function(T)
+              defaultType: void Function(Never)
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17632,21 +17975,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: T Function()
-            defaultType: dynamic Function()
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: T Function()
+              defaultType: dynamic Function()
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17657,21 +18001,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: void Function()
-            defaultType: void Function()
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: void Function()
+              defaultType: void Function()
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17687,38 +18032,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: dynamic
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    typeAliases
-      functionTypeAliasBased notSimplyBounded F @32
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: dynamic Function(dynamic)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional value @36
-              type: dynamic
-          returnType: dynamic
-      functionTypeAliasBased notSimplyBounded G @52
-        reference: <testLibraryFragment>::@typeAlias::G
-        aliasedType: dynamic Function(dynamic)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional value @56
-              type: dynamic
-          returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: dynamic
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      typeAliases
+        functionTypeAliasBased notSimplyBounded F @32
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: dynamic Function(dynamic)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional value @36
+                type: dynamic
+            returnType: dynamic
+        functionTypeAliasBased notSimplyBounded G @52
+          reference: <testLibraryFragment>::@typeAlias::G
+          aliasedType: dynamic Function(dynamic)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional value @56
+                type: dynamic
+            returnType: dynamic
 ''');
   }
 
@@ -17729,21 +18075,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: C<dynamic>
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: C<dynamic>
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17756,17 +18103,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17778,31 +18126,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: D<dynamic>
-            defaultType: D<dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @30
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @32
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: D<dynamic>
+              defaultType: D<dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @30
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @32
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -17815,20 +18164,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -17838,25 +18188,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          + @20
-            reference: <testLibraryFragment>::@class::C::@method::+
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional other @24
-                type: C
-            returnType: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            + @20
+              reference: <testLibraryFragment>::@class::C::@method::+
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional other @24
+                  type: C
+              returnType: C
 ''');
   }
 
@@ -17869,25 +18220,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          == @25
-            reference: <testLibraryFragment>::@class::C::@method::==
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional other @35
-                type: Object
-            returnType: bool
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            == @25
+              reference: <testLibraryFragment>::@class::C::@method::==
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional other @35
+                  type: Object
+              returnType: bool
 ''');
   }
 
@@ -17897,25 +18249,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          external + @29
-            reference: <testLibraryFragment>::@class::C::@method::+
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional other @33
-                type: C
-            returnType: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            external + @29
+              reference: <testLibraryFragment>::@class::C::@method::+
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional other @33
+                  type: C
+              returnType: C
 ''');
   }
 
@@ -17928,25 +18281,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          >= @25
-            reference: <testLibraryFragment>::@class::C::@method::>=
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional other @30
-                type: C
-            returnType: bool
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            >= @25
+              reference: <testLibraryFragment>::@class::C::@method::>=
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional other @30
+                  type: C
+              returnType: bool
 ''');
   }
 
@@ -17956,25 +18310,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          [] @23
-            reference: <testLibraryFragment>::@class::C::@method::[]
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional i @30
-                type: int
-            returnType: bool
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            [] @23
+              reference: <testLibraryFragment>::@class::C::@method::[]
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional i @30
+                  type: int
+              returnType: bool
 ''');
   }
 
@@ -17987,27 +18342,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          []= @25
-            reference: <testLibraryFragment>::@class::C::@method::[]=
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional i @33
-                type: int
-              requiredPositional v @41
-                type: bool
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            []= @25
+              reference: <testLibraryFragment>::@class::C::@method::[]=
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional i @33
+                  type: int
+                requiredPositional v @41
+                  type: bool
+              returnType: void
 ''');
   }
 
@@ -18020,25 +18376,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          <= @25
-            reference: <testLibraryFragment>::@class::C::@method::<=
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional other @30
-                type: C
-            returnType: bool
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            <= @25
+              reference: <testLibraryFragment>::@class::C::@method::<=
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional other @30
+                  type: C
+              returnType: bool
 ''');
   }
 
@@ -18050,34 +18407,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static c @13
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: C
-    accessors
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: C
-      synthetic static set c= @-1
-        reference: <testLibraryFragment>::@setter::c
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _c @-1
-            type: C
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static c @13
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: C
+      accessors
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: C
+        synthetic static set c= @-1
+          reference: <testLibraryFragment>::@setter::c
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _c @-1
+              type: C
+          returnType: void
 ''');
   }
 
@@ -18089,34 +18447,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static c @14
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: C?
-    accessors
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: C?
-      synthetic static set c= @-1
-        reference: <testLibraryFragment>::@setter::c
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _c @-1
-            type: C?
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static c @14
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: C?
+      accessors
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: C?
+        synthetic static set c= @-1
+          reference: <testLibraryFragment>::@setter::c
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _c @-1
+              type: C?
+          returnType: void
 ''');
   }
 
@@ -18125,17 +18484,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract sealed class C @13
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract sealed class C @13
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -18146,26 +18506,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      base class A @11
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      abstract sealed base class B @29
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        base class A @11
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        abstract sealed base class B @29
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -18176,26 +18537,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      base class A @11
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      abstract sealed base class B @29
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        base class A @11
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        abstract sealed base class B @29
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
 ''');
   }
 
@@ -18206,26 +18568,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      final class A @12
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      abstract sealed base class B @30
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        final class A @12
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        abstract sealed base class B @30
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
 ''');
   }
 
@@ -18236,26 +18599,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      final class A @12
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      abstract sealed final class B @30
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        final class A @12
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        abstract sealed final class B @30
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -18267,34 +18631,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      interface class B @32
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      abstract sealed final class C @50
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: B
-        mixins
-          A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::B::@constructor::new
-    mixins
-      base mixin A @11
-        reference: <testLibraryFragment>::@mixin::A
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        interface class B @32
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        abstract sealed final class C @50
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: B
+          mixins
+            A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::B::@constructor::new
+      mixins
+        base mixin A @11
+          reference: <testLibraryFragment>::@mixin::A
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -18305,26 +18670,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      interface class A @16
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      abstract sealed interface class B @34
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        interface class A @16
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        abstract sealed interface class B @34
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -18335,26 +18701,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      interface class A @16
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      abstract sealed class B @34
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        interface class A @16
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        abstract sealed class B @34
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
 ''');
   }
 
@@ -18364,30 +18731,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class C @15
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          abstract set x= @28
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @34
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class C @15
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            abstract set x= @28
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @34
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18397,30 +18765,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          abstract set x= @19
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional covariant value @35
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            abstract set x= @19
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional covariant value @35
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18430,30 +18799,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          external set x= @28
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @34
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            external set x= @28
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @34
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18462,30 +18832,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @19
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @21
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @19
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @21
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -18494,30 +18865,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @14
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @20
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @14
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @20
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18538,93 +18910,94 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          t @16
-            reference: <testLibraryFragment>::@class::A::@field::t
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get t @-1
-            reference: <testLibraryFragment>::@class::A::@getter::t
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-          synthetic set t= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::t
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _t @-1
-                type: int
-            returnType: void
-      class B @27
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        fields
-          t @50
-            reference: <testLibraryFragment>::@class::B::@field::t
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: double
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-        accessors
-          synthetic get t @-1
-            reference: <testLibraryFragment>::@class::B::@getter::t
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: double
-          synthetic set t= @-1
-            reference: <testLibraryFragment>::@class::B::@setter::t
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional _t @-1
-                type: double
-            returnType: void
-      class C @61
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        interfaces
-          B
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-      class D @96
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: C
-        fields
-          synthetic t @-1
-            reference: <testLibraryFragment>::@class::D::@field::t
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            superConstructor: <testLibraryFragment>::@class::C::@constructor::new
-        accessors
-          set t= @121
-            reference: <testLibraryFragment>::@class::D::@setter::t
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional p @123
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            t @16
+              reference: <testLibraryFragment>::@class::A::@field::t
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get t @-1
+              reference: <testLibraryFragment>::@class::A::@getter::t
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+            synthetic set t= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::t
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _t @-1
+                  type: int
+              returnType: void
+        class B @27
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          fields
+            t @50
+              reference: <testLibraryFragment>::@class::B::@field::t
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: double
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+          accessors
+            synthetic get t @-1
+              reference: <testLibraryFragment>::@class::B::@getter::t
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: double
+            synthetic set t= @-1
+              reference: <testLibraryFragment>::@class::B::@setter::t
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional _t @-1
+                  type: double
+              returnType: void
+        class C @61
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          interfaces
+            B
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+        class D @96
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: C
+          fields
+            synthetic t @-1
+              reference: <testLibraryFragment>::@class::D::@field::t
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              superConstructor: <testLibraryFragment>::@class::C::@constructor::new
+          accessors
+            set t= @121
+              reference: <testLibraryFragment>::@class::D::@setter::t
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional p @123
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -18635,52 +19008,53 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        fields
-          synthetic f @-1
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        accessors
-          set f= @29
-            reference: <testLibraryFragment>::@class::C::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @31
-                type: int
-            returnType: void
-      abstract class D @58
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic f @-1
-            reference: <testLibraryFragment>::@class::D::@field::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          abstract set f= @71
-            reference: <testLibraryFragment>::@class::D::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional value @77
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          fields
+            synthetic f @-1
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          accessors
+            set f= @29
+              reference: <testLibraryFragment>::@class::C::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @31
+                  type: int
+              returnType: void
+        abstract class D @58
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic f @-1
+              reference: <testLibraryFragment>::@class::D::@field::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            abstract set f= @71
+              reference: <testLibraryFragment>::@class::D::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional value @77
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18693,30 +19067,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic static f @-1
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          static set f= @23
-            reference: <testLibraryFragment>::@class::C::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @29
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic static f @-1
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            static set f= @23
+              reference: <testLibraryFragment>::@class::C::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @29
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18725,31 +19100,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @19
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalNamed default a @22
-                reference: <testLibraryFragment>::@class::C::@setter::x::@parameter::a
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @19
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalNamed default a @22
+                  reference: <testLibraryFragment>::@class::C::@setter::x::@parameter::a
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -18758,27 +19134,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @19
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @19
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: void
 ''');
   }
 
@@ -18787,30 +19164,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @19
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default a @22
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @19
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default a @22
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -18819,32 +19197,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @19
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional a @21
-                type: dynamic
-              requiredPositional b @24
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @19
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional a @21
+                  type: dynamic
+                requiredPositional b @24
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -18859,30 +19238,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          set foo= @16
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @24
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            set foo= @16
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @24
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18897,30 +19277,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          set foo= @16 invokesSuperSelf
-            reference: <testLibraryFragment>::@class::A::@setter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _ @24
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            set foo= @16 invokesSuperSelf
+              reference: <testLibraryFragment>::@class::A::@setter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _ @24
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18933,30 +19314,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          external set x= @21
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @27
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            external set x= @21
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @27
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -18966,30 +19348,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic static x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          static set x= @26
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @32
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic static x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            static set x= @26
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @32
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -19003,41 +19386,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-          synthetic y @-1
-            reference: <testLibraryFragment>::@class::C::@field::y
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @21
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @27
-                type: int
-            returnType: void
-          set y= @43
-            reference: <testLibraryFragment>::@class::C::@setter::y
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @45
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+            synthetic y @-1
+              reference: <testLibraryFragment>::@class::C::@field::y
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @21
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @27
+                  type: int
+              returnType: void
+            set y= @43
+              reference: <testLibraryFragment>::@class::C::@setter::y
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @45
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -19050,17 +19434,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-      class B @17
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+        class B @17
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
 ''');
   }
 
@@ -19071,17 +19456,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -19094,30 +19480,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @34
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-    extensionTypes
-      A @15
-        reference: <testLibraryFragment>::@extensionType::A
-        enclosingElement: <testLibraryFragment>
-        representation: <testLibraryFragment>::@extensionType::A::@field::it
-        primaryConstructor: <testLibraryFragment>::@extensionType::A::@constructor::new
-        typeErasure: int
-        fields
-          final it @21
-            reference: <testLibraryFragment>::@extensionType::A::@field::it
-            enclosingElement: <testLibraryFragment>::@extensionType::A
-            type: int
-        accessors
-          synthetic get it @-1
-            reference: <testLibraryFragment>::@extensionType::A::@getter::it
-            enclosingElement: <testLibraryFragment>::@extensionType::A
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @34
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+      extensionTypes
+        A @15
+          reference: <testLibraryFragment>::@extensionType::A
+          enclosingElement: <testLibraryFragment>
+          representation: <testLibraryFragment>::@extensionType::A::@field::it
+          primaryConstructor: <testLibraryFragment>::@extensionType::A::@constructor::new
+          typeErasure: int
+          fields
+            final it @21
+              reference: <testLibraryFragment>::@extensionType::A::@field::it
+              enclosingElement: <testLibraryFragment>::@extensionType::A
+              type: int
+          accessors
+            synthetic get it @-1
+              reference: <testLibraryFragment>::@extensionType::A::@getter::it
+              enclosingElement: <testLibraryFragment>::@extensionType::A
+              returnType: int
 ''');
   }
 
@@ -19129,33 +19516,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D<int, double>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::D::@constructor::new
-              substitution: {T1: int, T2: double}
-      class D @40
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @42
-            defaultType: dynamic
-          covariant T2 @46
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D<int, double>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::D::@constructor::new
+                substitution: {T1: int, T2: double}
+        class D @40
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @42
+              defaultType: dynamic
+            covariant T2 @46
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -19168,20 +19556,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-      class B @20
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A<dynamic>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+        class B @20
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A<dynamic>
 ''');
   }
 
@@ -19193,31 +19582,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @20
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A<B>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::A::@constructor::new
-              substitution: {T: B}
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @20
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A<B>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::new
+                substitution: {T: B}
 ''');
   }
 
@@ -19228,20 +19618,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -19250,17 +19641,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19269,22 +19661,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19296,31 +19689,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: Object
-            defaultType: Object
-          covariant U @26
-            bound: D
-            defaultType: D
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @48
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: Object
+              defaultType: Object
+            covariant U @26
+              bound: D
+              defaultType: D
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @48
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -19329,21 +19723,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: dynamic
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: dynamic
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19354,26 +19749,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: dynamic
-            defaultType: dynamic
-          covariant U @21
-            defaultType: dynamic
-          covariant V @24
-            bound: dynamic
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: dynamic
+              defaultType: dynamic
+            covariant U @21
+              defaultType: dynamic
+            covariant V @24
+              bound: dynamic
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19384,21 +19780,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: void Function(A<dynamic>)
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: void Function(A<dynamic>)
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -19409,21 +19806,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: void Function<U extends C<dynamic>>()
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: void Function<U extends C<dynamic>>()
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19436,39 +19834,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @40
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @42
-            bound: void Function(X)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  X
-            defaultType: void Function(Never)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  Never
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    typeAliases
-      F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          contravariant X @10
-            defaultType: dynamic
-        aliasedType: void Function(X)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional @-1
-              type: X
-          returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @40
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @42
+              bound: void Function(X)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    X
+              defaultType: void Function(Never)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    Never
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      typeAliases
+        F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            contravariant X @10
+              defaultType: dynamic
+          aliasedType: void Function(X)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional @-1
+                type: X
+            returnType: void
 ''');
   }
 
@@ -19481,36 +19880,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @36
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @38
-            bound: X Function()
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  X
-            defaultType: dynamic Function()
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    typeAliases
-      F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          covariant X @10
-            defaultType: dynamic
-        aliasedType: X Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: X
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @36
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @38
+              bound: X Function()
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    X
+              defaultType: dynamic Function()
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      typeAliases
+        F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            covariant X @10
+              defaultType: dynamic
+          aliasedType: X Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: X
 ''');
   }
 
@@ -19523,39 +19923,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @37
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @39
-            bound: X Function(X)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  X
-            defaultType: dynamic Function(dynamic)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    typeAliases
-      F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          invariant X @10
-            defaultType: dynamic
-        aliasedType: X Function(X)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional @-1
-              type: X
-          returnType: X
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @37
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @39
+              bound: X Function(X)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    X
+              defaultType: dynamic Function(dynamic)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      typeAliases
+        F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            invariant X @10
+              defaultType: dynamic
+          aliasedType: X Function(X)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional @-1
+                type: X
+            returnType: X
 ''');
   }
 
@@ -19568,39 +19969,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @37
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @39
-            bound: X Function(X)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  X
-            defaultType: dynamic Function(dynamic)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    typeAliases
-      F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          invariant X @10
-            defaultType: dynamic
-        aliasedType: X Function(X)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional @-1
-              type: X
-          returnType: X
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @37
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @39
+              bound: X Function(X)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    X
+              defaultType: dynamic Function(dynamic)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      typeAliases
+        F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            invariant X @10
+              defaultType: dynamic
+          aliasedType: X Function(X)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional @-1
+                type: X
+            returnType: X
 ''');
   }
 
@@ -19611,21 +20013,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @8
-            bound: X Function(X)
-            defaultType: dynamic Function(Never)
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @8
+              bound: X Function(X)
+              defaultType: dynamic Function(Never)
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -19636,21 +20039,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @8
-            bound: void Function(X)
-            defaultType: void Function(Never)
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @8
+              bound: void Function(X)
+              defaultType: void Function(Never)
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -19661,21 +20065,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @8
-            bound: X Function()
-            defaultType: dynamic Function()
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @8
+              bound: X Function()
+              defaultType: dynamic Function()
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -19686,21 +20091,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @8
-            bound: X Function()
-            defaultType: dynamic Function()
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @8
+              bound: X Function()
+              defaultType: dynamic Function()
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
 ''');
   }
 
@@ -19713,34 +20119,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class B @46
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @48
-            bound: List<void Function(X)>
-              alias: <testLibraryFragment>::@typeAlias::A
-                typeArguments
-                  X
-            defaultType: List<void Function(Never)>
-              alias: <testLibraryFragment>::@typeAlias::A
-                typeArguments
-                  Never
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-    typeAliases
-      A @8
-        reference: <testLibraryFragment>::@typeAlias::A
-        typeParameters
-          contravariant X @10
-            defaultType: dynamic
-        aliasedType: List<void Function(X)>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class B @46
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @48
+              bound: List<void Function(X)>
+                alias: <testLibraryFragment>::@typeAlias::A
+                  typeArguments
+                    X
+              defaultType: List<void Function(Never)>
+                alias: <testLibraryFragment>::@typeAlias::A
+                  typeArguments
+                    Never
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+      typeAliases
+        A @8
+          reference: <testLibraryFragment>::@typeAlias::A
+          typeParameters
+            contravariant X @10
+              defaultType: dynamic
+          aliasedType: List<void Function(X)>
 ''');
   }
 
@@ -19753,34 +20160,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class B @35
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @37
-            bound: Map<X, int>
-              alias: <testLibraryFragment>::@typeAlias::A
-                typeArguments
-                  X
-            defaultType: Map<dynamic, int>
-              alias: <testLibraryFragment>::@typeAlias::A
-                typeArguments
-                  dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-    typeAliases
-      A @8
-        reference: <testLibraryFragment>::@typeAlias::A
-        typeParameters
-          covariant X @10
-            defaultType: dynamic
-        aliasedType: Map<X, int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class B @35
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @37
+              bound: Map<X, int>
+                alias: <testLibraryFragment>::@typeAlias::A
+                  typeArguments
+                    X
+              defaultType: Map<dynamic, int>
+                alias: <testLibraryFragment>::@typeAlias::A
+                  typeArguments
+                    dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+      typeAliases
+        A @8
+          reference: <testLibraryFragment>::@typeAlias::A
+          typeParameters
+            covariant X @10
+              defaultType: dynamic
+          aliasedType: Map<X, int>
 ''');
   }
 
@@ -19789,23 +20197,24 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: List<U>
-            defaultType: List<dynamic>
-          covariant U @27
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: List<U>
+              defaultType: List<dynamic>
+            covariant U @27
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19814,23 +20223,24 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: U
-            defaultType: dynamic
-          covariant U @21
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: U
+              defaultType: dynamic
+            covariant U @21
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19839,20 +20249,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          contravariant T @11
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            contravariant T @11
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19861,20 +20272,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @12
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @12
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19883,20 +20295,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          invariant T @14
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            invariant T @14
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19905,24 +20318,25 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          invariant T @14
-            defaultType: dynamic
-          contravariant U @20
-            defaultType: dynamic
-          covariant V @27
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            invariant T @14
+              defaultType: dynamic
+            contravariant U @20
+              defaultType: dynamic
+            covariant V @27
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -19937,58 +20351,59 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        mixins
-          E
-          F
-          G
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @32
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @43
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
-      class F @54
-        reference: <testLibraryFragment>::@class::F
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::F::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::F
-      class G @65
-        reference: <testLibraryFragment>::@class::G
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::G::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::G
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          mixins
+            E
+            F
+            G
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @32
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @43
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
+        class F @54
+          reference: <testLibraryFragment>::@class::F
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::F::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::F
+        class G @65
+          reference: <testLibraryFragment>::@class::G
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::G::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::G
 ''');
   }
 
@@ -20001,42 +20416,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class alias C @15
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @35
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @46
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class alias C @15
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @35
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @46
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -20048,33 +20464,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      base class alias C @11
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-    mixins
-      mixin M @36
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        base class alias C @11
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+      mixins
+        mixin M @36
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -20087,42 +20504,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      mixin class M @23
-        reference: <testLibraryFragment>::@class::M
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M
-      class alias X @34
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        mixins
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        mixin class M @23
+          reference: <testLibraryFragment>::@class::M
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M
+        class alias X @34
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          mixins
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -20140,86 +20558,87 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional i @18
-                type: int
-      mixin class M1 @36
-        reference: <testLibraryFragment>::@class::M1
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M1
-      mixin class M2 @54
-        reference: <testLibraryFragment>::@class::M2
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M2::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M2
-      class alias C2 @67
-        reference: <testLibraryFragment>::@class::C2
-        enclosingElement: <testLibraryFragment>
-        supertype: C1
-        mixins
-          M2
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C2::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C2
-            parameters
-              requiredPositional i @-1
-                type: int
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: i @-1
-                      staticElement: <testLibraryFragment>::@class::C2::@constructor::new::@parameter::i
-                      staticType: int
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::C1::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::C1::@constructor::new
-      class alias C1 @90
-        reference: <testLibraryFragment>::@class::C1
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        mixins
-          M1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C1
-            parameters
-              requiredPositional i @-1
-                type: int
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: i @-1
-                      staticElement: <testLibraryFragment>::@class::C1::@constructor::new::@parameter::i
-                      staticType: int
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional i @18
+                  type: int
+        mixin class M1 @36
+          reference: <testLibraryFragment>::@class::M1
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M1
+        mixin class M2 @54
+          reference: <testLibraryFragment>::@class::M2
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M2::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M2
+        class alias C2 @67
+          reference: <testLibraryFragment>::@class::C2
+          enclosingElement: <testLibraryFragment>
+          supertype: C1
+          mixins
+            M2
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C2::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C2
+              parameters
+                requiredPositional i @-1
+                  type: int
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: i @-1
+                        staticElement: <testLibraryFragment>::@class::C2::@constructor::new::@parameter::i
+                        staticType: int
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::C1::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::C1::@constructor::new
+        class alias C1 @90
+          reference: <testLibraryFragment>::@class::C1
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          mixins
+            M1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C1
+              parameters
+                requiredPositional i @-1
+                  type: int
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: i @-1
+                        staticElement: <testLibraryFragment>::@class::C1::@constructor::new::@parameter::i
+                        staticType: int
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -20239,175 +20658,176 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          c1 @14
-            reference: <testLibraryFragment>::@class::A::@constructor::c1
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 13
-            nameEnd: 16
-            parameters
-              requiredPositional a @21
-                type: int
-          c2 @29
-            reference: <testLibraryFragment>::@class::A::@constructor::c2
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 28
-            nameEnd: 31
-            parameters
-              requiredPositional a @36
-                type: int
-              optionalPositional default b @45
-                type: int?
-              optionalPositional default c @52
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @56
-                    staticType: int
-          c3 @65
-            reference: <testLibraryFragment>::@class::A::@constructor::c3
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 64
-            nameEnd: 67
-            parameters
-              requiredPositional a @72
-                type: int
-              optionalNamed default b @81
-                reference: <testLibraryFragment>::@class::A::@constructor::c3::@parameter::b
-                type: int?
-              optionalNamed default c @88
-                reference: <testLibraryFragment>::@class::A::@constructor::c3::@parameter::c
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @92
-                    staticType: int
-      class alias C @118
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        mixins
-          M
-        constructors
-          synthetic c1 @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::c1
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional a @-1
-                type: int
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: c1 @-1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            c1 @14
+              reference: <testLibraryFragment>::@class::A::@constructor::c1
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 13
+              nameEnd: 16
+              parameters
+                requiredPositional a @21
+                  type: int
+            c2 @29
+              reference: <testLibraryFragment>::@class::A::@constructor::c2
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 28
+              nameEnd: 31
+              parameters
+                requiredPositional a @36
+                  type: int
+                optionalPositional default b @45
+                  type: int?
+                optionalPositional default c @52
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 0 @56
+                      staticType: int
+            c3 @65
+              reference: <testLibraryFragment>::@class::A::@constructor::c3
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 64
+              nameEnd: 67
+              parameters
+                requiredPositional a @72
+                  type: int
+                optionalNamed default b @81
+                  reference: <testLibraryFragment>::@class::A::@constructor::c3::@parameter::b
+                  type: int?
+                optionalNamed default c @88
+                  reference: <testLibraryFragment>::@class::A::@constructor::c3::@parameter::c
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 0 @92
+                      staticType: int
+        class alias C @118
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          mixins
+            M
+          constructors
+            synthetic c1 @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::c1
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional a @-1
+                  type: int
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: c1 @-1
+                    staticElement: <testLibraryFragment>::@class::A::@constructor::c1
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: a @-1
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::c1::@parameter::a
+                        staticType: int
+                    rightParenthesis: ) @0
                   staticElement: <testLibraryFragment>::@class::A::@constructor::c1
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: a @-1
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::c1::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::c1
+            synthetic c2 @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::c2
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional a @-1
+                  type: int
+                optionalPositional default b @-1
+                  type: int?
+                optionalPositional default c @-1
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 0 @56
                       staticType: int
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::c1
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::c1
-          synthetic c2 @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::c2
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional a @-1
-                type: int
-              optionalPositional default b @-1
-                type: int?
-              optionalPositional default c @-1
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @56
-                    staticType: int
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: c2 @-1
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: c2 @-1
+                    staticElement: <testLibraryFragment>::@class::A::@constructor::c2
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: a @-1
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::c2::@parameter::a
+                        staticType: int
+                      SimpleIdentifier
+                        token: b @-1
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::c2::@parameter::b
+                        staticType: int?
+                      SimpleIdentifier
+                        token: c @-1
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::c2::@parameter::c
+                        staticType: int
+                    rightParenthesis: ) @0
                   staticElement: <testLibraryFragment>::@class::A::@constructor::c2
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: a @-1
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::c2::@parameter::a
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::c2
+            synthetic c3 @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::c3
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional a @-1
+                  type: int
+                optionalNamed default b @-1
+                  reference: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::b
+                  type: int?
+                optionalNamed default c @-1
+                  reference: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::c
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 0 @92
                       staticType: int
-                    SimpleIdentifier
-                      token: b @-1
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::c2::@parameter::b
-                      staticType: int?
-                    SimpleIdentifier
-                      token: c @-1
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::c2::@parameter::c
-                      staticType: int
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::c2
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::c2
-          synthetic c3 @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::c3
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional a @-1
-                type: int
-              optionalNamed default b @-1
-                reference: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::b
-                type: int?
-              optionalNamed default c @-1
-                reference: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::c
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 0 @92
-                    staticType: int
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: c3 @-1
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: c3 @-1
+                    staticElement: <testLibraryFragment>::@class::A::@constructor::c3
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: a @-1
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::a
+                        staticType: int
+                      SimpleIdentifier
+                        token: b @-1
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::b
+                        staticType: int?
+                      SimpleIdentifier
+                        token: c @-1
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::c
+                        staticType: int
+                    rightParenthesis: ) @0
                   staticElement: <testLibraryFragment>::@class::A::@constructor::c3
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: a @-1
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::a
-                      staticType: int
-                    SimpleIdentifier
-                      token: b @-1
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::b
-                      staticType: int?
-                    SimpleIdentifier
-                      token: c @-1
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::c3::@parameter::c
-                      staticType: int
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::c3
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::c3
-    mixins
-      mixin M @106
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::c3
+      mixins
+        mixin M @106
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -20424,70 +20844,71 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: num
-            defaultType: num
-        constructors
-          @27
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional x @31
-                type: T
-              requiredPositional y @36
-                type: T
-      class alias B @61
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant E @63
-            bound: num
-            defaultType: num
-        supertype: A<E>
-        mixins
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional x @-1
-                type: E
-              requiredPositional y @-1
-                type: E
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: x @-1
-                      staticElement: <testLibraryFragment>::@class::B::@constructor::new::@parameter::x
-                      staticType: E
-                    SimpleIdentifier
-                      token: y @-1
-                      staticElement: <testLibraryFragment>::@class::B::@constructor::new::@parameter::y
-                      staticType: E
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::A::@constructor::new
-              substitution: {T: E}
-    mixins
-      mixin M @49
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: num
+              defaultType: num
+          constructors
+            @27
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional x @31
+                  type: T
+                requiredPositional y @36
+                  type: T
+        class alias B @61
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant E @63
+              bound: num
+              defaultType: num
+          supertype: A<E>
+          mixins
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional x @-1
+                  type: E
+                requiredPositional y @-1
+                  type: E
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: x @-1
+                        staticElement: <testLibraryFragment>::@class::B::@constructor::new::@parameter::x
+                        staticType: E
+                      SimpleIdentifier
+                        token: y @-1
+                        staticElement: <testLibraryFragment>::@class::B::@constructor::new::@parameter::y
+                        staticType: E
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::new
+                substitution: {T: E}
+      mixins
+        mixin M @49
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -20504,43 +20925,44 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias C @22
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @43
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @54
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias C @22
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @43
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @54
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -20557,43 +20979,44 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias C @27
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// aaa\n/// b\n/// cc
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @48
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @59
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias C @27
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// aaa\n/// b\n/// cc
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @48
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @59
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -20610,43 +21033,44 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias C @66
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @87
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @98
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias C @66
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @87
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @98
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -20658,33 +21082,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      final class alias C @12
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-    mixins
-      mixin M @37
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        final class alias C @12
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+      mixins
+        mixin M @37
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -20698,56 +21123,57 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias Z @6
-        reference: <testLibraryFragment>::@class::Z
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        mixins
-          B<int>
-          C<double>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::Z::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Z
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-      class A @42
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @53
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant B1 @55
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @68
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant C1 @70
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias Z @6
+          reference: <testLibraryFragment>::@class::Z
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          mixins
+            B<int>
+            C<double>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::Z::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Z
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+        class A @42
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @53
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant B1 @55
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @68
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant C1 @70
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
 ''');
   }
 
@@ -20759,33 +21185,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      interface class alias C @16
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-    mixins
-      mixin M @41
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        interface class alias C @16
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+      mixins
+        mixin M @41
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -20806,31 +21233,32 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class alias A @23
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class alias A @23
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
 ''');
   }
 
@@ -20843,38 +21271,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias A @30
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M2
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-    mixins
-      mixin M1 @6
-        reference: <testLibraryFragment>::@mixin::M1
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-      mixin M2 @18
-        reference: <testLibraryFragment>::@mixin::M2
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias A @30
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M2
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+      mixins
+        mixin M1 @6
+          reference: <testLibraryFragment>::@mixin::M1
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+        mixin M2 @18
+          reference: <testLibraryFragment>::@mixin::M2
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -20886,33 +21315,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      mixin class alias C @12
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-    mixins
-      mixin M @37
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        mixin class alias C @12
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+      mixins
+        mixin M @37
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -20925,46 +21355,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class alias C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            bound: C<dynamic>
-            defaultType: dynamic
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @39
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @50
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class alias C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              bound: C<dynamic>
+              defaultType: dynamic
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @39
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @50
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -20979,45 +21410,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @29
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @40
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @29
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @40
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -21032,42 +21464,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @26
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @37
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @26
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @37
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
 ''');
   }
 
@@ -21079,33 +21512,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract sealed class alias C @13
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-    mixins
-      mixin M @38
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract sealed class alias C @13
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+      mixins
+        mixin M @38
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -21129,55 +21563,56 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class M @23
-        reference: <testLibraryFragment>::@class::M
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M
-      class alias MixinApp @34
-        reference: <testLibraryFragment>::@class::MixinApp
-        enclosingElement: <testLibraryFragment>
-        supertype: Base
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::new
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::new
-          synthetic const named @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: named @-1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class M @23
+          reference: <testLibraryFragment>::@class::M
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M
+        class alias MixinApp @34
+          reference: <testLibraryFragment>::@class::MixinApp
+          enclosingElement: <testLibraryFragment>
+          supertype: Base
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::new
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::new
+            synthetic const named @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: named @-1
+                    staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::named
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
                   staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::named
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::named
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::named
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::named
 ''');
   }
 
@@ -21209,193 +21644,194 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class M @23
-        reference: <testLibraryFragment>::@class::M
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M
-      class alias MixinApp @34
-        reference: <testLibraryFragment>::@class::MixinApp
-        enclosingElement: <testLibraryFragment>
-        supertype: Base
-        mixins
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::new
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::new
-          synthetic noArgs @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::noArgs
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: noArgs @-1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class M @23
+          reference: <testLibraryFragment>::@class::M
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M
+        class alias MixinApp @34
+          reference: <testLibraryFragment>::@class::MixinApp
+          enclosingElement: <testLibraryFragment>
+          supertype: Base
+          mixins
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::new
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::new
+            synthetic noArgs @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::noArgs
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: noArgs @-1
+                    staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::noArgs
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
                   staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::noArgs
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::noArgs
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::noArgs
-          synthetic requiredArg @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::requiredArg
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            parameters
-              requiredPositional x @-1
-                type: dynamic
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: requiredArg @-1
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::noArgs
+            synthetic requiredArg @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::requiredArg
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              parameters
+                requiredPositional x @-1
+                  type: dynamic
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: requiredArg @-1
+                    staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::requiredArg
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: x @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::requiredArg::@parameter::x
+                        staticType: dynamic
+                    rightParenthesis: ) @0
                   staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::requiredArg
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: x @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::requiredArg::@parameter::x
-                      staticType: dynamic
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::requiredArg
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::requiredArg
-          synthetic positionalArg @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            parameters
-              optionalPositional default x @-1
-                type: bool
-                constantInitializer
-                  BooleanLiteral
-                    literal: true @127
-                    staticType: bool
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: positionalArg @-1
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::requiredArg
+            synthetic positionalArg @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              parameters
+                optionalPositional default x @-1
+                  type: bool
+                  constantInitializer
+                    BooleanLiteral
+                      literal: true @127
+                      staticType: bool
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: positionalArg @-1
+                    staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: x @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg::@parameter::x
+                        staticType: bool
+                    rightParenthesis: ) @0
                   staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: x @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg::@parameter::x
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg
+            synthetic positionalArg2 @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg2
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              parameters
+                optionalPositional default final x @-1
+                  type: bool
+                  constantInitializer
+                    BooleanLiteral
+                      literal: true @167
                       staticType: bool
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg
-          synthetic positionalArg2 @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg2
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            parameters
-              optionalPositional default final x @-1
-                type: bool
-                constantInitializer
-                  BooleanLiteral
-                    literal: true @167
-                    staticType: bool
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: positionalArg2 @-1
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: positionalArg2 @-1
+                    staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg2
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: x @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg2::@parameter::x
+                        staticType: bool
+                    rightParenthesis: ) @0
                   staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg2
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: x @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::positionalArg2::@parameter::x
-                      staticType: bool
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg2
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg2
-          synthetic namedArg @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            parameters
-              optionalNamed default x @-1
-                reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg::@parameter::x
-                type: int
-                constantInitializer
-                  IntegerLiteral
-                    literal: 42 @200
-                    staticType: int
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: namedArg @-1
-                  staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: x @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg::@parameter::x
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::positionalArg2
+            synthetic namedArg @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              parameters
+                optionalNamed default x @-1
+                  reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg::@parameter::x
+                  type: int
+                  constantInitializer
+                    IntegerLiteral
+                      literal: 42 @200
                       staticType: int
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg
-          synthetic namedArg2 @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg2
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            parameters
-              optionalNamed default final x @-1
-                reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg2::@parameter::x
-                type: bool
-                constantInitializer
-                  BooleanLiteral
-                    literal: true @233
-                    staticType: bool
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: namedArg2 @-1
-                  staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg2
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: x @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg2::@parameter::x
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: namedArg @-1
+                    staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: x @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg::@parameter::x
+                        staticType: int
+                    rightParenthesis: ) @0
+                  staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg
+            synthetic namedArg2 @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg2
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              parameters
+                optionalNamed default final x @-1
+                  reference: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg2::@parameter::x
+                  type: bool
+                  constantInitializer
+                    BooleanLiteral
+                      literal: true @233
                       staticType: bool
-                  rightParenthesis: ) @0
-                staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg2
-            superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg2
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: namedArg2 @-1
+                    staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg2
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: x @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::namedArg2::@parameter::x
+                        staticType: bool
+                    rightParenthesis: ) @0
+                  staticElement: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg2
+              superConstructor: package:test/a.dart::<fragment>::@class::Base::@constructor::namedArg2
 ''');
   }
 
@@ -21410,73 +21846,74 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class Base @6
-        reference: <testLibraryFragment>::@class::Base
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @11
-            defaultType: dynamic
-        constructors
-          ctor @23
-            reference: <testLibraryFragment>::@class::Base::@constructor::ctor
-            enclosingElement: <testLibraryFragment>::@class::Base
-            periodOffset: 22
-            nameEnd: 27
-            parameters
-              requiredPositional t @30
-                type: T
-              requiredPositional l @41
-                type: List<T>
-      class M @53
-        reference: <testLibraryFragment>::@class::M
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M
-      class alias MixinApp @64
-        reference: <testLibraryFragment>::@class::MixinApp
-        enclosingElement: <testLibraryFragment>
-        supertype: Base<dynamic>
-        mixins
-          M
-        constructors
-          synthetic ctor @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::ctor
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            parameters
-              requiredPositional t @-1
-                type: dynamic
-              requiredPositional l @-1
-                type: List<dynamic>
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: ctor @-1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class Base @6
+          reference: <testLibraryFragment>::@class::Base
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @11
+              defaultType: dynamic
+          constructors
+            ctor @23
+              reference: <testLibraryFragment>::@class::Base::@constructor::ctor
+              enclosingElement: <testLibraryFragment>::@class::Base
+              periodOffset: 22
+              nameEnd: 27
+              parameters
+                requiredPositional t @30
+                  type: T
+                requiredPositional l @41
+                  type: List<T>
+        class M @53
+          reference: <testLibraryFragment>::@class::M
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M
+        class alias MixinApp @64
+          reference: <testLibraryFragment>::@class::MixinApp
+          enclosingElement: <testLibraryFragment>
+          supertype: Base<dynamic>
+          mixins
+            M
+          constructors
+            synthetic ctor @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::ctor
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              parameters
+                requiredPositional t @-1
+                  type: dynamic
+                requiredPositional l @-1
+                  type: List<dynamic>
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: ctor @-1
+                    staticElement: <testLibraryFragment>::@class::Base::@constructor::ctor
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: t @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::t
+                        staticType: dynamic
+                      SimpleIdentifier
+                        token: l @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::l
+                        staticType: List<dynamic>
+                    rightParenthesis: ) @0
                   staticElement: <testLibraryFragment>::@class::Base::@constructor::ctor
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: t @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::t
-                      staticType: dynamic
-                    SimpleIdentifier
-                      token: l @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::l
-                      staticType: List<dynamic>
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::Base::@constructor::ctor
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::Base::@constructor::ctor
-              substitution: {T: dynamic}
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::Base::@constructor::ctor
+                substitution: {T: dynamic}
 ''');
   }
 
@@ -21491,76 +21928,77 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class Base @6
-        reference: <testLibraryFragment>::@class::Base
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @11
-            defaultType: dynamic
-        constructors
-          ctor @23
-            reference: <testLibraryFragment>::@class::Base::@constructor::ctor
-            enclosingElement: <testLibraryFragment>::@class::Base
-            periodOffset: 22
-            nameEnd: 27
-            parameters
-              requiredPositional t @30
-                type: T
-              requiredPositional l @41
-                type: List<T>
-      class M @53
-        reference: <testLibraryFragment>::@class::M
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M
-      class alias MixinApp @64
-        reference: <testLibraryFragment>::@class::MixinApp
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @73
-            defaultType: dynamic
-        supertype: Base<List<U>>
-        mixins
-          M
-        constructors
-          synthetic ctor @-1
-            reference: <testLibraryFragment>::@class::MixinApp::@constructor::ctor
-            enclosingElement: <testLibraryFragment>::@class::MixinApp
-            parameters
-              requiredPositional t @-1
-                type: List<U>
-              requiredPositional l @-1
-                type: List<List<U>>
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                period: . @0
-                constructorName: SimpleIdentifier
-                  token: ctor @-1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class Base @6
+          reference: <testLibraryFragment>::@class::Base
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @11
+              defaultType: dynamic
+          constructors
+            ctor @23
+              reference: <testLibraryFragment>::@class::Base::@constructor::ctor
+              enclosingElement: <testLibraryFragment>::@class::Base
+              periodOffset: 22
+              nameEnd: 27
+              parameters
+                requiredPositional t @30
+                  type: T
+                requiredPositional l @41
+                  type: List<T>
+        class M @53
+          reference: <testLibraryFragment>::@class::M
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M
+        class alias MixinApp @64
+          reference: <testLibraryFragment>::@class::MixinApp
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @73
+              defaultType: dynamic
+          supertype: Base<List<U>>
+          mixins
+            M
+          constructors
+            synthetic ctor @-1
+              reference: <testLibraryFragment>::@class::MixinApp::@constructor::ctor
+              enclosingElement: <testLibraryFragment>::@class::MixinApp
+              parameters
+                requiredPositional t @-1
+                  type: List<U>
+                requiredPositional l @-1
+                  type: List<List<U>>
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  period: . @0
+                  constructorName: SimpleIdentifier
+                    token: ctor @-1
+                    staticElement: <testLibraryFragment>::@class::Base::@constructor::ctor
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleIdentifier
+                        token: t @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::t
+                        staticType: List<U>
+                      SimpleIdentifier
+                        token: l @-1
+                        staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::l
+                        staticType: List<List<U>>
+                    rightParenthesis: ) @0
                   staticElement: <testLibraryFragment>::@class::Base::@constructor::ctor
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleIdentifier
-                      token: t @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::t
-                      staticType: List<U>
-                    SimpleIdentifier
-                      token: l @-1
-                      staticElement: <testLibraryFragment>::@class::MixinApp::@constructor::ctor::@parameter::l
-                      staticType: List<List<U>>
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::Base::@constructor::ctor
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::Base::@constructor::ctor
-              substitution: {T: List<U>}
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::Base::@constructor::ctor
+                substitution: {T: List<U>}
 ''');
   }
 
@@ -21577,83 +22015,84 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class alias C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        mixins
-          E
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::D::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-      class D @26
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-      class E @37
-        reference: <testLibraryFragment>::@class::E
-        enclosingElement: <testLibraryFragment>
-        fields
-          x @105
-            reference: <testLibraryFragment>::@class::E::@field::x
-            enclosingElement: <testLibraryFragment>::@class::E
-            type: int
-          synthetic a @-1
-            reference: <testLibraryFragment>::@class::E::@field::a
-            enclosingElement: <testLibraryFragment>::@class::E
-            type: int
-          synthetic b @-1
-            reference: <testLibraryFragment>::@class::E::@field::b
-            enclosingElement: <testLibraryFragment>::@class::E
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::E
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::E
-            returnType: int
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@class::E::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::E
-            parameters
-              requiredPositional _x @-1
-                type: int
-            returnType: void
-          get a @51
-            reference: <testLibraryFragment>::@class::E::@getter::a
-            enclosingElement: <testLibraryFragment>::@class::E
-            returnType: int
-          set b= @73
-            reference: <testLibraryFragment>::@class::E::@setter::b
-            enclosingElement: <testLibraryFragment>::@class::E
-            parameters
-              requiredPositional i @79
-                type: int
-            returnType: void
-        methods
-          f @92
-            reference: <testLibraryFragment>::@class::E::@method::f
-            enclosingElement: <testLibraryFragment>::@class::E
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class alias C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          mixins
+            E
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::D::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+        class D @26
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+        class E @37
+          reference: <testLibraryFragment>::@class::E
+          enclosingElement: <testLibraryFragment>
+          fields
+            x @105
+              reference: <testLibraryFragment>::@class::E::@field::x
+              enclosingElement: <testLibraryFragment>::@class::E
+              type: int
+            synthetic a @-1
+              reference: <testLibraryFragment>::@class::E::@field::a
+              enclosingElement: <testLibraryFragment>::@class::E
+              type: int
+            synthetic b @-1
+              reference: <testLibraryFragment>::@class::E::@field::b
+              enclosingElement: <testLibraryFragment>::@class::E
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::E
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::E
+              returnType: int
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@class::E::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::E
+              parameters
+                requiredPositional _x @-1
+                  type: int
+              returnType: void
+            get a @51
+              reference: <testLibraryFragment>::@class::E::@getter::a
+              enclosingElement: <testLibraryFragment>::@class::E
+              returnType: int
+            set b= @73
+              reference: <testLibraryFragment>::@class::E::@setter::b
+              enclosingElement: <testLibraryFragment>::@class::E
+              parameters
+                requiredPositional i @79
+                  type: int
+              returnType: void
+          methods
+            f @92
+              reference: <testLibraryFragment>::@class::E::@method::f
+              enclosingElement: <testLibraryFragment>::@class::E
+              returnType: void
 ''');
   }
 
@@ -21662,24 +22101,25 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @17
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @17
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
 ''');
   }
 
@@ -21693,14 +22133,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -21711,20 +22152,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static final f @6
-        reference: <testLibraryFragment>::@topLevelVariable::f
-        enclosingElement: <testLibraryFragment>
-        type: V Function<U, V>(U, V)
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get f @-1
-        reference: <testLibraryFragment>::@getter::f
-        enclosingElement: <testLibraryFragment>
-        returnType: V Function<U, V>(U, V)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static final f @6
+          reference: <testLibraryFragment>::@topLevelVariable::f
+          enclosingElement: <testLibraryFragment>
+          type: V Function<U, V>(U, V)
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get f @-1
+          reference: <testLibraryFragment>::@getter::f
+          enclosingElement: <testLibraryFragment>
+          returnType: V Function<U, V>(U, V)
 ''');
   }
 
@@ -21740,15 +22182,19 @@
   name: lib
   nameOffset: 8
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    parts
-      part_0
+  definingUnit: <testLibraryFragment>
   parts
     part_0
-      uri: package:test/a.dart
-      reference: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      parts
+        part_0
+          uri: package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          unit: <testLibrary>::@fragment::package:test/a.dart
+    <testLibrary>::@fragment::package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
       topLevelVariables
@@ -21795,112 +22241,113 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class Raw @6
-        reference: <testLibraryFragment>::@class::Raw
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 12
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::Raw::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Raw
-      class HasDocComment @50
-        reference: <testLibraryFragment>::@class::HasDocComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 14
-        codeLength: 52
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::HasDocComment::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::HasDocComment
-      class HasAnnotation @84
-        reference: <testLibraryFragment>::@class::HasAnnotation
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @68
-            name: SimpleIdentifier
-              token: Object @69
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @75
-              rightParenthesis: ) @76
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 68
-        codeLength: 32
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::HasAnnotation::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::HasAnnotation
-      class AnnotationThenComment @148
-        reference: <testLibraryFragment>::@class::AnnotationThenComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @102
-            name: SimpleIdentifier
-              token: Object @103
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @109
-              rightParenthesis: ) @110
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 102
-        codeLength: 70
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::AnnotationThenComment::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::AnnotationThenComment
-      class CommentThenAnnotation @220
-        reference: <testLibraryFragment>::@class::CommentThenAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @204
-            name: SimpleIdentifier
-              token: Object @205
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @211
-              rightParenthesis: ) @212
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 174
-        codeLength: 70
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::CommentThenAnnotation::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::CommentThenAnnotation
-      class CommentAroundAnnotation @292
-        reference: <testLibraryFragment>::@class::CommentAroundAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @261
-            name: SimpleIdentifier
-              token: Object @262
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @268
-              rightParenthesis: ) @269
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 261
-        codeLength: 57
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::CommentAroundAnnotation::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::CommentAroundAnnotation
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class Raw @6
+          reference: <testLibraryFragment>::@class::Raw
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 12
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::Raw::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Raw
+        class HasDocComment @50
+          reference: <testLibraryFragment>::@class::HasDocComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 14
+          codeLength: 52
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::HasDocComment::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::HasDocComment
+        class HasAnnotation @84
+          reference: <testLibraryFragment>::@class::HasAnnotation
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @68
+              name: SimpleIdentifier
+                token: Object @69
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @75
+                rightParenthesis: ) @76
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 68
+          codeLength: 32
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::HasAnnotation::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::HasAnnotation
+        class AnnotationThenComment @148
+          reference: <testLibraryFragment>::@class::AnnotationThenComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @102
+              name: SimpleIdentifier
+                token: Object @103
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @109
+                rightParenthesis: ) @110
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 102
+          codeLength: 70
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::AnnotationThenComment::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::AnnotationThenComment
+        class CommentThenAnnotation @220
+          reference: <testLibraryFragment>::@class::CommentThenAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @204
+              name: SimpleIdentifier
+                token: Object @205
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @211
+                rightParenthesis: ) @212
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 174
+          codeLength: 70
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::CommentThenAnnotation::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::CommentThenAnnotation
+        class CommentAroundAnnotation @292
+          reference: <testLibraryFragment>::@class::CommentAroundAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @261
+              name: SimpleIdentifier
+                token: Object @262
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @268
+                rightParenthesis: ) @269
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 261
+          codeLength: 57
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::CommentAroundAnnotation::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::CommentAroundAnnotation
 ''');
   }
 
@@ -21938,196 +22385,197 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 10
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @18
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 12
-        codeLength: 10
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class alias Raw @30
-        reference: <testLibraryFragment>::@class::Raw
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 24
-        codeLength: 29
-        supertype: Object
-        mixins
-          A
-          B
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::Raw::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Raw
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-      class alias HasDocComment @91
-        reference: <testLibraryFragment>::@class::HasDocComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 55
-        codeLength: 69
-        supertype: Object
-        mixins
-          A
-          B
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::HasDocComment::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::HasDocComment
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-      class alias HasAnnotation @142
-        reference: <testLibraryFragment>::@class::HasAnnotation
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @126
-            name: SimpleIdentifier
-              token: Object @127
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @133
-              rightParenthesis: ) @134
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 126
-        codeLength: 49
-        supertype: Object
-        mixins
-          A
-          B
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::HasAnnotation::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::HasAnnotation
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-      class alias AnnotationThenComment @223
-        reference: <testLibraryFragment>::@class::AnnotationThenComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @177
-            name: SimpleIdentifier
-              token: Object @178
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @184
-              rightParenthesis: ) @185
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 177
-        codeLength: 87
-        supertype: Object
-        mixins
-          A
-          B
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::AnnotationThenComment::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::AnnotationThenComment
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-      class alias CommentThenAnnotation @312
-        reference: <testLibraryFragment>::@class::CommentThenAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @296
-            name: SimpleIdentifier
-              token: Object @297
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @303
-              rightParenthesis: ) @304
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 266
-        codeLength: 87
-        supertype: Object
-        mixins
-          A
-          B
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::CommentThenAnnotation::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::CommentThenAnnotation
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-      class alias CommentAroundAnnotation @401
-        reference: <testLibraryFragment>::@class::CommentAroundAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @370
-            name: SimpleIdentifier
-              token: Object @371
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @377
-              rightParenthesis: ) @378
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 370
-        codeLength: 74
-        supertype: Object
-        mixins
-          A
-          B
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::CommentAroundAnnotation::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::CommentAroundAnnotation
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 10
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @18
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 12
+          codeLength: 10
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class alias Raw @30
+          reference: <testLibraryFragment>::@class::Raw
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 24
+          codeLength: 29
+          supertype: Object
+          mixins
+            A
+            B
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::Raw::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Raw
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+        class alias HasDocComment @91
+          reference: <testLibraryFragment>::@class::HasDocComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 55
+          codeLength: 69
+          supertype: Object
+          mixins
+            A
+            B
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::HasDocComment::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::HasDocComment
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+        class alias HasAnnotation @142
+          reference: <testLibraryFragment>::@class::HasAnnotation
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @126
+              name: SimpleIdentifier
+                token: Object @127
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @133
+                rightParenthesis: ) @134
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 126
+          codeLength: 49
+          supertype: Object
+          mixins
+            A
+            B
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::HasAnnotation::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::HasAnnotation
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+        class alias AnnotationThenComment @223
+          reference: <testLibraryFragment>::@class::AnnotationThenComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @177
+              name: SimpleIdentifier
+                token: Object @178
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @184
+                rightParenthesis: ) @185
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 177
+          codeLength: 87
+          supertype: Object
+          mixins
+            A
+            B
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::AnnotationThenComment::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::AnnotationThenComment
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+        class alias CommentThenAnnotation @312
+          reference: <testLibraryFragment>::@class::CommentThenAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @296
+              name: SimpleIdentifier
+                token: Object @297
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @303
+                rightParenthesis: ) @304
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 266
+          codeLength: 87
+          supertype: Object
+          mixins
+            A
+            B
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::CommentThenAnnotation::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::CommentThenAnnotation
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+        class alias CommentAroundAnnotation @401
+          reference: <testLibraryFragment>::@class::CommentAroundAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @370
+              name: SimpleIdentifier
+                token: Object @371
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @377
+                rightParenthesis: ) @378
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 370
+          codeLength: 74
+          supertype: Object
+          mixins
+            A
+            B
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::CommentAroundAnnotation::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::CommentAroundAnnotation
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
 ''');
   }
 
@@ -22165,111 +22613,112 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 362
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 12
-            codeLength: 4
-          raw @22
-            reference: <testLibraryFragment>::@class::C::@constructor::raw
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 20
-            codeLength: 10
-            periodOffset: 21
-            nameEnd: 25
-          hasDocComment @70
-            reference: <testLibraryFragment>::@class::C::@constructor::hasDocComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            codeOffset: 34
-            codeLength: 54
-            periodOffset: 69
-            nameEnd: 83
-          hasAnnotation @106
-            reference: <testLibraryFragment>::@class::C::@constructor::hasAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            metadata
-              Annotation
-                atSign: @ @92
-                name: SimpleIdentifier
-                  token: Object @93
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @99
-                  rightParenthesis: ) @100
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 92
-            codeLength: 32
-            periodOffset: 105
-            nameEnd: 119
-          annotationThenComment @176
-            reference: <testLibraryFragment>::@class::C::@constructor::annotationThenComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @128
-                name: SimpleIdentifier
-                  token: Object @129
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @135
-                  rightParenthesis: ) @136
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 128
-            codeLength: 74
-            periodOffset: 175
-            nameEnd: 197
-          commentThenAnnotation @254
-            reference: <testLibraryFragment>::@class::C::@constructor::commentThenAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @240
-                name: SimpleIdentifier
-                  token: Object @241
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @247
-                  rightParenthesis: ) @248
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 206
-            codeLength: 74
-            periodOffset: 253
-            nameEnd: 275
-          commentAroundAnnotation @332
-            reference: <testLibraryFragment>::@class::C::@constructor::commentAroundAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @301
-                name: SimpleIdentifier
-                  token: Object @302
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @308
-                  rightParenthesis: ) @309
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 301
-            codeLength: 59
-            periodOffset: 331
-            nameEnd: 355
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 362
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 12
+              codeLength: 4
+            raw @22
+              reference: <testLibraryFragment>::@class::C::@constructor::raw
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 20
+              codeLength: 10
+              periodOffset: 21
+              nameEnd: 25
+            hasDocComment @70
+              reference: <testLibraryFragment>::@class::C::@constructor::hasDocComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              codeOffset: 34
+              codeLength: 54
+              periodOffset: 69
+              nameEnd: 83
+            hasAnnotation @106
+              reference: <testLibraryFragment>::@class::C::@constructor::hasAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              metadata
+                Annotation
+                  atSign: @ @92
+                  name: SimpleIdentifier
+                    token: Object @93
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @99
+                    rightParenthesis: ) @100
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 92
+              codeLength: 32
+              periodOffset: 105
+              nameEnd: 119
+            annotationThenComment @176
+              reference: <testLibraryFragment>::@class::C::@constructor::annotationThenComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @128
+                  name: SimpleIdentifier
+                    token: Object @129
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @135
+                    rightParenthesis: ) @136
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 128
+              codeLength: 74
+              periodOffset: 175
+              nameEnd: 197
+            commentThenAnnotation @254
+              reference: <testLibraryFragment>::@class::C::@constructor::commentThenAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @240
+                  name: SimpleIdentifier
+                    token: Object @241
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @247
+                    rightParenthesis: ) @248
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 206
+              codeLength: 74
+              periodOffset: 253
+              nameEnd: 275
+            commentAroundAnnotation @332
+              reference: <testLibraryFragment>::@class::C::@constructor::commentAroundAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @301
+                  name: SimpleIdentifier
+                    token: Object @302
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @308
+                    rightParenthesis: ) @309
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 301
+              codeLength: 59
+              periodOffset: 331
+              nameEnd: 355
 ''');
   }
 
@@ -22307,111 +22756,112 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 483
-        constructors
-          factory @20
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 12
-            codeLength: 23
-          factory raw @49
-            reference: <testLibraryFragment>::@class::C::@constructor::raw
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 39
-            codeLength: 27
-            periodOffset: 48
-            nameEnd: 52
-          factory hasDocComment @114
-            reference: <testLibraryFragment>::@class::C::@constructor::hasDocComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            codeOffset: 70
-            codeLength: 71
-            periodOffset: 113
-            nameEnd: 127
-          factory hasAnnotation @167
-            reference: <testLibraryFragment>::@class::C::@constructor::hasAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            metadata
-              Annotation
-                atSign: @ @145
-                name: SimpleIdentifier
-                  token: Object @146
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @152
-                  rightParenthesis: ) @153
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 145
-            codeLength: 49
-            periodOffset: 166
-            nameEnd: 180
-          factory annotationThenComment @254
-            reference: <testLibraryFragment>::@class::C::@constructor::annotationThenComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @198
-                name: SimpleIdentifier
-                  token: Object @199
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @205
-                  rightParenthesis: ) @206
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 198
-            codeLength: 91
-            periodOffset: 253
-            nameEnd: 275
-          factory commentThenAnnotation @349
-            reference: <testLibraryFragment>::@class::C::@constructor::commentThenAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @327
-                name: SimpleIdentifier
-                  token: Object @328
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @334
-                  rightParenthesis: ) @335
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 293
-            codeLength: 91
-            periodOffset: 348
-            nameEnd: 370
-          factory commentAroundAnnotation @444
-            reference: <testLibraryFragment>::@class::C::@constructor::commentAroundAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @405
-                name: SimpleIdentifier
-                  token: Object @406
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @412
-                  rightParenthesis: ) @413
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 405
-            codeLength: 76
-            periodOffset: 443
-            nameEnd: 467
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 483
+          constructors
+            factory @20
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 12
+              codeLength: 23
+            factory raw @49
+              reference: <testLibraryFragment>::@class::C::@constructor::raw
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 39
+              codeLength: 27
+              periodOffset: 48
+              nameEnd: 52
+            factory hasDocComment @114
+              reference: <testLibraryFragment>::@class::C::@constructor::hasDocComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              codeOffset: 70
+              codeLength: 71
+              periodOffset: 113
+              nameEnd: 127
+            factory hasAnnotation @167
+              reference: <testLibraryFragment>::@class::C::@constructor::hasAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              metadata
+                Annotation
+                  atSign: @ @145
+                  name: SimpleIdentifier
+                    token: Object @146
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @152
+                    rightParenthesis: ) @153
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 145
+              codeLength: 49
+              periodOffset: 166
+              nameEnd: 180
+            factory annotationThenComment @254
+              reference: <testLibraryFragment>::@class::C::@constructor::annotationThenComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @198
+                  name: SimpleIdentifier
+                    token: Object @199
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @205
+                    rightParenthesis: ) @206
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 198
+              codeLength: 91
+              periodOffset: 253
+              nameEnd: 275
+            factory commentThenAnnotation @349
+              reference: <testLibraryFragment>::@class::C::@constructor::commentThenAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @327
+                  name: SimpleIdentifier
+                    token: Object @328
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @334
+                    rightParenthesis: ) @335
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 293
+              codeLength: 91
+              periodOffset: 348
+              nameEnd: 370
+            factory commentAroundAnnotation @444
+              reference: <testLibraryFragment>::@class::C::@constructor::commentAroundAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @405
+                  name: SimpleIdentifier
+                    token: Object @406
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @412
+                    rightParenthesis: ) @413
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 405
+              codeLength: 76
+              periodOffset: 443
+              nameEnd: 467
 ''');
   }
 
@@ -22425,117 +22875,118 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 26
-        supertype: Enum
-        fields
-          static const enumConstant aaa @11
-            reference: <testLibraryFragment>::@enum::E::@field::aaa
-            enclosingElement: <testLibraryFragment>::@enum::E
-            codeOffset: 11
-            codeLength: 3
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant bbb @16
-            reference: <testLibraryFragment>::@enum::E::@field::bbb
-            enclosingElement: <testLibraryFragment>::@enum::E
-            codeOffset: 16
-            codeLength: 3
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant ccc @21
-            reference: <testLibraryFragment>::@enum::E::@field::ccc
-            enclosingElement: <testLibraryFragment>::@enum::E
-            codeOffset: 21
-            codeLength: 3
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: aaa @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::aaa
-                    staticType: E
-                  SimpleIdentifier
-                    token: bbb @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::bbb
-                    staticType: E
-                  SimpleIdentifier
-                    token: ccc @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::ccc
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get aaa @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::aaa
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get bbb @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::bbb
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get ccc @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::ccc
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 26
+          supertype: Enum
+          fields
+            static const enumConstant aaa @11
+              reference: <testLibraryFragment>::@enum::E::@field::aaa
+              enclosingElement: <testLibraryFragment>::@enum::E
+              codeOffset: 11
+              codeLength: 3
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant bbb @16
+              reference: <testLibraryFragment>::@enum::E::@field::bbb
+              enclosingElement: <testLibraryFragment>::@enum::E
+              codeOffset: 16
+              codeLength: 3
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant ccc @21
+              reference: <testLibraryFragment>::@enum::E::@field::ccc
+              enclosingElement: <testLibraryFragment>::@enum::E
+              codeOffset: 21
+              codeLength: 3
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: aaa @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::aaa
+                      staticType: E
+                    SimpleIdentifier
+                      token: bbb @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::bbb
+                      staticType: E
+                    SimpleIdentifier
+                      token: ccc @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::ccc
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get aaa @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::aaa
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get bbb @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::bbb
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get ccc @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::ccc
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -22571,104 +23022,105 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 10
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    extensions
-      Raw @22
-        reference: <testLibraryFragment>::@extension::Raw
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 12
-        codeLength: 21
-        extendedType: A
-      HasDocComment @75
-        reference: <testLibraryFragment>::@extension::HasDocComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 35
-        codeLength: 61
-        extendedType: A
-      HasAnnotation @118
-        reference: <testLibraryFragment>::@extension::HasAnnotation
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @98
-            name: SimpleIdentifier
-              token: Object @99
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @105
-              rightParenthesis: ) @106
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 98
-        codeLength: 41
-        extendedType: A
-      AnnotationThenComment @191
-        reference: <testLibraryFragment>::@extension::AnnotationThenComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @141
-            name: SimpleIdentifier
-              token: Object @142
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @148
-              rightParenthesis: ) @149
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 141
-        codeLength: 79
-        extendedType: A
-      CommentThenAnnotation @272
-        reference: <testLibraryFragment>::@extension::CommentThenAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @252
-            name: SimpleIdentifier
-              token: Object @253
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @259
-              rightParenthesis: ) @260
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 222
-        codeLength: 79
-        extendedType: A
-      CommentAroundAnnotation @353
-        reference: <testLibraryFragment>::@extension::CommentAroundAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @318
-            name: SimpleIdentifier
-              token: Object @319
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @325
-              rightParenthesis: ) @326
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 318
-        codeLength: 66
-        extendedType: A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 10
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      extensions
+        Raw @22
+          reference: <testLibraryFragment>::@extension::Raw
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 12
+          codeLength: 21
+          extendedType: A
+        HasDocComment @75
+          reference: <testLibraryFragment>::@extension::HasDocComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 35
+          codeLength: 61
+          extendedType: A
+        HasAnnotation @118
+          reference: <testLibraryFragment>::@extension::HasAnnotation
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @98
+              name: SimpleIdentifier
+                token: Object @99
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @105
+                rightParenthesis: ) @106
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 98
+          codeLength: 41
+          extendedType: A
+        AnnotationThenComment @191
+          reference: <testLibraryFragment>::@extension::AnnotationThenComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @141
+              name: SimpleIdentifier
+                token: Object @142
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @148
+                rightParenthesis: ) @149
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 141
+          codeLength: 79
+          extendedType: A
+        CommentThenAnnotation @272
+          reference: <testLibraryFragment>::@extension::CommentThenAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @252
+              name: SimpleIdentifier
+                token: Object @253
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @259
+                rightParenthesis: ) @260
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 222
+          codeLength: 79
+          extendedType: A
+        CommentAroundAnnotation @353
+          reference: <testLibraryFragment>::@extension::CommentAroundAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @318
+              name: SimpleIdentifier
+                token: Object @319
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @325
+                rightParenthesis: ) @326
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 318
+          codeLength: 66
+          extendedType: A
 ''');
   }
 
@@ -22686,109 +23138,110 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 115
-        fields
-          withInit @16
-            reference: <testLibraryFragment>::@class::C::@field::withInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 12
-            codeLength: 16
-            type: int
-            shouldUseTypeForInitializerInference: true
-          withoutInit @37
-            reference: <testLibraryFragment>::@class::C::@field::withoutInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 33
-            codeLength: 15
-            type: int
-          multiWithInit @57
-            reference: <testLibraryFragment>::@class::C::@field::multiWithInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 53
-            codeLength: 21
-            type: int
-            shouldUseTypeForInitializerInference: true
-          multiWithoutInit @76
-            reference: <testLibraryFragment>::@class::C::@field::multiWithoutInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 76
-            codeLength: 16
-            type: int
-          multiWithInit2 @94
-            reference: <testLibraryFragment>::@class::C::@field::multiWithInit2
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 94
-            codeLength: 18
-            type: int
-            shouldUseTypeForInitializerInference: true
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get withInit @-1
-            reference: <testLibraryFragment>::@class::C::@getter::withInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set withInit= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::withInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _withInit @-1
-                type: int
-            returnType: void
-          synthetic get withoutInit @-1
-            reference: <testLibraryFragment>::@class::C::@getter::withoutInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set withoutInit= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::withoutInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _withoutInit @-1
-                type: int
-            returnType: void
-          synthetic get multiWithInit @-1
-            reference: <testLibraryFragment>::@class::C::@getter::multiWithInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set multiWithInit= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::multiWithInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _multiWithInit @-1
-                type: int
-            returnType: void
-          synthetic get multiWithoutInit @-1
-            reference: <testLibraryFragment>::@class::C::@getter::multiWithoutInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set multiWithoutInit= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::multiWithoutInit
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _multiWithoutInit @-1
-                type: int
-            returnType: void
-          synthetic get multiWithInit2 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::multiWithInit2
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set multiWithInit2= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::multiWithInit2
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _multiWithInit2 @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 115
+          fields
+            withInit @16
+              reference: <testLibraryFragment>::@class::C::@field::withInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 12
+              codeLength: 16
+              type: int
+              shouldUseTypeForInitializerInference: true
+            withoutInit @37
+              reference: <testLibraryFragment>::@class::C::@field::withoutInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 33
+              codeLength: 15
+              type: int
+            multiWithInit @57
+              reference: <testLibraryFragment>::@class::C::@field::multiWithInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 53
+              codeLength: 21
+              type: int
+              shouldUseTypeForInitializerInference: true
+            multiWithoutInit @76
+              reference: <testLibraryFragment>::@class::C::@field::multiWithoutInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 76
+              codeLength: 16
+              type: int
+            multiWithInit2 @94
+              reference: <testLibraryFragment>::@class::C::@field::multiWithInit2
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 94
+              codeLength: 18
+              type: int
+              shouldUseTypeForInitializerInference: true
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get withInit @-1
+              reference: <testLibraryFragment>::@class::C::@getter::withInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set withInit= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::withInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _withInit @-1
+                  type: int
+              returnType: void
+            synthetic get withoutInit @-1
+              reference: <testLibraryFragment>::@class::C::@getter::withoutInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set withoutInit= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::withoutInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _withoutInit @-1
+                  type: int
+              returnType: void
+            synthetic get multiWithInit @-1
+              reference: <testLibraryFragment>::@class::C::@getter::multiWithInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set multiWithInit= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::multiWithInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _multiWithInit @-1
+                  type: int
+              returnType: void
+            synthetic get multiWithoutInit @-1
+              reference: <testLibraryFragment>::@class::C::@getter::multiWithoutInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set multiWithoutInit= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::multiWithoutInit
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _multiWithoutInit @-1
+                  type: int
+              returnType: void
+            synthetic get multiWithInit2 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::multiWithInit2
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set multiWithInit2= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::multiWithInit2
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _multiWithInit2 @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -22822,287 +23275,288 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 436
-        fields
-          hasDocComment @50
-            reference: <testLibraryFragment>::@class::C::@field::hasDocComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            codeOffset: 12
-            codeLength: 51
-            type: int
-          hasDocComment2 @65
-            reference: <testLibraryFragment>::@class::C::@field::hasDocComment2
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            codeOffset: 65
-            codeLength: 14
-            type: int
-          hasAnnotation @100
-            reference: <testLibraryFragment>::@class::C::@field::hasAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            metadata
-              Annotation
-                atSign: @ @84
-                name: SimpleIdentifier
-                  token: Object @85
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @91
-                  rightParenthesis: ) @92
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 84
-            codeLength: 29
-            type: int
-          hasAnnotation2 @115
-            reference: <testLibraryFragment>::@class::C::@field::hasAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            metadata
-              Annotation
-                atSign: @ @84
-                name: SimpleIdentifier
-                  token: Object @85
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @91
-                  rightParenthesis: ) @92
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 115
-            codeLength: 14
-            type: int
-          annotationThenComment @184
-            reference: <testLibraryFragment>::@class::C::@field::annotationThenComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @134
-                name: SimpleIdentifier
-                  token: Object @135
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @141
-                  rightParenthesis: ) @142
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 134
-            codeLength: 71
-            type: int
-          annotationThenComment2 @207
-            reference: <testLibraryFragment>::@class::C::@field::annotationThenComment2
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @134
-                name: SimpleIdentifier
-                  token: Object @135
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @141
-                  rightParenthesis: ) @142
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 207
-            codeLength: 22
-            type: int
-          commentThenAnnotation @284
-            reference: <testLibraryFragment>::@class::C::@field::commentThenAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @268
-                name: SimpleIdentifier
-                  token: Object @269
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @275
-                  rightParenthesis: ) @276
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 234
-            codeLength: 71
-            type: int
-          commentThenAnnotation2 @307
-            reference: <testLibraryFragment>::@class::C::@field::commentThenAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @268
-                name: SimpleIdentifier
-                  token: Object @269
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @275
-                  rightParenthesis: ) @276
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 307
-            codeLength: 22
-            type: int
-          commentAroundAnnotation @384
-            reference: <testLibraryFragment>::@class::C::@field::commentAroundAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @351
-                name: SimpleIdentifier
-                  token: Object @352
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @358
-                  rightParenthesis: ) @359
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 351
-            codeLength: 56
-            type: int
-          commentAroundAnnotation2 @409
-            reference: <testLibraryFragment>::@class::C::@field::commentAroundAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @351
-                name: SimpleIdentifier
-                  token: Object @352
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @358
-                  rightParenthesis: ) @359
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 409
-            codeLength: 24
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get hasDocComment @-1
-            reference: <testLibraryFragment>::@class::C::@getter::hasDocComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set hasDocComment= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::hasDocComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _hasDocComment @-1
-                type: int
-            returnType: void
-          synthetic get hasDocComment2 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::hasDocComment2
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set hasDocComment2= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::hasDocComment2
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _hasDocComment2 @-1
-                type: int
-            returnType: void
-          synthetic get hasAnnotation @-1
-            reference: <testLibraryFragment>::@class::C::@getter::hasAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set hasAnnotation= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::hasAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _hasAnnotation @-1
-                type: int
-            returnType: void
-          synthetic get hasAnnotation2 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::hasAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set hasAnnotation2= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::hasAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _hasAnnotation2 @-1
-                type: int
-            returnType: void
-          synthetic get annotationThenComment @-1
-            reference: <testLibraryFragment>::@class::C::@getter::annotationThenComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set annotationThenComment= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::annotationThenComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _annotationThenComment @-1
-                type: int
-            returnType: void
-          synthetic get annotationThenComment2 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::annotationThenComment2
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set annotationThenComment2= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::annotationThenComment2
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _annotationThenComment2 @-1
-                type: int
-            returnType: void
-          synthetic get commentThenAnnotation @-1
-            reference: <testLibraryFragment>::@class::C::@getter::commentThenAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set commentThenAnnotation= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::commentThenAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _commentThenAnnotation @-1
-                type: int
-            returnType: void
-          synthetic get commentThenAnnotation2 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::commentThenAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set commentThenAnnotation2= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::commentThenAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _commentThenAnnotation2 @-1
-                type: int
-            returnType: void
-          synthetic get commentAroundAnnotation @-1
-            reference: <testLibraryFragment>::@class::C::@getter::commentAroundAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set commentAroundAnnotation= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::commentAroundAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _commentAroundAnnotation @-1
-                type: int
-            returnType: void
-          synthetic get commentAroundAnnotation2 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::commentAroundAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set commentAroundAnnotation2= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::commentAroundAnnotation2
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _commentAroundAnnotation2 @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 436
+          fields
+            hasDocComment @50
+              reference: <testLibraryFragment>::@class::C::@field::hasDocComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              codeOffset: 12
+              codeLength: 51
+              type: int
+            hasDocComment2 @65
+              reference: <testLibraryFragment>::@class::C::@field::hasDocComment2
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              codeOffset: 65
+              codeLength: 14
+              type: int
+            hasAnnotation @100
+              reference: <testLibraryFragment>::@class::C::@field::hasAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              metadata
+                Annotation
+                  atSign: @ @84
+                  name: SimpleIdentifier
+                    token: Object @85
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @91
+                    rightParenthesis: ) @92
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 84
+              codeLength: 29
+              type: int
+            hasAnnotation2 @115
+              reference: <testLibraryFragment>::@class::C::@field::hasAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              metadata
+                Annotation
+                  atSign: @ @84
+                  name: SimpleIdentifier
+                    token: Object @85
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @91
+                    rightParenthesis: ) @92
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 115
+              codeLength: 14
+              type: int
+            annotationThenComment @184
+              reference: <testLibraryFragment>::@class::C::@field::annotationThenComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @134
+                  name: SimpleIdentifier
+                    token: Object @135
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @141
+                    rightParenthesis: ) @142
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 134
+              codeLength: 71
+              type: int
+            annotationThenComment2 @207
+              reference: <testLibraryFragment>::@class::C::@field::annotationThenComment2
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @134
+                  name: SimpleIdentifier
+                    token: Object @135
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @141
+                    rightParenthesis: ) @142
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 207
+              codeLength: 22
+              type: int
+            commentThenAnnotation @284
+              reference: <testLibraryFragment>::@class::C::@field::commentThenAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @268
+                  name: SimpleIdentifier
+                    token: Object @269
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @275
+                    rightParenthesis: ) @276
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 234
+              codeLength: 71
+              type: int
+            commentThenAnnotation2 @307
+              reference: <testLibraryFragment>::@class::C::@field::commentThenAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @268
+                  name: SimpleIdentifier
+                    token: Object @269
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @275
+                    rightParenthesis: ) @276
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 307
+              codeLength: 22
+              type: int
+            commentAroundAnnotation @384
+              reference: <testLibraryFragment>::@class::C::@field::commentAroundAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @351
+                  name: SimpleIdentifier
+                    token: Object @352
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @358
+                    rightParenthesis: ) @359
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 351
+              codeLength: 56
+              type: int
+            commentAroundAnnotation2 @409
+              reference: <testLibraryFragment>::@class::C::@field::commentAroundAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @351
+                  name: SimpleIdentifier
+                    token: Object @352
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @358
+                    rightParenthesis: ) @359
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 409
+              codeLength: 24
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get hasDocComment @-1
+              reference: <testLibraryFragment>::@class::C::@getter::hasDocComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set hasDocComment= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::hasDocComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _hasDocComment @-1
+                  type: int
+              returnType: void
+            synthetic get hasDocComment2 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::hasDocComment2
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set hasDocComment2= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::hasDocComment2
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _hasDocComment2 @-1
+                  type: int
+              returnType: void
+            synthetic get hasAnnotation @-1
+              reference: <testLibraryFragment>::@class::C::@getter::hasAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set hasAnnotation= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::hasAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _hasAnnotation @-1
+                  type: int
+              returnType: void
+            synthetic get hasAnnotation2 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::hasAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set hasAnnotation2= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::hasAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _hasAnnotation2 @-1
+                  type: int
+              returnType: void
+            synthetic get annotationThenComment @-1
+              reference: <testLibraryFragment>::@class::C::@getter::annotationThenComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set annotationThenComment= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::annotationThenComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _annotationThenComment @-1
+                  type: int
+              returnType: void
+            synthetic get annotationThenComment2 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::annotationThenComment2
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set annotationThenComment2= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::annotationThenComment2
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _annotationThenComment2 @-1
+                  type: int
+              returnType: void
+            synthetic get commentThenAnnotation @-1
+              reference: <testLibraryFragment>::@class::C::@getter::commentThenAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set commentThenAnnotation= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::commentThenAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _commentThenAnnotation @-1
+                  type: int
+              returnType: void
+            synthetic get commentThenAnnotation2 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::commentThenAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set commentThenAnnotation2= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::commentThenAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _commentThenAnnotation2 @-1
+                  type: int
+              returnType: void
+            synthetic get commentAroundAnnotation @-1
+              reference: <testLibraryFragment>::@class::C::@getter::commentAroundAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set commentAroundAnnotation= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::commentAroundAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _commentAroundAnnotation @-1
+                  type: int
+              returnType: void
+            synthetic get commentAroundAnnotation2 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::commentAroundAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set commentAroundAnnotation2= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::commentAroundAnnotation2
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _commentAroundAnnotation2 @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -23136,94 +23590,95 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      raw @5
-        reference: <testLibraryFragment>::@function::raw
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 13
-        returnType: void
-      hasDocComment @50
-        reference: <testLibraryFragment>::@function::hasDocComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 15
-        codeLength: 53
-        returnType: void
-      hasAnnotation @85
-        reference: <testLibraryFragment>::@function::hasAnnotation
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @70
-            name: SimpleIdentifier
-              token: Object @71
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @77
-              rightParenthesis: ) @78
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 70
-        codeLength: 33
-        returnType: void
-      annotationThenComment @150
-        reference: <testLibraryFragment>::@function::annotationThenComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @105
-            name: SimpleIdentifier
-              token: Object @106
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @112
-              rightParenthesis: ) @113
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 105
-        codeLength: 71
-        returnType: void
-      commentThenAnnotation @223
-        reference: <testLibraryFragment>::@function::commentThenAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @208
-            name: SimpleIdentifier
-              token: Object @209
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @215
-              rightParenthesis: ) @216
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 178
-        codeLength: 71
-        returnType: void
-      commentAroundAnnotation @296
-        reference: <testLibraryFragment>::@function::commentAroundAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @266
-            name: SimpleIdentifier
-              token: Object @267
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @273
-              rightParenthesis: ) @274
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 266
-        codeLength: 58
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        raw @5
+          reference: <testLibraryFragment>::@function::raw
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 13
+          returnType: void
+        hasDocComment @50
+          reference: <testLibraryFragment>::@function::hasDocComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 15
+          codeLength: 53
+          returnType: void
+        hasAnnotation @85
+          reference: <testLibraryFragment>::@function::hasAnnotation
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @70
+              name: SimpleIdentifier
+                token: Object @71
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @77
+                rightParenthesis: ) @78
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 70
+          codeLength: 33
+          returnType: void
+        annotationThenComment @150
+          reference: <testLibraryFragment>::@function::annotationThenComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @105
+              name: SimpleIdentifier
+                token: Object @106
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @112
+                rightParenthesis: ) @113
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 105
+          codeLength: 71
+          returnType: void
+        commentThenAnnotation @223
+          reference: <testLibraryFragment>::@function::commentThenAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @208
+              name: SimpleIdentifier
+                token: Object @209
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @215
+                rightParenthesis: ) @216
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 178
+          codeLength: 71
+          returnType: void
+        commentAroundAnnotation @296
+          reference: <testLibraryFragment>::@function::commentAroundAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @266
+              name: SimpleIdentifier
+                token: Object @267
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @273
+                rightParenthesis: ) @274
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 266
+          codeLength: 58
+          returnType: void
 ''');
   }
 
@@ -23257,100 +23712,101 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased Raw @8
-        reference: <testLibraryFragment>::@typeAlias::Raw
-        codeOffset: 0
-        codeLength: 14
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      functionTypeAliasBased HasDocComment @54
-        reference: <testLibraryFragment>::@typeAlias::HasDocComment
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 16
-        codeLength: 54
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      functionTypeAliasBased HasAnnotation @90
-        reference: <testLibraryFragment>::@typeAlias::HasAnnotation
-        metadata
-          Annotation
-            atSign: @ @72
-            name: SimpleIdentifier
-              token: Object @73
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @79
-              rightParenthesis: ) @80
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 72
-        codeLength: 34
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      functionTypeAliasBased AnnotationThenComment @156
-        reference: <testLibraryFragment>::@typeAlias::AnnotationThenComment
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @108
-            name: SimpleIdentifier
-              token: Object @109
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @115
-              rightParenthesis: ) @116
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 108
-        codeLength: 72
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      functionTypeAliasBased CommentThenAnnotation @230
-        reference: <testLibraryFragment>::@typeAlias::CommentThenAnnotation
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @212
-            name: SimpleIdentifier
-              token: Object @213
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @219
-              rightParenthesis: ) @220
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 182
-        codeLength: 72
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      functionTypeAliasBased CommentAroundAnnotation @304
-        reference: <testLibraryFragment>::@typeAlias::CommentAroundAnnotation
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @271
-            name: SimpleIdentifier
-              token: Object @272
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @278
-              rightParenthesis: ) @279
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 271
-        codeLength: 59
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased Raw @8
+          reference: <testLibraryFragment>::@typeAlias::Raw
+          codeOffset: 0
+          codeLength: 14
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        functionTypeAliasBased HasDocComment @54
+          reference: <testLibraryFragment>::@typeAlias::HasDocComment
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 16
+          codeLength: 54
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        functionTypeAliasBased HasAnnotation @90
+          reference: <testLibraryFragment>::@typeAlias::HasAnnotation
+          metadata
+            Annotation
+              atSign: @ @72
+              name: SimpleIdentifier
+                token: Object @73
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @79
+                rightParenthesis: ) @80
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 72
+          codeLength: 34
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        functionTypeAliasBased AnnotationThenComment @156
+          reference: <testLibraryFragment>::@typeAlias::AnnotationThenComment
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @108
+              name: SimpleIdentifier
+                token: Object @109
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @115
+                rightParenthesis: ) @116
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 108
+          codeLength: 72
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        functionTypeAliasBased CommentThenAnnotation @230
+          reference: <testLibraryFragment>::@typeAlias::CommentThenAnnotation
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @212
+              name: SimpleIdentifier
+                token: Object @213
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @219
+                rightParenthesis: ) @220
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 182
+          codeLength: 72
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        functionTypeAliasBased CommentAroundAnnotation @304
+          reference: <testLibraryFragment>::@typeAlias::CommentAroundAnnotation
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @271
+              name: SimpleIdentifier
+                token: Object @272
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @278
+                rightParenthesis: ) @279
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 271
+          codeLength: 59
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
 ''');
   }
 
@@ -23384,100 +23840,101 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      Raw @8
-        reference: <testLibraryFragment>::@typeAlias::Raw
-        codeOffset: 0
-        codeLength: 25
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      HasDocComment @65
-        reference: <testLibraryFragment>::@typeAlias::HasDocComment
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 27
-        codeLength: 65
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      HasAnnotation @112
-        reference: <testLibraryFragment>::@typeAlias::HasAnnotation
-        metadata
-          Annotation
-            atSign: @ @94
-            name: SimpleIdentifier
-              token: Object @95
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @101
-              rightParenthesis: ) @102
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 94
-        codeLength: 45
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      AnnotationThenComment @189
-        reference: <testLibraryFragment>::@typeAlias::AnnotationThenComment
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @141
-            name: SimpleIdentifier
-              token: Object @142
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @148
-              rightParenthesis: ) @149
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 141
-        codeLength: 83
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      CommentThenAnnotation @274
-        reference: <testLibraryFragment>::@typeAlias::CommentThenAnnotation
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @256
-            name: SimpleIdentifier
-              token: Object @257
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @263
-              rightParenthesis: ) @264
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 226
-        codeLength: 83
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
-      CommentAroundAnnotation @359
-        reference: <testLibraryFragment>::@typeAlias::CommentAroundAnnotation
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @326
-            name: SimpleIdentifier
-              token: Object @327
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @333
-              rightParenthesis: ) @334
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 326
-        codeLength: 70
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        Raw @8
+          reference: <testLibraryFragment>::@typeAlias::Raw
+          codeOffset: 0
+          codeLength: 25
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        HasDocComment @65
+          reference: <testLibraryFragment>::@typeAlias::HasDocComment
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 27
+          codeLength: 65
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        HasAnnotation @112
+          reference: <testLibraryFragment>::@typeAlias::HasAnnotation
+          metadata
+            Annotation
+              atSign: @ @94
+              name: SimpleIdentifier
+                token: Object @95
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @101
+                rightParenthesis: ) @102
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 94
+          codeLength: 45
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        AnnotationThenComment @189
+          reference: <testLibraryFragment>::@typeAlias::AnnotationThenComment
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @141
+              name: SimpleIdentifier
+                token: Object @142
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @148
+                rightParenthesis: ) @149
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 141
+          codeLength: 83
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        CommentThenAnnotation @274
+          reference: <testLibraryFragment>::@typeAlias::CommentThenAnnotation
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @256
+              name: SimpleIdentifier
+                token: Object @257
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @263
+                rightParenthesis: ) @264
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 226
+          codeLength: 83
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
+        CommentAroundAnnotation @359
+          reference: <testLibraryFragment>::@typeAlias::CommentAroundAnnotation
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @326
+              name: SimpleIdentifier
+                token: Object @327
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @333
+                rightParenthesis: ) @334
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 326
+          codeLength: 70
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
 ''');
   }
 
@@ -23513,104 +23970,105 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 372
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          raw @17
-            reference: <testLibraryFragment>::@class::C::@method::raw
-            enclosingElement: <testLibraryFragment>::@class::C
-            codeOffset: 12
-            codeLength: 13
-            returnType: void
-          hasDocComment @68
-            reference: <testLibraryFragment>::@class::C::@method::hasDocComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            codeOffset: 29
-            codeLength: 57
-            returnType: void
-          hasAnnotation @107
-            reference: <testLibraryFragment>::@class::C::@method::hasAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            metadata
-              Annotation
-                atSign: @ @90
-                name: SimpleIdentifier
-                  token: Object @91
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @97
-                  rightParenthesis: ) @98
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 90
-            codeLength: 35
-            returnType: void
-          annotationThenComment @180
-            reference: <testLibraryFragment>::@class::C::@method::annotationThenComment
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @129
-                name: SimpleIdentifier
-                  token: Object @130
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @136
-                  rightParenthesis: ) @137
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 129
-            codeLength: 77
-            returnType: void
-          commentThenAnnotation @261
-            reference: <testLibraryFragment>::@class::C::@method::commentThenAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 1.\n/// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @244
-                name: SimpleIdentifier
-                  token: Object @245
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @251
-                  rightParenthesis: ) @252
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 210
-            codeLength: 77
-            returnType: void
-          commentAroundAnnotation @342
-            reference: <testLibraryFragment>::@class::C::@method::commentAroundAnnotation
-            enclosingElement: <testLibraryFragment>::@class::C
-            documentationComment: /// Comment 2.
-            metadata
-              Annotation
-                atSign: @ @308
-                name: SimpleIdentifier
-                  token: Object @309
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @315
-                  rightParenthesis: ) @316
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 308
-            codeLength: 62
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 372
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            raw @17
+              reference: <testLibraryFragment>::@class::C::@method::raw
+              enclosingElement: <testLibraryFragment>::@class::C
+              codeOffset: 12
+              codeLength: 13
+              returnType: void
+            hasDocComment @68
+              reference: <testLibraryFragment>::@class::C::@method::hasDocComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              codeOffset: 29
+              codeLength: 57
+              returnType: void
+            hasAnnotation @107
+              reference: <testLibraryFragment>::@class::C::@method::hasAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              metadata
+                Annotation
+                  atSign: @ @90
+                  name: SimpleIdentifier
+                    token: Object @91
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @97
+                    rightParenthesis: ) @98
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 90
+              codeLength: 35
+              returnType: void
+            annotationThenComment @180
+              reference: <testLibraryFragment>::@class::C::@method::annotationThenComment
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @129
+                  name: SimpleIdentifier
+                    token: Object @130
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @136
+                    rightParenthesis: ) @137
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 129
+              codeLength: 77
+              returnType: void
+            commentThenAnnotation @261
+              reference: <testLibraryFragment>::@class::C::@method::commentThenAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 1.\n/// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @244
+                  name: SimpleIdentifier
+                    token: Object @245
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @251
+                    rightParenthesis: ) @252
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 210
+              codeLength: 77
+              returnType: void
+            commentAroundAnnotation @342
+              reference: <testLibraryFragment>::@class::C::@method::commentAroundAnnotation
+              enclosingElement: <testLibraryFragment>::@class::C
+              documentationComment: /// Comment 2.
+              metadata
+                Annotation
+                  atSign: @ @308
+                  name: SimpleIdentifier
+                    token: Object @309
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @315
+                    rightParenthesis: ) @316
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 308
+              codeLength: 62
+              returnType: void
 ''');
   }
 
@@ -23622,40 +24080,41 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      main @0
-        reference: <testLibraryFragment>::@function::main
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 38
-        parameters
-          optionalNamed default a @10
-            reference: <testLibraryFragment>::@function::main::@parameter::a
-            type: int
-            codeOffset: 6
-            codeLength: 9
-            constantInitializer
-              IntegerLiteral
-                literal: 1 @14
-                staticType: int
-          optionalNamed default b @21
-            reference: <testLibraryFragment>::@function::main::@parameter::b
-            type: int
-            codeOffset: 17
-            codeLength: 5
-          optionalNamed default c @28
-            reference: <testLibraryFragment>::@function::main::@parameter::c
-            type: int
-            codeOffset: 24
-            codeLength: 9
-            constantInitializer
-              IntegerLiteral
-                literal: 2 @32
-                staticType: int
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        main @0
+          reference: <testLibraryFragment>::@function::main
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 38
+          parameters
+            optionalNamed default a @10
+              reference: <testLibraryFragment>::@function::main::@parameter::a
+              type: int
+              codeOffset: 6
+              codeLength: 9
+              constantInitializer
+                IntegerLiteral
+                  literal: 1 @14
+                  staticType: int
+            optionalNamed default b @21
+              reference: <testLibraryFragment>::@function::main::@parameter::b
+              type: int
+              codeOffset: 17
+              codeLength: 5
+            optionalNamed default c @28
+              reference: <testLibraryFragment>::@function::main::@parameter::c
+              type: int
+              codeOffset: 24
+              codeLength: 9
+              constantInitializer
+                IntegerLiteral
+                  literal: 2 @32
+                  staticType: int
+          returnType: dynamic
 ''');
   }
 
@@ -23667,51 +24126,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      main @0
-        reference: <testLibraryFragment>::@function::main
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 48
-        parameters
-          requiredPositional a @19
-            type: int
-            metadata
-              Annotation
-                atSign: @ @5
-                name: SimpleIdentifier
-                  token: Object @6
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @12
-                  rightParenthesis: ) @13
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 5
-            codeLength: 15
-          requiredPositional b @26
-            type: int
-            codeOffset: 22
-            codeLength: 5
-          requiredPositional c @43
-            type: int
-            metadata
-              Annotation
-                atSign: @ @29
-                name: SimpleIdentifier
-                  token: Object @30
-                  staticElement: dart:core::<fragment>::@class::Object
-                  staticType: null
-                arguments: ArgumentList
-                  leftParenthesis: ( @36
-                  rightParenthesis: ) @37
-                element: dart:core::<fragment>::@class::Object::@constructor::new
-            codeOffset: 29
-            codeLength: 15
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        main @0
+          reference: <testLibraryFragment>::@function::main
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 48
+          parameters
+            requiredPositional a @19
+              type: int
+              metadata
+                Annotation
+                  atSign: @ @5
+                  name: SimpleIdentifier
+                    token: Object @6
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @12
+                    rightParenthesis: ) @13
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 5
+              codeLength: 15
+            requiredPositional b @26
+              type: int
+              codeOffset: 22
+              codeLength: 5
+            requiredPositional c @43
+              type: int
+              metadata
+                Annotation
+                  atSign: @ @29
+                  name: SimpleIdentifier
+                    token: Object @30
+                    staticElement: dart:core::<fragment>::@class::Object
+                    staticType: null
+                  arguments: ArgumentList
+                    leftParenthesis: ( @36
+                    rightParenthesis: ) @37
+                  element: dart:core::<fragment>::@class::Object::@constructor::new
+              codeOffset: 29
+              codeLength: 15
+          returnType: dynamic
 ''');
   }
 
@@ -23727,99 +24187,100 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static withInit @4
-        reference: <testLibraryFragment>::@topLevelVariable::withInit
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 24
-        type: int
-        shouldUseTypeForInitializerInference: true
-      static withoutInit @31
-        reference: <testLibraryFragment>::@topLevelVariable::withoutInit
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 27
-        codeLength: 15
-        type: int
-      static multiWithInit @49
-        reference: <testLibraryFragment>::@topLevelVariable::multiWithInit
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 45
-        codeLength: 21
-        type: int
-        shouldUseTypeForInitializerInference: true
-      static multiWithoutInit @68
-        reference: <testLibraryFragment>::@topLevelVariable::multiWithoutInit
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 68
-        codeLength: 16
-        type: int
-      static multiWithInit2 @86
-        reference: <testLibraryFragment>::@topLevelVariable::multiWithInit2
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 86
-        codeLength: 18
-        type: int
-        shouldUseTypeForInitializerInference: true
-    accessors
-      synthetic static get withInit @-1
-        reference: <testLibraryFragment>::@getter::withInit
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set withInit= @-1
-        reference: <testLibraryFragment>::@setter::withInit
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _withInit @-1
-            type: int
-        returnType: void
-      synthetic static get withoutInit @-1
-        reference: <testLibraryFragment>::@getter::withoutInit
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set withoutInit= @-1
-        reference: <testLibraryFragment>::@setter::withoutInit
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _withoutInit @-1
-            type: int
-        returnType: void
-      synthetic static get multiWithInit @-1
-        reference: <testLibraryFragment>::@getter::multiWithInit
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set multiWithInit= @-1
-        reference: <testLibraryFragment>::@setter::multiWithInit
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _multiWithInit @-1
-            type: int
-        returnType: void
-      synthetic static get multiWithoutInit @-1
-        reference: <testLibraryFragment>::@getter::multiWithoutInit
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set multiWithoutInit= @-1
-        reference: <testLibraryFragment>::@setter::multiWithoutInit
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _multiWithoutInit @-1
-            type: int
-        returnType: void
-      synthetic static get multiWithInit2 @-1
-        reference: <testLibraryFragment>::@getter::multiWithInit2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set multiWithInit2= @-1
-        reference: <testLibraryFragment>::@setter::multiWithInit2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _multiWithInit2 @-1
-            type: int
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static withInit @4
+          reference: <testLibraryFragment>::@topLevelVariable::withInit
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 24
+          type: int
+          shouldUseTypeForInitializerInference: true
+        static withoutInit @31
+          reference: <testLibraryFragment>::@topLevelVariable::withoutInit
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 27
+          codeLength: 15
+          type: int
+        static multiWithInit @49
+          reference: <testLibraryFragment>::@topLevelVariable::multiWithInit
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 45
+          codeLength: 21
+          type: int
+          shouldUseTypeForInitializerInference: true
+        static multiWithoutInit @68
+          reference: <testLibraryFragment>::@topLevelVariable::multiWithoutInit
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 68
+          codeLength: 16
+          type: int
+        static multiWithInit2 @86
+          reference: <testLibraryFragment>::@topLevelVariable::multiWithInit2
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 86
+          codeLength: 18
+          type: int
+          shouldUseTypeForInitializerInference: true
+      accessors
+        synthetic static get withInit @-1
+          reference: <testLibraryFragment>::@getter::withInit
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set withInit= @-1
+          reference: <testLibraryFragment>::@setter::withInit
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _withInit @-1
+              type: int
+          returnType: void
+        synthetic static get withoutInit @-1
+          reference: <testLibraryFragment>::@getter::withoutInit
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set withoutInit= @-1
+          reference: <testLibraryFragment>::@setter::withoutInit
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _withoutInit @-1
+              type: int
+          returnType: void
+        synthetic static get multiWithInit @-1
+          reference: <testLibraryFragment>::@getter::multiWithInit
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set multiWithInit= @-1
+          reference: <testLibraryFragment>::@setter::multiWithInit
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _multiWithInit @-1
+              type: int
+          returnType: void
+        synthetic static get multiWithoutInit @-1
+          reference: <testLibraryFragment>::@getter::multiWithoutInit
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set multiWithoutInit= @-1
+          reference: <testLibraryFragment>::@setter::multiWithoutInit
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _multiWithoutInit @-1
+              type: int
+          returnType: void
+        synthetic static get multiWithInit2 @-1
+          reference: <testLibraryFragment>::@getter::multiWithInit2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set multiWithInit2= @-1
+          reference: <testLibraryFragment>::@setter::multiWithInit2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _multiWithInit2 @-1
+              type: int
+          returnType: void
 ''');
   }
 
@@ -23851,277 +24312,278 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static hasDocComment @34
-        reference: <testLibraryFragment>::@topLevelVariable::hasDocComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 0
-        codeLength: 47
-        type: int
-      static hasDocComment2 @49
-        reference: <testLibraryFragment>::@topLevelVariable::hasDocComment2
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        codeOffset: 49
-        codeLength: 14
-        type: int
-      static hasAnnotation @80
-        reference: <testLibraryFragment>::@topLevelVariable::hasAnnotation
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @66
-            name: SimpleIdentifier
-              token: Object @67
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @73
-              rightParenthesis: ) @74
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 66
-        codeLength: 27
-        type: int
-      static hasAnnotation2 @95
-        reference: <testLibraryFragment>::@topLevelVariable::hasAnnotation2
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @66
-            name: SimpleIdentifier
-              token: Object @67
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @73
-              rightParenthesis: ) @74
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 95
-        codeLength: 14
-        type: int
-      static annotationThenComment @156
-        reference: <testLibraryFragment>::@topLevelVariable::annotationThenComment
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @112
-            name: SimpleIdentifier
-              token: Object @113
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @119
-              rightParenthesis: ) @120
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 112
-        codeLength: 65
-        type: int
-      static annotationThenComment2 @179
-        reference: <testLibraryFragment>::@topLevelVariable::annotationThenComment2
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @112
-            name: SimpleIdentifier
-              token: Object @113
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @119
-              rightParenthesis: ) @120
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 179
-        codeLength: 22
-        type: int
-      static commentThenAnnotation @248
-        reference: <testLibraryFragment>::@topLevelVariable::commentThenAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @234
-            name: SimpleIdentifier
-              token: Object @235
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @241
-              rightParenthesis: ) @242
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 204
-        codeLength: 65
-        type: int
-      static commentThenAnnotation2 @271
-        reference: <testLibraryFragment>::@topLevelVariable::commentThenAnnotation2
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 1.\n/// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @234
-            name: SimpleIdentifier
-              token: Object @235
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @241
-              rightParenthesis: ) @242
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 271
-        codeLength: 22
-        type: int
-      static commentAroundAnnotation @340
-        reference: <testLibraryFragment>::@topLevelVariable::commentAroundAnnotation
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @311
-            name: SimpleIdentifier
-              token: Object @312
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @318
-              rightParenthesis: ) @319
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 311
-        codeLength: 52
-        type: int
-      static commentAroundAnnotation2 @365
-        reference: <testLibraryFragment>::@topLevelVariable::commentAroundAnnotation2
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// Comment 2.
-        metadata
-          Annotation
-            atSign: @ @311
-            name: SimpleIdentifier
-              token: Object @312
-              staticElement: dart:core::<fragment>::@class::Object
-              staticType: null
-            arguments: ArgumentList
-              leftParenthesis: ( @318
-              rightParenthesis: ) @319
-            element: dart:core::<fragment>::@class::Object::@constructor::new
-        codeOffset: 365
-        codeLength: 24
-        type: int
-    accessors
-      synthetic static get hasDocComment @-1
-        reference: <testLibraryFragment>::@getter::hasDocComment
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set hasDocComment= @-1
-        reference: <testLibraryFragment>::@setter::hasDocComment
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _hasDocComment @-1
-            type: int
-        returnType: void
-      synthetic static get hasDocComment2 @-1
-        reference: <testLibraryFragment>::@getter::hasDocComment2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set hasDocComment2= @-1
-        reference: <testLibraryFragment>::@setter::hasDocComment2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _hasDocComment2 @-1
-            type: int
-        returnType: void
-      synthetic static get hasAnnotation @-1
-        reference: <testLibraryFragment>::@getter::hasAnnotation
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set hasAnnotation= @-1
-        reference: <testLibraryFragment>::@setter::hasAnnotation
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _hasAnnotation @-1
-            type: int
-        returnType: void
-      synthetic static get hasAnnotation2 @-1
-        reference: <testLibraryFragment>::@getter::hasAnnotation2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set hasAnnotation2= @-1
-        reference: <testLibraryFragment>::@setter::hasAnnotation2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _hasAnnotation2 @-1
-            type: int
-        returnType: void
-      synthetic static get annotationThenComment @-1
-        reference: <testLibraryFragment>::@getter::annotationThenComment
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set annotationThenComment= @-1
-        reference: <testLibraryFragment>::@setter::annotationThenComment
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _annotationThenComment @-1
-            type: int
-        returnType: void
-      synthetic static get annotationThenComment2 @-1
-        reference: <testLibraryFragment>::@getter::annotationThenComment2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set annotationThenComment2= @-1
-        reference: <testLibraryFragment>::@setter::annotationThenComment2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _annotationThenComment2 @-1
-            type: int
-        returnType: void
-      synthetic static get commentThenAnnotation @-1
-        reference: <testLibraryFragment>::@getter::commentThenAnnotation
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set commentThenAnnotation= @-1
-        reference: <testLibraryFragment>::@setter::commentThenAnnotation
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _commentThenAnnotation @-1
-            type: int
-        returnType: void
-      synthetic static get commentThenAnnotation2 @-1
-        reference: <testLibraryFragment>::@getter::commentThenAnnotation2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set commentThenAnnotation2= @-1
-        reference: <testLibraryFragment>::@setter::commentThenAnnotation2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _commentThenAnnotation2 @-1
-            type: int
-        returnType: void
-      synthetic static get commentAroundAnnotation @-1
-        reference: <testLibraryFragment>::@getter::commentAroundAnnotation
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set commentAroundAnnotation= @-1
-        reference: <testLibraryFragment>::@setter::commentAroundAnnotation
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _commentAroundAnnotation @-1
-            type: int
-        returnType: void
-      synthetic static get commentAroundAnnotation2 @-1
-        reference: <testLibraryFragment>::@getter::commentAroundAnnotation2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set commentAroundAnnotation2= @-1
-        reference: <testLibraryFragment>::@setter::commentAroundAnnotation2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _commentAroundAnnotation2 @-1
-            type: int
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static hasDocComment @34
+          reference: <testLibraryFragment>::@topLevelVariable::hasDocComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 0
+          codeLength: 47
+          type: int
+        static hasDocComment2 @49
+          reference: <testLibraryFragment>::@topLevelVariable::hasDocComment2
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          codeOffset: 49
+          codeLength: 14
+          type: int
+        static hasAnnotation @80
+          reference: <testLibraryFragment>::@topLevelVariable::hasAnnotation
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @66
+              name: SimpleIdentifier
+                token: Object @67
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @73
+                rightParenthesis: ) @74
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 66
+          codeLength: 27
+          type: int
+        static hasAnnotation2 @95
+          reference: <testLibraryFragment>::@topLevelVariable::hasAnnotation2
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @66
+              name: SimpleIdentifier
+                token: Object @67
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @73
+                rightParenthesis: ) @74
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 95
+          codeLength: 14
+          type: int
+        static annotationThenComment @156
+          reference: <testLibraryFragment>::@topLevelVariable::annotationThenComment
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @112
+              name: SimpleIdentifier
+                token: Object @113
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @119
+                rightParenthesis: ) @120
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 112
+          codeLength: 65
+          type: int
+        static annotationThenComment2 @179
+          reference: <testLibraryFragment>::@topLevelVariable::annotationThenComment2
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @112
+              name: SimpleIdentifier
+                token: Object @113
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @119
+                rightParenthesis: ) @120
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 179
+          codeLength: 22
+          type: int
+        static commentThenAnnotation @248
+          reference: <testLibraryFragment>::@topLevelVariable::commentThenAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @234
+              name: SimpleIdentifier
+                token: Object @235
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @241
+                rightParenthesis: ) @242
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 204
+          codeLength: 65
+          type: int
+        static commentThenAnnotation2 @271
+          reference: <testLibraryFragment>::@topLevelVariable::commentThenAnnotation2
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 1.\n/// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @234
+              name: SimpleIdentifier
+                token: Object @235
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @241
+                rightParenthesis: ) @242
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 271
+          codeLength: 22
+          type: int
+        static commentAroundAnnotation @340
+          reference: <testLibraryFragment>::@topLevelVariable::commentAroundAnnotation
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @311
+              name: SimpleIdentifier
+                token: Object @312
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @318
+                rightParenthesis: ) @319
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 311
+          codeLength: 52
+          type: int
+        static commentAroundAnnotation2 @365
+          reference: <testLibraryFragment>::@topLevelVariable::commentAroundAnnotation2
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// Comment 2.
+          metadata
+            Annotation
+              atSign: @ @311
+              name: SimpleIdentifier
+                token: Object @312
+                staticElement: dart:core::<fragment>::@class::Object
+                staticType: null
+              arguments: ArgumentList
+                leftParenthesis: ( @318
+                rightParenthesis: ) @319
+              element: dart:core::<fragment>::@class::Object::@constructor::new
+          codeOffset: 365
+          codeLength: 24
+          type: int
+      accessors
+        synthetic static get hasDocComment @-1
+          reference: <testLibraryFragment>::@getter::hasDocComment
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set hasDocComment= @-1
+          reference: <testLibraryFragment>::@setter::hasDocComment
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _hasDocComment @-1
+              type: int
+          returnType: void
+        synthetic static get hasDocComment2 @-1
+          reference: <testLibraryFragment>::@getter::hasDocComment2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set hasDocComment2= @-1
+          reference: <testLibraryFragment>::@setter::hasDocComment2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _hasDocComment2 @-1
+              type: int
+          returnType: void
+        synthetic static get hasAnnotation @-1
+          reference: <testLibraryFragment>::@getter::hasAnnotation
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set hasAnnotation= @-1
+          reference: <testLibraryFragment>::@setter::hasAnnotation
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _hasAnnotation @-1
+              type: int
+          returnType: void
+        synthetic static get hasAnnotation2 @-1
+          reference: <testLibraryFragment>::@getter::hasAnnotation2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set hasAnnotation2= @-1
+          reference: <testLibraryFragment>::@setter::hasAnnotation2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _hasAnnotation2 @-1
+              type: int
+          returnType: void
+        synthetic static get annotationThenComment @-1
+          reference: <testLibraryFragment>::@getter::annotationThenComment
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set annotationThenComment= @-1
+          reference: <testLibraryFragment>::@setter::annotationThenComment
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _annotationThenComment @-1
+              type: int
+          returnType: void
+        synthetic static get annotationThenComment2 @-1
+          reference: <testLibraryFragment>::@getter::annotationThenComment2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set annotationThenComment2= @-1
+          reference: <testLibraryFragment>::@setter::annotationThenComment2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _annotationThenComment2 @-1
+              type: int
+          returnType: void
+        synthetic static get commentThenAnnotation @-1
+          reference: <testLibraryFragment>::@getter::commentThenAnnotation
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set commentThenAnnotation= @-1
+          reference: <testLibraryFragment>::@setter::commentThenAnnotation
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _commentThenAnnotation @-1
+              type: int
+          returnType: void
+        synthetic static get commentThenAnnotation2 @-1
+          reference: <testLibraryFragment>::@getter::commentThenAnnotation2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set commentThenAnnotation2= @-1
+          reference: <testLibraryFragment>::@setter::commentThenAnnotation2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _commentThenAnnotation2 @-1
+              type: int
+          returnType: void
+        synthetic static get commentAroundAnnotation @-1
+          reference: <testLibraryFragment>::@getter::commentAroundAnnotation
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set commentAroundAnnotation= @-1
+          reference: <testLibraryFragment>::@setter::commentAroundAnnotation
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _commentAroundAnnotation @-1
+              type: int
+          returnType: void
+        synthetic static get commentAroundAnnotation2 @-1
+          reference: <testLibraryFragment>::@getter::commentAroundAnnotation2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set commentAroundAnnotation2= @-1
+          reference: <testLibraryFragment>::@setter::commentAroundAnnotation2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _commentAroundAnnotation2 @-1
+              type: int
+          returnType: void
 ''');
   }
 
@@ -24134,37 +24596,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 0
-        codeLength: 13
-        typeParameters
-          covariant T @8
-            codeOffset: 8
-            codeLength: 1
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    functions
-      f @19
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        codeOffset: 14
-        codeLength: 24
-        typeParameters
-          covariant U @21
-            codeOffset: 21
-            codeLength: 13
-            bound: num
-            defaultType: num
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 0
+          codeLength: 13
+          typeParameters
+            covariant T @8
+              codeOffset: 8
+              codeLength: 1
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      functions
+        f @19
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          codeOffset: 14
+          codeLength: 24
+          typeParameters
+            covariant U @21
+              codeOffset: 21
+              codeLength: 13
+              bound: num
+              defaultType: num
+          returnType: void
 ''');
   }
 
@@ -24176,45 +24639,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @10
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: num
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @14
-            staticType: int
-      static const b @23
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          AsExpression
-            expression: SimpleIdentifier
-              token: a @27
-              staticElement: <testLibraryFragment>::@getter::a
-              staticType: num
-            asOperator: as @29
-            type: NamedType
-              name: int @32
-              element: dart:core::<fragment>::@class::int
-              type: int
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: num
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @10
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: num
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @14
+              staticType: int
+        static const b @23
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            AsExpression
+              expression: SimpleIdentifier
+                token: a @27
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: num
+              asOperator: as @29
+              type: NamedType
+                name: int @32
+                element: dart:core::<fragment>::@class::int
+                type: int
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: num
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -24226,53 +24690,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-      static const b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ParenthesizedExpression
-            leftParenthesis: ( @23
-            expression: AssignmentExpression
-              leftHandSide: SimpleIdentifier
-                token: a @24
-                staticElement: <null>
-                staticType: null
-              operator: += @26
-              rightHandSide: IntegerLiteral
-                literal: 1 @29
-                staticType: int
-              readElement: <testLibraryFragment>::@getter::a
-              readType: int
-              writeElement: <testLibraryFragment>::@getter::a
-              writeType: InvalidType
-              staticElement: dart:core::<fragment>::@class::num::@method::+
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
               staticType: int
-            rightParenthesis: ) @30
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+        static const b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ParenthesizedExpression
+              leftParenthesis: ( @23
+              expression: AssignmentExpression
+                leftHandSide: SimpleIdentifier
+                  token: a @24
+                  staticElement: <null>
+                  staticType: null
+                operator: += @26
+                rightHandSide: IntegerLiteral
+                  literal: 1 @29
+                  staticType: int
+                readElement: <testLibraryFragment>::@getter::a
+                readType: int
+                writeElement: <testLibraryFragment>::@getter::a
+                writeType: InvalidType
+                staticElement: dart:core::<fragment>::@class::num::@method::+
+                staticType: int
+              rightParenthesis: ) @30
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -24283,45 +24748,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          CascadeExpression
-            target: IntegerLiteral
-              literal: 0 @10
-              staticType: int
-            cascadeSections
-              PropertyAccess
-                operator: .. @11
-                propertyName: SimpleIdentifier
-                  token: isEven @13
-                  staticElement: dart:core::<fragment>::@class::int::@getter::isEven
-                  staticType: bool
-                staticType: bool
-              MethodInvocation
-                operator: .. @19
-                methodName: SimpleIdentifier
-                  token: abs @21
-                  staticElement: dart:core::<fragment>::@class::int::@method::abs
-                  staticType: int Function()
-                argumentList: ArgumentList
-                  leftParenthesis: ( @24
-                  rightParenthesis: ) @25
-                staticInvokeType: int Function()
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            CascadeExpression
+              target: IntegerLiteral
+                literal: 0 @10
                 staticType: int
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+              cascadeSections
+                PropertyAccess
+                  operator: .. @11
+                  propertyName: SimpleIdentifier
+                    token: isEven @13
+                    staticElement: dart:core::<fragment>::@class::int::@getter::isEven
+                    staticType: bool
+                  staticType: bool
+                MethodInvocation
+                  operator: .. @19
+                  methodName: SimpleIdentifier
+                    token: abs @21
+                    staticElement: dart:core::<fragment>::@class::int::@method::abs
+                    staticType: int Function()
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @24
+                    rightParenthesis: ) @25
+                  staticInvokeType: int Function()
+                  staticType: int
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -24335,76 +24801,77 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const f1 @29
-            reference: <testLibraryFragment>::@class::C::@field::f1
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 1 @34
-                staticType: int
-          static const f2 @56
-            reference: <testLibraryFragment>::@class::C::@field::f2
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              PrefixedIdentifier
-                prefix: SimpleIdentifier
-                  token: C @61
-                  staticElement: <testLibraryFragment>::@class::C
-                  staticType: null
-                period: . @62
-                identifier: SimpleIdentifier
-                  token: f1 @63
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const f1 @29
+              reference: <testLibraryFragment>::@class::C::@field::f1
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 1 @34
+                  staticType: int
+            static const f2 @56
+              reference: <testLibraryFragment>::@class::C::@field::f2
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                PrefixedIdentifier
+                  prefix: SimpleIdentifier
+                    token: C @61
+                    staticElement: <testLibraryFragment>::@class::C
+                    staticType: null
+                  period: . @62
+                  identifier: SimpleIdentifier
+                    token: f1 @63
+                    staticElement: <testLibraryFragment>::@class::C::@getter::f1
+                    staticType: int
                   staticElement: <testLibraryFragment>::@class::C::@getter::f1
                   staticType: int
-                staticElement: <testLibraryFragment>::@class::C::@getter::f1
-                staticType: int
-          static const f3 @67
-            reference: <testLibraryFragment>::@class::C::@field::f3
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              PrefixedIdentifier
-                prefix: SimpleIdentifier
-                  token: C @72
-                  staticElement: <testLibraryFragment>::@class::C
-                  staticType: null
-                period: . @73
-                identifier: SimpleIdentifier
-                  token: f2 @74
+            static const f3 @67
+              reference: <testLibraryFragment>::@class::C::@field::f3
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                PrefixedIdentifier
+                  prefix: SimpleIdentifier
+                    token: C @72
+                    staticElement: <testLibraryFragment>::@class::C
+                    staticType: null
+                  period: . @73
+                  identifier: SimpleIdentifier
+                    token: f2 @74
+                    staticElement: <testLibraryFragment>::@class::C::@getter::f2
+                    staticType: int
                   staticElement: <testLibraryFragment>::@class::C::@getter::f2
                   staticType: int
-                staticElement: <testLibraryFragment>::@class::C::@getter::f2
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get f1 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f1
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic static get f2 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f2
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic static get f3 @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f3
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get f1 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f1
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic static get f2 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f2
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic static get f3 @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f3
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -24421,108 +24888,109 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        fields
-          final t @23
-            reference: <testLibraryFragment>::@class::C::@field::t
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: T
-        constructors
-          const @34
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional final this.t @41
-                type: T
-                field: <testLibraryFragment>::@class::C::@field::t
-          const named @55
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 54
-            nameEnd: 60
-            parameters
-              requiredPositional final this.t @66
-                type: T
-                field: <testLibraryFragment>::@class::C::@field::t
-        accessors
-          synthetic get t @-1
-            reference: <testLibraryFragment>::@class::C::@getter::t
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: T
-    topLevelVariables
-      static const x @85
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @89
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @95
-                element: <testLibraryFragment>::@class::C
-                type: C<int>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::C::@constructor::new
-                substitution: {T: int}
-            argumentList: ArgumentList
-              leftParenthesis: ( @96
-              arguments
-                IntegerLiteral
-                  literal: 0 @97
-                  staticType: int
-              rightParenthesis: ) @98
-            staticType: C<int>
-      static const y @114
-        reference: <testLibraryFragment>::@topLevelVariable::y
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @118
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @124
-                element: <testLibraryFragment>::@class::C
-                type: C<int>
-              period: . @125
-              name: SimpleIdentifier
-                token: named @126
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          fields
+            final t @23
+              reference: <testLibraryFragment>::@class::C::@field::t
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: T
+          constructors
+            const @34
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional final this.t @41
+                  type: T
+                  field: <testLibraryFragment>::@class::C::@field::t
+            const named @55
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 54
+              nameEnd: 60
+              parameters
+                requiredPositional final this.t @66
+                  type: T
+                  field: <testLibraryFragment>::@class::C::@field::t
+          accessors
+            synthetic get t @-1
+              reference: <testLibraryFragment>::@class::C::@getter::t
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: T
+      topLevelVariables
+        static const x @85
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @89
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @95
+                  element: <testLibraryFragment>::@class::C
+                  type: C<int>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::C::@constructor::new
+                  substitution: {T: int}
+              argumentList: ArgumentList
+                leftParenthesis: ( @96
+                arguments
+                  IntegerLiteral
+                    literal: 0 @97
+                    staticType: int
+                rightParenthesis: ) @98
+              staticType: C<int>
+        static const y @114
+          reference: <testLibraryFragment>::@topLevelVariable::y
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @118
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @124
+                  element: <testLibraryFragment>::@class::C
+                  type: C<int>
+                period: . @125
+                name: SimpleIdentifier
+                  token: named @126
+                  staticElement: ConstructorMember
+                    base: <testLibraryFragment>::@class::C::@constructor::named
+                    substitution: {T: dynamic}
+                  staticType: null
                 staticElement: ConstructorMember
                   base: <testLibraryFragment>::@class::C::@constructor::named
-                  substitution: {T: dynamic}
-                staticType: null
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::C::@constructor::named
-                substitution: {T: int}
-            argumentList: ArgumentList
-              leftParenthesis: ( @131
-              arguments
-                IntegerLiteral
-                  literal: 0 @132
-                  staticType: int
-              rightParenthesis: ) @133
-            staticType: C<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
-      synthetic static get y @-1
-        reference: <testLibraryFragment>::@getter::y
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+                  substitution: {T: int}
+              argumentList: ArgumentList
+                leftParenthesis: ( @131
+                arguments
+                  IntegerLiteral
+                    literal: 0 @132
+                    staticType: int
+                rightParenthesis: ) @133
+              staticType: C<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
+        synthetic static get y @-1
+          reference: <testLibraryFragment>::@getter::y
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
     var x = library.definingCompilationUnit.topLevelVariables[0];
     var xExpr = x.constantInitializer as InstanceCreationExpression;
@@ -24547,44 +25015,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          named @14
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 13
-            nameEnd: 19
-    topLevelVariables
-      static const v @31
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: A Function()
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ConstructorReference
-            constructorName: ConstructorName
-              type: NamedType
-                name: A @35
-                element: <testLibraryFragment>::@class::A
-                type: null
-              period: . @36
-              name: SimpleIdentifier
-                token: named @37
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            named @14
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 13
+              nameEnd: 19
+      topLevelVariables
+        static const v @31
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: A Function()
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ConstructorReference
+              constructorName: ConstructorName
+                type: NamedType
+                  name: A @35
+                  element: <testLibraryFragment>::@class::A
+                  type: null
+                period: . @36
+                name: SimpleIdentifier
+                  token: named @37
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::named
+                  staticType: null
                 staticElement: <testLibraryFragment>::@class::A::@constructor::named
-                staticType: null
-              staticElement: <testLibraryFragment>::@class::A::@constructor::named
-            staticType: A Function()
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: A Function()
+              staticType: A Function()
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: A Function()
 ''');
   }
 
@@ -24598,32 +25067,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final f @22
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 42 @26
-                staticType: int
-        constructors
-          const @38
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final f @22
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 42 @26
+                  staticType: int
+          constructors
+            const @38
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
 ''');
   }
 
@@ -24636,40 +25106,41 @@
     checkElementText(library, '''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @44
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: void Function(int)
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          FunctionReference
-            function: SimpleIdentifier
-              token: f @48
-              staticElement: <testLibraryFragment>::@function::f
-              staticType: void Function<T>(T)
-            staticType: void Function(int)
-            typeArgumentTypes
-              int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: void Function(int)
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        parameters
-          requiredPositional a @12
-            type: T
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @44
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: void Function(int)
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            FunctionReference
+              function: SimpleIdentifier
+                token: f @48
+                staticElement: <testLibraryFragment>::@function::f
+                staticType: void Function<T>(T)
+              staticType: void Function(int)
+              typeArgumentTypes
+                int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: void Function(int)
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          parameters
+            requiredPositional a @12
+              type: T
+          returnType: void
 ''');
   }
 
@@ -24681,48 +25152,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @24
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: void Function(int)
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          FunctionReference
-            function: SimpleIdentifier
-              token: f @28
-              staticElement: <testLibraryFragment>::@function::f
-              staticType: void Function<T>(T)
-            typeArguments: TypeArgumentList
-              leftBracket: < @29
-              arguments
-                NamedType
-                  name: int @30
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @33
-            staticType: void Function(int)
-            typeArgumentTypes
-              int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: void Function(int)
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        parameters
-          requiredPositional a @12
-            type: T
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @24
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: void Function(int)
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            FunctionReference
+              function: SimpleIdentifier
+                token: f @28
+                staticElement: <testLibraryFragment>::@function::f
+                staticType: void Function<T>(T)
+              typeArguments: TypeArgumentList
+                leftBracket: < @29
+                arguments
+                  NamedType
+                    name: int @30
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @33
+              staticType: void Function(int)
+              typeArgumentTypes
+                int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: void Function(int)
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          parameters
+            requiredPositional a @12
+              type: T
+          returnType: void
 ''');
   }
 
@@ -24735,67 +25207,68 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: List<int>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            leftBracket: [ @10
-            elements
-              IntegerLiteral
-                literal: 0 @11
-                staticType: int
-            rightBracket: ] @12
-            staticType: List<int>
-      static const b @21
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @25
-            staticType: int
-      static const c @34
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IndexExpression
-            target: SimpleIdentifier
-              token: a @38
-              staticElement: <testLibraryFragment>::@getter::a
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: List<int>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              leftBracket: [ @10
+              elements
+                IntegerLiteral
+                  literal: 0 @11
+                  staticType: int
+              rightBracket: ] @12
               staticType: List<int>
-            leftBracket: [ @39
-            index: SimpleIdentifier
-              token: b @40
-              staticElement: <testLibraryFragment>::@getter::b
+        static const b @21
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @25
               staticType: int
-            rightBracket: ] @41
-            staticElement: MethodMember
-              base: dart:core::<fragment>::@class::List::@method::[]
-              substitution: {E: int}
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: List<int>
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+        static const c @34
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IndexExpression
+              target: SimpleIdentifier
+                token: a @38
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: List<int>
+              leftBracket: [ @39
+              index: SimpleIdentifier
+                token: b @40
+                staticElement: <testLibraryFragment>::@getter::b
+                staticType: int
+              rightBracket: ] @41
+              staticElement: MethodMember
+                base: dart:core::<fragment>::@class::List::@method::[]
+                substitution: {E: int}
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: List<int>
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -24821,99 +25294,100 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class P @6
-        reference: <testLibraryFragment>::@class::P
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::P::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::P
-      class P1 @35
-        reference: <testLibraryFragment>::@class::P1
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @38
-            defaultType: dynamic
-        supertype: P<T>
-        constructors
-          const @64
-            reference: <testLibraryFragment>::@class::P1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::P1
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::P::@constructor::new
-              substitution: {T: T}
-      class P2 @79
-        reference: <testLibraryFragment>::@class::P2
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @82
-            defaultType: dynamic
-        supertype: P<T>
-        constructors
-          const @108
-            reference: <testLibraryFragment>::@class::P2::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::P2
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::P::@constructor::new
-              substitution: {T: T}
-    topLevelVariables
-      static const values @131
-        reference: <testLibraryFragment>::@topLevelVariable::values
-        enclosingElement: <testLibraryFragment>
-        type: List<P<dynamic>>
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          ListLiteral
-            leftBracket: [ @140
-            elements
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: P1 @144
-                    element: <testLibraryFragment>::@class::P1
-                    type: P1<dynamic>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@class::P1::@constructor::new
-                    substitution: {T: dynamic}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @146
-                  rightParenthesis: ) @147
-                staticType: P1<dynamic>
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: P2 @152
-                    typeArguments: TypeArgumentList
-                      leftBracket: < @154
-                      arguments
-                        NamedType
-                          name: int @155
-                          element: dart:core::<fragment>::@class::int
-                          type: int
-                      rightBracket: > @158
-                    element: <testLibraryFragment>::@class::P2
-                    type: P2<int>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@class::P2::@constructor::new
-                    substitution: {T: int}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @159
-                  rightParenthesis: ) @160
-                staticType: P2<int>
-            rightBracket: ] @163
-            staticType: List<P<dynamic>>
-    accessors
-      synthetic static get values @-1
-        reference: <testLibraryFragment>::@getter::values
-        enclosingElement: <testLibraryFragment>
-        returnType: List<P<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class P @6
+          reference: <testLibraryFragment>::@class::P
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::P::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::P
+        class P1 @35
+          reference: <testLibraryFragment>::@class::P1
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @38
+              defaultType: dynamic
+          supertype: P<T>
+          constructors
+            const @64
+              reference: <testLibraryFragment>::@class::P1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::P1
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::P::@constructor::new
+                substitution: {T: T}
+        class P2 @79
+          reference: <testLibraryFragment>::@class::P2
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @82
+              defaultType: dynamic
+          supertype: P<T>
+          constructors
+            const @108
+              reference: <testLibraryFragment>::@class::P2::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::P2
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::P::@constructor::new
+                substitution: {T: T}
+      topLevelVariables
+        static const values @131
+          reference: <testLibraryFragment>::@topLevelVariable::values
+          enclosingElement: <testLibraryFragment>
+          type: List<P<dynamic>>
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            ListLiteral
+              leftBracket: [ @140
+              elements
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: P1 @144
+                      element: <testLibraryFragment>::@class::P1
+                      type: P1<dynamic>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@class::P1::@constructor::new
+                      substitution: {T: dynamic}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @146
+                    rightParenthesis: ) @147
+                  staticType: P1<dynamic>
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: P2 @152
+                      typeArguments: TypeArgumentList
+                        leftBracket: < @154
+                        arguments
+                          NamedType
+                            name: int @155
+                            element: dart:core::<fragment>::@class::int
+                            type: int
+                        rightBracket: > @158
+                      element: <testLibraryFragment>::@class::P2
+                      type: P2<int>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@class::P2::@constructor::new
+                      substitution: {T: int}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @159
+                    rightParenthesis: ) @160
+                  staticType: P2<int>
+              rightBracket: ] @163
+              staticType: List<P<dynamic>>
+      accessors
+        synthetic static get values @-1
+          reference: <testLibraryFragment>::@getter::values
+          enclosingElement: <testLibraryFragment>
+          returnType: List<P<dynamic>>
 ''');
   }
 
@@ -24927,52 +25401,53 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const f @25
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              BinaryExpression
-                leftOperand: IntegerLiteral
-                  literal: 1 @29
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const f @25
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                BinaryExpression
+                  leftOperand: IntegerLiteral
+                    literal: 1 @29
+                    staticType: int
+                  operator: + @31
+                  rightOperand: MethodInvocation
+                    methodName: SimpleIdentifier
+                      token: foo @33
+                      staticElement: <testLibraryFragment>::@function::foo
+                      staticType: int Function()
+                    argumentList: ArgumentList
+                      leftParenthesis: ( @36
+                      rightParenthesis: ) @37
+                    staticInvokeType: int Function()
+                    staticType: int
+                  staticElement: dart:core::<fragment>::@class::num::@method::+
+                  staticInvokeType: num Function(num)
                   staticType: int
-                operator: + @31
-                rightOperand: MethodInvocation
-                  methodName: SimpleIdentifier
-                    token: foo @33
-                    staticElement: <testLibraryFragment>::@function::foo
-                    staticType: int Function()
-                  argumentList: ArgumentList
-                    leftParenthesis: ( @36
-                    rightParenthesis: ) @37
-                  staticInvokeType: int Function()
-                  staticType: int
-                staticElement: dart:core::<fragment>::@class::num::@method::+
-                staticInvokeType: num Function(num)
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-    functions
-      foo @46
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+      functions
+        foo @46
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -24986,33 +25461,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final f @18
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-    functions
-      foo @39
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final f @18
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+      functions
+        foo @39
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -25023,25 +25499,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int Function()
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: _notSerializableExpression @-1
-            staticElement: <null>
-            staticType: null
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function()
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int Function()
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: _notSerializableExpression @-1
+              staticElement: <null>
+              staticType: null
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function()
 ''');
   }
 
@@ -25054,26 +25531,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @19
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            constantInitializers
-              AssertInitializer
-                assertKeyword: assert @25
-                leftParenthesis: ( @31
-                condition: SimpleIdentifier
-                  token: _notSerializableExpression @-1
-                  staticElement: <null>
-                  staticType: null
-                rightParenthesis: ) @46
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @19
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              constantInitializers
+                AssertInitializer
+                  assertKeyword: assert @25
+                  leftParenthesis: ( @31
+                  condition: SimpleIdentifier
+                    token: _notSerializableExpression @-1
+                    staticElement: <null>
+                    staticType: null
+                  rightParenthesis: ) @46
 ''');
   }
 
@@ -25086,31 +25564,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @19
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            constantInitializers
-              AssertInitializer
-                assertKeyword: assert @25
-                leftParenthesis: ( @31
-                condition: SimpleIdentifier
-                  token: b @32
-                  staticElement: <null>
-                  staticType: InvalidType
-                comma: , @33
-                message: SimpleIdentifier
-                  token: _notSerializableExpression @-1
-                  staticElement: <null>
-                  staticType: null
-                rightParenthesis: ) @42
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @19
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              constantInitializers
+                AssertInitializer
+                  assertKeyword: assert @25
+                  leftParenthesis: ( @31
+                  condition: SimpleIdentifier
+                    token: b @32
+                    staticElement: <null>
+                    staticType: InvalidType
+                  comma: , @33
+                  message: SimpleIdentifier
+                    token: _notSerializableExpression @-1
+                    staticElement: <null>
+                    staticType: null
+                  rightParenthesis: ) @42
 ''');
   }
 
@@ -25124,38 +25603,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          final foo @26
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: Object?
-        constructors
-          const @39
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            constantInitializers
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: foo @45
-                  staticElement: <testLibraryFragment>::@class::A::@field::foo
-                  staticType: null
-                equals: = @49
-                expression: SimpleIdentifier
-                  token: _notSerializableExpression @-1
-                  staticElement: <null>
-                  staticType: null
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: Object?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            final foo @26
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: Object?
+          constructors
+            const @39
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              constantInitializers
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: foo @45
+                    staticElement: <testLibraryFragment>::@class::A::@field::foo
+                    staticType: null
+                  equals: = @49
+                  expression: SimpleIdentifier
+                    token: _notSerializableExpression @-1
+                    staticElement: <null>
+                    staticType: null
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: Object?
 ''');
   }
 
@@ -25166,25 +25646,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: _notSerializableExpression @-1
-            staticElement: <null>
-            staticType: null
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: _notSerializableExpression @-1
+              staticElement: <null>
+              staticType: null
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -25198,43 +25679,44 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @27
-                type: Object
-              requiredPositional b @37
-                type: Object
-          const named @51
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 50
-            nameEnd: 56
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @61
-                argumentList: ArgumentList
-                  leftParenthesis: ( @65
-                  arguments
-                    IntegerLiteral
-                      literal: 0 @66
-                      staticType: int
-                    SimpleIdentifier
-                      token: _notSerializableExpression @-1
-                      staticElement: <null>
-                      staticType: null
-                  rightParenthesis: ) @76
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            redirectedConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @27
+                  type: Object
+                requiredPositional b @37
+                  type: Object
+            const named @51
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 50
+              nameEnd: 56
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @61
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @65
+                    arguments
+                      IntegerLiteral
+                        literal: 0 @66
+                        staticType: int
+                      SimpleIdentifier
+                        token: _notSerializableExpression @-1
+                        staticElement: <null>
+                        staticType: null
+                    rightParenthesis: ) @76
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              redirectedConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -25250,46 +25732,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional a @27
-                type: Object
-              requiredPositional b @37
-                type: Object
-      class B @49
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          const @71
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @77
-                argumentList: ArgumentList
-                  leftParenthesis: ( @82
-                  arguments
-                    IntegerLiteral
-                      literal: 0 @83
-                      staticType: int
-                    SimpleIdentifier
-                      token: _notSerializableExpression @-1
-                      staticElement: <null>
-                      staticType: null
-                  rightParenthesis: ) @93
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional a @27
+                  type: Object
+                requiredPositional b @37
+                  type: Object
+        class B @49
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            const @71
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @77
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @82
+                    arguments
+                      IntegerLiteral
+                        literal: 0 @83
+                        staticType: int
+                      SimpleIdentifier
+                        token: _notSerializableExpression @-1
+                        staticElement: <null>
+                        staticType: null
+                    rightParenthesis: ) @93
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
 ''');
   }
 
@@ -25310,38 +25793,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          MethodInvocation
-            target: SimpleStringLiteral
-              literal: 'abc' @10
-            operator: . @15
-            methodName: SimpleIdentifier
-              token: codeUnitAt @16
-              staticElement: dart:core::<fragment>::@class::String::@method::codeUnitAt
-              staticType: int Function(int)
-            argumentList: ArgumentList
-              leftParenthesis: ( @26
-              arguments
-                IntegerLiteral
-                  literal: 0 @27
-                  staticType: int
-              rightParenthesis: ) @28
-            staticInvokeType: int Function(int)
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            MethodInvocation
+              target: SimpleStringLiteral
+                literal: 'abc' @10
+              operator: . @15
+              methodName: SimpleIdentifier
+                token: codeUnitAt @16
+                staticElement: dart:core::<fragment>::@class::String::@method::codeUnitAt
+                staticType: int Function(int)
+              argumentList: ArgumentList
+                leftParenthesis: ( @26
+                arguments
+                  IntegerLiteral
+                    literal: 0 @27
+                    staticType: int
+                rightParenthesis: ) @28
+              staticInvokeType: int Function(int)
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -25352,25 +25836,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: (int,)
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: _notSerializableExpression @-1
-            staticElement: <null>
-            staticType: null
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: (int,)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: (int,)
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: _notSerializableExpression @-1
+              staticElement: <null>
+              staticType: null
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: (int,)
 ''');
   }
 
@@ -25382,44 +25867,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @10
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @10
+                staticType: int
+              operator: + @12
+              rightOperand: MethodInvocation
+                methodName: SimpleIdentifier
+                  token: foo @14
+                  staticElement: <testLibraryFragment>::@function::foo
+                  staticType: int Function()
+                argumentList: ArgumentList
+                  leftParenthesis: ( @17
+                  rightParenthesis: ) @18
+                staticInvokeType: int Function()
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticInvokeType: num Function(num)
               staticType: int
-            operator: + @12
-            rightOperand: MethodInvocation
-              methodName: SimpleIdentifier
-                token: foo @14
-                staticElement: <testLibraryFragment>::@function::foo
-                staticType: int Function()
-              argumentList: ArgumentList
-                leftParenthesis: ( @17
-                rightParenthesis: ) @18
-              staticInvokeType: int Function()
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticInvokeType: num Function(num)
-            staticType: int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-    functions
-      foo @25
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+      functions
+        foo @25
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -25430,25 +25916,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: _notSerializableExpression @-1
-            staticElement: <null>
-            staticType: null
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: _notSerializableExpression @-1
+              staticElement: <null>
+              staticType: null
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -25460,46 +25947,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @10
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @14
-            staticType: int
-      static const b @28
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          BinaryExpression
-            leftOperand: SimpleIdentifier
-              token: a @32
-              staticElement: <testLibraryFragment>::@getter::a
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @10
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @14
               staticType: int
-            operator: + @34
-            rightOperand: IntegerLiteral
-              literal: 5 @36
+        static const b @28
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            BinaryExpression
+              leftOperand: SimpleIdentifier
+                token: a @32
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: int
+              operator: + @34
+              rightOperand: IntegerLiteral
+                literal: 5 @36
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticInvokeType: num Function(num)
               staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticInvokeType: num Function(num)
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
 ''');
   }
 
@@ -25513,80 +26001,81 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant K @8
-            defaultType: dynamic
-          covariant V @11
-            defaultType: dynamic
-        constructors
-          const named @26
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 25
-            nameEnd: 31
-            parameters
-              requiredPositional k @34
-                type: K
-              requiredPositional v @39
-                type: V
-    topLevelVariables
-      static const V @51
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @55
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @61
-                typeArguments: TypeArgumentList
-                  leftBracket: < @62
-                  arguments
-                    NamedType
-                      name: int @63
-                      element: dart:core::<fragment>::@class::int
-                      type: int
-                    NamedType
-                      name: String @68
-                      element: dart:core::<fragment>::@class::String
-                      type: String
-                  rightBracket: > @74
-                element: <testLibraryFragment>::@class::C
-                type: C<int, String>
-              period: . @75
-              name: SimpleIdentifier
-                token: named @76
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant K @8
+              defaultType: dynamic
+            covariant V @11
+              defaultType: dynamic
+          constructors
+            const named @26
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 25
+              nameEnd: 31
+              parameters
+                requiredPositional k @34
+                  type: K
+                requiredPositional v @39
+                  type: V
+      topLevelVariables
+        static const V @51
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @55
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @61
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @62
+                    arguments
+                      NamedType
+                        name: int @63
+                        element: dart:core::<fragment>::@class::int
+                        type: int
+                      NamedType
+                        name: String @68
+                        element: dart:core::<fragment>::@class::String
+                        type: String
+                    rightBracket: > @74
+                  element: <testLibraryFragment>::@class::C
+                  type: C<int, String>
+                period: . @75
+                name: SimpleIdentifier
+                  token: named @76
+                  staticElement: ConstructorMember
+                    base: <testLibraryFragment>::@class::C::@constructor::named
+                    substitution: {K: int, V: String}
+                  staticType: null
                 staticElement: ConstructorMember
                   base: <testLibraryFragment>::@class::C::@constructor::named
                   substitution: {K: int, V: String}
-                staticType: null
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::C::@constructor::named
-                substitution: {K: int, V: String}
-            argumentList: ArgumentList
-              leftParenthesis: ( @81
-              arguments
-                IntegerLiteral
-                  literal: 1 @82
-                  staticType: int
-                SimpleStringLiteral
-                  literal: '222' @85
-              rightParenthesis: ) @90
-            staticType: C<int, String>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<int, String>
+              argumentList: ArgumentList
+                leftParenthesis: ( @81
+                arguments
+                  IntegerLiteral
+                    literal: 1 @82
+                    staticType: int
+                  SimpleStringLiteral
+                    literal: '222' @85
+                rightParenthesis: ) @90
+              staticType: C<int, String>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<int, String>
 ''');
   }
 
@@ -25607,64 +26096,65 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @23
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @27
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @33
-                typeArguments: TypeArgumentList
-                  leftBracket: < @34
-                  arguments
-                    NamedType
-                      name: int @35
-                      element: dart:core::<fragment>::@class::int
-                      type: int
-                    NamedType
-                      name: String @40
-                      element: dart:core::<fragment>::@class::String
-                      type: String
-                  rightBracket: > @46
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C<int, String>
-              period: . @47
-              name: SimpleIdentifier
-                token: named @48
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @23
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @27
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @33
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @34
+                    arguments
+                      NamedType
+                        name: int @35
+                        element: dart:core::<fragment>::@class::int
+                        type: int
+                      NamedType
+                        name: String @40
+                        element: dart:core::<fragment>::@class::String
+                        type: String
+                    rightBracket: > @46
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C<int, String>
+                period: . @47
+                name: SimpleIdentifier
+                  token: named @48
+                  staticElement: ConstructorMember
+                    base: package:test/a.dart::<fragment>::@class::C::@constructor::named
+                    substitution: {K: int, V: String}
+                  staticType: null
                 staticElement: ConstructorMember
                   base: package:test/a.dart::<fragment>::@class::C::@constructor::named
                   substitution: {K: int, V: String}
-                staticType: null
-              staticElement: ConstructorMember
-                base: package:test/a.dart::<fragment>::@class::C::@constructor::named
-                substitution: {K: int, V: String}
-            argumentList: ArgumentList
-              leftParenthesis: ( @53
-              arguments
-                IntegerLiteral
-                  literal: 1 @54
-                  staticType: int
-                SimpleStringLiteral
-                  literal: '222' @57
-              rightParenthesis: ) @62
-            staticType: C<int, String>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<int, String>
+              argumentList: ArgumentList
+                leftParenthesis: ( @53
+                arguments
+                  IntegerLiteral
+                    literal: 1 @54
+                    staticType: int
+                  SimpleStringLiteral
+                    literal: '222' @57
+                rightParenthesis: ) @62
+              staticType: C<int, String>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<int, String>
 ''');
   }
 
@@ -25690,73 +26180,74 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @32
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @38
-                  period: . @39
-                  element: <testLibraryFragment>::@prefix::p
-                name: C @40
-                typeArguments: TypeArgumentList
-                  leftBracket: < @41
-                  arguments
-                    NamedType
-                      name: int @42
-                      element: dart:core::<fragment>::@class::int
-                      type: int
-                    NamedType
-                      name: String @47
-                      element: dart:core::<fragment>::@class::String
-                      type: String
-                  rightBracket: > @53
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C<int, String>
-              period: . @54
-              name: SimpleIdentifier
-                token: named @55
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @32
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @38
+                    period: . @39
+                    element: <testLibraryFragment>::@prefix::p
+                  name: C @40
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @41
+                    arguments
+                      NamedType
+                        name: int @42
+                        element: dart:core::<fragment>::@class::int
+                        type: int
+                      NamedType
+                        name: String @47
+                        element: dart:core::<fragment>::@class::String
+                        type: String
+                    rightBracket: > @53
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C<int, String>
+                period: . @54
+                name: SimpleIdentifier
+                  token: named @55
+                  staticElement: ConstructorMember
+                    base: package:test/a.dart::<fragment>::@class::C::@constructor::named
+                    substitution: {K: int, V: String}
+                  staticType: null
                 staticElement: ConstructorMember
                   base: package:test/a.dart::<fragment>::@class::C::@constructor::named
                   substitution: {K: int, V: String}
-                staticType: null
-              staticElement: ConstructorMember
-                base: package:test/a.dart::<fragment>::@class::C::@constructor::named
-                substitution: {K: int, V: String}
-            argumentList: ArgumentList
-              leftParenthesis: ( @60
-              arguments
-                IntegerLiteral
-                  literal: 1 @61
-                  staticType: int
-                SimpleStringLiteral
-                  literal: '222' @64
-              rightParenthesis: ) @69
-            staticType: C<int, String>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<int, String>
+              argumentList: ArgumentList
+                leftParenthesis: ( @60
+                arguments
+                  IntegerLiteral
+                    literal: 1 @61
+                    staticType: int
+                  SimpleStringLiteral
+                    literal: '222' @64
+                rightParenthesis: ) @69
+              staticType: C<int, String>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<int, String>
 ''');
   }
 
@@ -25770,48 +26261,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant K @8
-            defaultType: dynamic
-          covariant V @11
-            defaultType: dynamic
-        constructors
-          const @24
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static const V @37
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<dynamic, dynamic>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @41
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @47
-                element: <testLibraryFragment>::@class::C
-                type: C<dynamic, dynamic>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::C::@constructor::new
-                substitution: {K: dynamic, V: dynamic}
-            argumentList: ArgumentList
-              leftParenthesis: ( @48
-              rightParenthesis: ) @49
-            staticType: C<dynamic, dynamic>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<dynamic, dynamic>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant K @8
+              defaultType: dynamic
+            covariant V @11
+              defaultType: dynamic
+          constructors
+            const @24
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static const V @37
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<dynamic, dynamic>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @41
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @47
+                  element: <testLibraryFragment>::@class::C
+                  type: C<dynamic, dynamic>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::C::@constructor::new
+                  substitution: {K: dynamic, V: dynamic}
+              argumentList: ArgumentList
+                leftParenthesis: ( @48
+                rightParenthesis: ) @49
+              staticType: C<dynamic, dynamic>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<dynamic, dynamic>
 ''');
   }
 
@@ -25826,64 +26318,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        fields
-          final t @23
-            reference: <testLibraryFragment>::@class::A::@field::t
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: T
-        constructors
-          const @34
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional final this.t @41
-                type: T
-                field: <testLibraryFragment>::@class::A::@field::t
-        accessors
-          synthetic get t @-1
-            reference: <testLibraryFragment>::@class::A::@getter::t
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: T
-    topLevelVariables
-      static const a @60
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @64
-            constructorName: ConstructorName
-              type: NamedType
-                name: A @70
-                element: <testLibraryFragment>::@class::A
-                type: A<int>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::A::@constructor::new
-                substitution: {T: int}
-            argumentList: ArgumentList
-              leftParenthesis: ( @71
-              arguments
-                IntegerLiteral
-                  literal: 0 @72
-                  staticType: int
-              rightParenthesis: ) @73
-            staticType: A<int>
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          fields
+            final t @23
+              reference: <testLibraryFragment>::@class::A::@field::t
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: T
+          constructors
+            const @34
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional final this.t @41
+                  type: T
+                  field: <testLibraryFragment>::@class::A::@field::t
+          accessors
+            synthetic get t @-1
+              reference: <testLibraryFragment>::@class::A::@getter::t
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: T
+      topLevelVariables
+        static const a @60
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @64
+              constructorName: ConstructorName
+                type: NamedType
+                  name: A @70
+                  element: <testLibraryFragment>::@class::A
+                  type: A<int>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::A::@constructor::new
+                  substitution: {T: int}
+              argumentList: ArgumentList
+                leftParenthesis: ( @71
+                arguments
+                  IntegerLiteral
+                    literal: 0 @72
+                    staticType: int
+                rightParenthesis: ) @73
+              staticType: A<int>
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -25897,60 +26390,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant K @8
-            defaultType: dynamic
-          covariant V @11
-            defaultType: dynamic
-        constructors
-          const @24
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static const V @37
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @41
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @47
-                typeArguments: TypeArgumentList
-                  leftBracket: < @48
-                  arguments
-                    NamedType
-                      name: int @49
-                      element: dart:core::<fragment>::@class::int
-                      type: int
-                    NamedType
-                      name: String @54
-                      element: dart:core::<fragment>::@class::String
-                      type: String
-                  rightBracket: > @60
-                element: <testLibraryFragment>::@class::C
-                type: C<int, String>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::C::@constructor::new
-                substitution: {K: int, V: String}
-            argumentList: ArgumentList
-              leftParenthesis: ( @61
-              rightParenthesis: ) @62
-            staticType: C<int, String>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<int, String>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant K @8
+              defaultType: dynamic
+            covariant V @11
+              defaultType: dynamic
+          constructors
+            const @24
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static const V @37
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @41
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @47
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @48
+                    arguments
+                      NamedType
+                        name: int @49
+                        element: dart:core::<fragment>::@class::int
+                        type: int
+                      NamedType
+                        name: String @54
+                        element: dart:core::<fragment>::@class::String
+                        type: String
+                    rightBracket: > @60
+                  element: <testLibraryFragment>::@class::C
+                  type: C<int, String>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::C::@constructor::new
+                  substitution: {K: int, V: String}
+              argumentList: ArgumentList
+                leftParenthesis: ( @61
+                rightParenthesis: ) @62
+              staticType: C<int, String>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<int, String>
 ''');
   }
 
@@ -25971,51 +26465,52 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @23
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @27
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @33
-                typeArguments: TypeArgumentList
-                  leftBracket: < @34
-                  arguments
-                    NamedType
-                      name: int @35
-                      element: dart:core::<fragment>::@class::int
-                      type: int
-                    NamedType
-                      name: String @40
-                      element: dart:core::<fragment>::@class::String
-                      type: String
-                  rightBracket: > @46
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C<int, String>
-              staticElement: ConstructorMember
-                base: package:test/a.dart::<fragment>::@class::C::@constructor::new
-                substitution: {K: int, V: String}
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
-            staticType: C<int, String>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<int, String>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @23
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @27
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @33
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @34
+                    arguments
+                      NamedType
+                        name: int @35
+                        element: dart:core::<fragment>::@class::int
+                        type: int
+                      NamedType
+                        name: String @40
+                        element: dart:core::<fragment>::@class::String
+                        type: String
+                    rightBracket: > @46
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C<int, String>
+                staticElement: ConstructorMember
+                  base: package:test/a.dart::<fragment>::@class::C::@constructor::new
+                  substitution: {K: int, V: String}
+              argumentList: ArgumentList
+                leftParenthesis: ( @47
+                rightParenthesis: ) @48
+              staticType: C<int, String>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<int, String>
 ''');
   }
 
@@ -26041,60 +26536,61 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @32
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @38
-                  period: . @39
-                  element: <testLibraryFragment>::@prefix::p
-                name: C @40
-                typeArguments: TypeArgumentList
-                  leftBracket: < @41
-                  arguments
-                    NamedType
-                      name: int @42
-                      element: dart:core::<fragment>::@class::int
-                      type: int
-                    NamedType
-                      name: String @47
-                      element: dart:core::<fragment>::@class::String
-                      type: String
-                  rightBracket: > @53
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C<int, String>
-              staticElement: ConstructorMember
-                base: package:test/a.dart::<fragment>::@class::C::@constructor::new
-                substitution: {K: int, V: String}
-            argumentList: ArgumentList
-              leftParenthesis: ( @54
-              rightParenthesis: ) @55
-            staticType: C<int, String>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<int, String>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @32
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @38
+                    period: . @39
+                    element: <testLibraryFragment>::@prefix::p
+                  name: C @40
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @41
+                    arguments
+                      NamedType
+                        name: int @42
+                        element: dart:core::<fragment>::@class::int
+                        type: int
+                      NamedType
+                        name: String @47
+                        element: dart:core::<fragment>::@class::String
+                        type: String
+                    rightBracket: > @53
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C<int, String>
+                staticElement: ConstructorMember
+                  base: package:test/a.dart::<fragment>::@class::C::@constructor::new
+                  substitution: {K: int, V: String}
+              argumentList: ArgumentList
+                leftParenthesis: ( @54
+                rightParenthesis: ) @55
+              staticType: C<int, String>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<int, String>
 ''');
   }
 
@@ -26108,90 +26604,91 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const named @20
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 19
-            nameEnd: 25
-            parameters
-              requiredPositional a @31
-                type: bool
-              requiredPositional b @38
-                type: int
-              requiredPositional c @45
-                type: int
-              optionalNamed default d @56
-                reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::d
-                type: String
-              optionalNamed default e @66
-                reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::e
-                type: double
-    topLevelVariables
-      static const V @79
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @83
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @89
-                element: <testLibraryFragment>::@class::C
-                type: C
-              period: . @90
-              name: SimpleIdentifier
-                token: named @91
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const named @20
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 19
+              nameEnd: 25
+              parameters
+                requiredPositional a @31
+                  type: bool
+                requiredPositional b @38
+                  type: int
+                requiredPositional c @45
+                  type: int
+                optionalNamed default d @56
+                  reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::d
+                  type: String
+                optionalNamed default e @66
+                  reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::e
+                  type: double
+      topLevelVariables
+        static const V @79
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @83
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @89
+                  element: <testLibraryFragment>::@class::C
+                  type: C
+                period: . @90
+                name: SimpleIdentifier
+                  token: named @91
+                  staticElement: <testLibraryFragment>::@class::C::@constructor::named
+                  staticType: null
                 staticElement: <testLibraryFragment>::@class::C::@constructor::named
-                staticType: null
-              staticElement: <testLibraryFragment>::@class::C::@constructor::named
-            argumentList: ArgumentList
-              leftParenthesis: ( @96
-              arguments
-                BooleanLiteral
-                  literal: true @97
-                  staticType: bool
-                IntegerLiteral
-                  literal: 1 @103
-                  staticType: int
-                IntegerLiteral
-                  literal: 2 @106
-                  staticType: int
-                NamedExpression
-                  name: Label
-                    label: SimpleIdentifier
-                      token: d @109
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::named::@parameter::d
-                      staticType: null
-                    colon: : @110
-                  expression: SimpleStringLiteral
-                    literal: 'ccc' @112
-                NamedExpression
-                  name: Label
-                    label: SimpleIdentifier
-                      token: e @119
-                      staticElement: <testLibraryFragment>::@class::C::@constructor::named::@parameter::e
-                      staticType: null
-                    colon: : @120
-                  expression: DoubleLiteral
-                    literal: 3.4 @122
-                    staticType: double
-              rightParenthesis: ) @125
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+              argumentList: ArgumentList
+                leftParenthesis: ( @96
+                arguments
+                  BooleanLiteral
+                    literal: true @97
+                    staticType: bool
+                  IntegerLiteral
+                    literal: 1 @103
+                    staticType: int
+                  IntegerLiteral
+                    literal: 2 @106
+                    staticType: int
+                  NamedExpression
+                    name: Label
+                      label: SimpleIdentifier
+                        token: d @109
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::named::@parameter::d
+                        staticType: null
+                      colon: : @110
+                    expression: SimpleStringLiteral
+                      literal: 'ccc' @112
+                  NamedExpression
+                    name: Label
+                      label: SimpleIdentifier
+                        token: e @119
+                        staticElement: <testLibraryFragment>::@class::C::@constructor::named::@parameter::e
+                        staticType: null
+                      colon: : @120
+                    expression: DoubleLiteral
+                      literal: 3.4 @122
+                      staticType: double
+                rightParenthesis: ) @125
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26212,42 +26709,43 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @23
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @27
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @33
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C
-              period: . @34
-              name: SimpleIdentifier
-                token: named @35
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @23
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @27
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @33
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C
+                period: . @34
+                name: SimpleIdentifier
+                  token: named @35
+                  staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::named
+                  staticType: null
                 staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::named
-                staticType: null
-              staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::named
-            argumentList: ArgumentList
-              leftParenthesis: ( @40
-              rightParenthesis: ) @41
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+              argumentList: ArgumentList
+                leftParenthesis: ( @40
+                rightParenthesis: ) @41
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26273,51 +26771,52 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @32
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @38
-                  period: . @39
-                  element: <testLibraryFragment>::@prefix::p
-                name: C @40
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C
-              period: . @41
-              name: SimpleIdentifier
-                token: named @42
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @32
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @38
+                    period: . @39
+                    element: <testLibraryFragment>::@prefix::p
+                  name: C @40
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C
+                period: . @41
+                name: SimpleIdentifier
+                  token: named @42
+                  staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::named
+                  staticType: null
                 staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::named
-                staticType: null
-              staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::named
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+              argumentList: ArgumentList
+                leftParenthesis: ( @47
+                rightParenthesis: ) @48
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26329,46 +26828,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static const V @17
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @21
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @27
-                element: <testLibraryFragment>::@class::C
-                type: C
-              period: . @28
-              name: SimpleIdentifier
-                token: named @29
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static const V @17
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @21
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @27
+                  element: <testLibraryFragment>::@class::C
+                  type: C
+                period: . @28
+                name: SimpleIdentifier
+                  token: named @29
+                  staticElement: <null>
+                  staticType: null
                 staticElement: <null>
-                staticType: null
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @34
-              rightParenthesis: ) @35
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+              argumentList: ArgumentList
+                leftParenthesis: ( @34
+                rightParenthesis: ) @35
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26379,37 +26879,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const V @6
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @10
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: C @16
-                  period: . @17
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const V @6
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @10
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: C @16
+                    period: . @17
+                    element: <null>
+                  name: named @18
                   element: <null>
-                name: named @18
-                element: <null>
-                type: InvalidType
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @23
-              rightParenthesis: ) @24
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+                  type: InvalidType
+                staticElement: <null>
+              argumentList: ArgumentList
+                leftParenthesis: ( @23
+                rightParenthesis: ) @24
+              staticType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -26434,51 +26935,52 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @32
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @38
-                  period: . @39
-                  element: <testLibraryFragment>::@prefix::p
-                name: C @40
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C
-              period: . @41
-              name: SimpleIdentifier
-                token: named @42
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @32
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @38
+                    period: . @39
+                    element: <testLibraryFragment>::@prefix::p
+                  name: C @40
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C
+                period: . @41
+                name: SimpleIdentifier
+                  token: named @42
+                  staticElement: <null>
+                  staticType: null
                 staticElement: <null>
-                staticType: null
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+              argumentList: ArgumentList
+                leftParenthesis: ( @47
+                rightParenthesis: ) @48
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26500,51 +27002,52 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @32
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @38
-                  period: . @39
-                  element: <testLibraryFragment>::@prefix::p
-                name: C @40
-                element: <null>
-                type: InvalidType
-              period: . @41
-              name: SimpleIdentifier
-                token: named @42
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @32
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @38
+                    period: . @39
+                    element: <testLibraryFragment>::@prefix::p
+                  name: C @40
+                  element: <null>
+                  type: InvalidType
+                period: . @41
+                name: SimpleIdentifier
+                  token: named @42
+                  staticElement: <null>
+                  staticType: null
                 staticElement: <null>
-                staticType: null
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @47
-              rightParenthesis: ) @48
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+              argumentList: ArgumentList
+                leftParenthesis: ( @47
+                rightParenthesis: ) @48
+              staticType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -26555,42 +27058,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const V @6
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @10
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @16
-                  period: . @17
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const V @6
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @10
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @16
+                    period: . @17
+                    element: <null>
+                  name: C @18
                   element: <null>
-                name: C @18
-                element: <null>
-                type: InvalidType
-              period: . @19
-              name: SimpleIdentifier
-                token: named @20
+                  type: InvalidType
+                period: . @19
+                name: SimpleIdentifier
+                  token: named @20
+                  staticElement: <null>
+                  staticType: null
                 staticElement: <null>
-                staticType: null
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @25
-              rightParenthesis: ) @26
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+              argumentList: ArgumentList
+                leftParenthesis: ( @25
+                rightParenthesis: ) @26
+              staticType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -26602,49 +27106,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static const V @20
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C<dynamic>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @24
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @30
-                element: <testLibraryFragment>::@class::C
-                type: C<dynamic>
-              period: . @31
-              name: SimpleIdentifier
-                token: named @32
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static const V @20
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C<dynamic>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @24
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @30
+                  element: <testLibraryFragment>::@class::C
+                  type: C<dynamic>
+                period: . @31
+                name: SimpleIdentifier
+                  token: named @32
+                  staticElement: <null>
+                  staticType: null
                 staticElement: <null>
-                staticType: null
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @37
-              rightParenthesis: ) @38
-            staticType: C<dynamic>
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C<dynamic>
+              argumentList: ArgumentList
+                leftParenthesis: ( @37
+                rightParenthesis: ) @38
+              staticType: C<dynamic>
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C<dynamic>
 ''');
   }
 
@@ -26658,41 +27163,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @18
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static const V @31
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @35
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @41
-                element: <testLibraryFragment>::@class::C
-                type: C
-              staticElement: <testLibraryFragment>::@class::C::@constructor::new
-            argumentList: ArgumentList
-              leftParenthesis: ( @42
-              rightParenthesis: ) @43
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @18
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static const V @31
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @35
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @41
+                  element: <testLibraryFragment>::@class::C
+                  type: C
+                staticElement: <testLibraryFragment>::@class::C::@constructor::new
+              argumentList: ArgumentList
+                leftParenthesis: ( @42
+                rightParenthesis: ) @43
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26713,37 +27219,38 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @23
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @27
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @33
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C
-              staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::new
-            argumentList: ArgumentList
-              leftParenthesis: ( @34
-              rightParenthesis: ) @35
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @23
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @27
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @33
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C
+                staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::new
+              argumentList: ArgumentList
+                leftParenthesis: ( @34
+                rightParenthesis: ) @35
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26769,46 +27276,47 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @32
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @38
-                  period: . @39
-                  element: <testLibraryFragment>::@prefix::p
-                name: C @40
-                element: package:test/a.dart::<fragment>::@class::C
-                type: C
-              staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::new
-            argumentList: ArgumentList
-              leftParenthesis: ( @41
-              rightParenthesis: ) @42
-            staticType: C
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @32
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @38
+                    period: . @39
+                    element: <testLibraryFragment>::@prefix::p
+                  name: C @40
+                  element: package:test/a.dart::<fragment>::@class::C
+                  type: C
+                staticElement: package:test/a.dart::<fragment>::@class::C::@constructor::new
+              argumentList: ArgumentList
+                leftParenthesis: ( @41
+                rightParenthesis: ) @42
+              staticType: C
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -26819,33 +27327,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const V @6
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @10
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @16
-                element: <null>
-                type: InvalidType
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @17
-              rightParenthesis: ) @18
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const V @6
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @10
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @16
+                  element: <null>
+                  type: InvalidType
+                staticElement: <null>
+              argumentList: ArgumentList
+                leftParenthesis: ( @17
+                rightParenthesis: ) @18
+              staticType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -26867,46 +27376,47 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @32
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @38
-                  period: . @39
-                  element: <testLibraryFragment>::@prefix::p
-                name: C @40
-                element: <null>
-                type: InvalidType
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @41
-              rightParenthesis: ) @42
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @32
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @38
+                    period: . @39
+                    element: <testLibraryFragment>::@prefix::p
+                  name: C @40
+                  element: <null>
+                  type: InvalidType
+                staticElement: <null>
+              argumentList: ArgumentList
+                leftParenthesis: ( @41
+                rightParenthesis: ) @42
+              staticType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -26917,37 +27427,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const V @6
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @10
-            constructorName: ConstructorName
-              type: NamedType
-                importPrefix: ImportPrefixReference
-                  name: p @16
-                  period: . @17
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const V @6
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @10
+              constructorName: ConstructorName
+                type: NamedType
+                  importPrefix: ImportPrefixReference
+                    name: p @16
+                    period: . @17
+                    element: <null>
+                  name: C @18
                   element: <null>
-                name: C @18
-                element: <null>
-                type: InvalidType
-              staticElement: <null>
-            argumentList: ArgumentList
-              leftParenthesis: ( @19
-              rightParenthesis: ) @20
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+                  type: InvalidType
+                staticElement: <null>
+              argumentList: ArgumentList
+                leftParenthesis: ( @19
+                rightParenthesis: ) @20
+              staticType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -26959,45 +27470,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-      static const b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IsExpression
-            expression: SimpleIdentifier
-              token: a @23
-              staticElement: <testLibraryFragment>::@getter::a
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
               staticType: int
-            isOperator: is @25
-            type: NamedType
-              name: int @28
-              element: dart:core::<fragment>::@class::int
-              type: int
-            staticType: bool
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
+        static const b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IsExpression
+              expression: SimpleIdentifier
+                token: a @23
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: int
+              isOperator: is @25
+              type: NamedType
+                name: int @28
+                element: dart:core::<fragment>::@class::int
+                type: int
+              staticType: bool
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
 ''');
   }
 
@@ -27011,62 +27523,63 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const F @32
-            reference: <testLibraryFragment>::@class::C::@field::F
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: String
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              SimpleStringLiteral
-                literal: '' @36
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get F @-1
-            reference: <testLibraryFragment>::@class::C::@getter::F
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: String
-    topLevelVariables
-      static const v @52
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          PropertyAccess
-            target: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: C @56
-                staticElement: <testLibraryFragment>::@class::C
-                staticType: null
-              period: . @57
-              identifier: SimpleIdentifier
-                token: F @58
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const F @32
+              reference: <testLibraryFragment>::@class::C::@field::F
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: String
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                SimpleStringLiteral
+                  literal: '' @36
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get F @-1
+              reference: <testLibraryFragment>::@class::C::@getter::F
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: String
+      topLevelVariables
+        static const v @52
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            PropertyAccess
+              target: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: C @56
+                  staticElement: <testLibraryFragment>::@class::C
+                  staticType: null
+                period: . @57
+                identifier: SimpleIdentifier
+                  token: F @58
+                  staticElement: <testLibraryFragment>::@class::C::@getter::F
+                  staticType: String
                 staticElement: <testLibraryFragment>::@class::C::@getter::F
                 staticType: String
-              staticElement: <testLibraryFragment>::@class::C::@getter::F
-              staticType: String
-            operator: . @59
-            propertyName: SimpleIdentifier
-              token: length @60
-              staticElement: dart:core::<fragment>::@class::String::@getter::length
+              operator: . @59
+              propertyName: SimpleIdentifier
+                token: length @60
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticType: int
-            staticType: int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -27087,44 +27600,45 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const v @27
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          PropertyAccess
-            target: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: C @31
-                staticElement: package:test/a.dart::<fragment>::@class::C
-                staticType: null
-              period: . @32
-              identifier: SimpleIdentifier
-                token: F @33
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const v @27
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            PropertyAccess
+              target: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: C @31
+                  staticElement: package:test/a.dart::<fragment>::@class::C
+                  staticType: null
+                period: . @32
+                identifier: SimpleIdentifier
+                  token: F @33
+                  staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
+                  staticType: String
                 staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
                 staticType: String
-              staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
-              staticType: String
-            operator: . @34
-            propertyName: SimpleIdentifier
-              token: length @35
-              staticElement: dart:core::<fragment>::@class::String::@getter::length
+              operator: . @34
+              propertyName: SimpleIdentifier
+                token: length @35
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticType: int
-            staticType: int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -27150,56 +27664,57 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const v @32
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          PropertyAccess
-            target: PropertyAccess
-              target: PrefixedIdentifier
-                prefix: SimpleIdentifier
-                  token: p @36
-                  staticElement: <testLibraryFragment>::@prefix::p
-                  staticType: null
-                period: . @37
-                identifier: SimpleIdentifier
-                  token: C @38
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const v @32
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            PropertyAccess
+              target: PropertyAccess
+                target: PrefixedIdentifier
+                  prefix: SimpleIdentifier
+                    token: p @36
+                    staticElement: <testLibraryFragment>::@prefix::p
+                    staticType: null
+                  period: . @37
+                  identifier: SimpleIdentifier
+                    token: C @38
+                    staticElement: package:test/a.dart::<fragment>::@class::C
+                    staticType: null
                   staticElement: package:test/a.dart::<fragment>::@class::C
                   staticType: null
-                staticElement: package:test/a.dart::<fragment>::@class::C
-                staticType: null
-              operator: . @39
-              propertyName: SimpleIdentifier
-                token: F @40
-                staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
+                operator: . @39
+                propertyName: SimpleIdentifier
+                  token: F @40
+                  staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
+                  staticType: String
                 staticType: String
-              staticType: String
-            operator: . @41
-            propertyName: SimpleIdentifier
-              token: length @42
-              staticElement: dart:core::<fragment>::@class::String::@getter::length
+              operator: . @41
+              propertyName: SimpleIdentifier
+                token: length @42
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticType: int
-            staticType: int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -27210,30 +27725,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PropertyAccess
-            target: SimpleStringLiteral
-              literal: 'abc' @10
-            operator: . @15
-            propertyName: SimpleIdentifier
-              token: length @16
-              staticElement: dart:core::<fragment>::@class::String::@getter::length
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PropertyAccess
+              target: SimpleStringLiteral
+                literal: 'abc' @10
+              operator: . @15
+              propertyName: SimpleIdentifier
+                token: length @16
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticType: int
-            staticType: int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -27245,45 +27761,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const S @13
-        reference: <testLibraryFragment>::@topLevelVariable::S
-        enclosingElement: <testLibraryFragment>
-        type: String
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SimpleStringLiteral
-            literal: 'abc' @17
-      static const v @30
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: S @34
-              staticElement: <testLibraryFragment>::@getter::S
-              staticType: String
-            period: . @35
-            identifier: SimpleIdentifier
-              token: length @36
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const S @13
+          reference: <testLibraryFragment>::@topLevelVariable::S
+          enclosingElement: <testLibraryFragment>
+          type: String
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SimpleStringLiteral
+              literal: 'abc' @17
+        static const v @30
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: S @34
+                staticElement: <testLibraryFragment>::@getter::S
+                staticType: String
+              period: . @35
+              identifier: SimpleIdentifier
+                token: length @36
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticElement: dart:core::<fragment>::@class::String::@getter::length
               staticType: int
-            staticElement: dart:core::<fragment>::@class::String::@getter::length
-            staticType: int
-    accessors
-      synthetic static get S @-1
-        reference: <testLibraryFragment>::@getter::S
-        enclosingElement: <testLibraryFragment>
-        returnType: String
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get S @-1
+          reference: <testLibraryFragment>::@getter::S
+          enclosingElement: <testLibraryFragment>
+          returnType: String
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -27302,37 +27819,38 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const v @23
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: S @27
-              staticElement: package:test/a.dart::<fragment>::@getter::S
-              staticType: String
-            period: . @28
-            identifier: SimpleIdentifier
-              token: length @29
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const v @23
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: S @27
+                staticElement: package:test/a.dart::<fragment>::@getter::S
+                staticType: String
+              period: . @28
+              identifier: SimpleIdentifier
+                token: length @29
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticElement: dart:core::<fragment>::@class::String::@getter::length
               staticType: int
-            staticElement: dart:core::<fragment>::@class::String::@getter::length
-            staticType: int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -27356,49 +27874,50 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const v @28
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PropertyAccess
-            target: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: p @32
-                staticElement: <testLibraryFragment>::@prefix::p
-                staticType: null
-              period: . @33
-              identifier: SimpleIdentifier
-                token: S @34
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const v @28
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PropertyAccess
+              target: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: p @32
+                  staticElement: <testLibraryFragment>::@prefix::p
+                  staticType: null
+                period: . @33
+                identifier: SimpleIdentifier
+                  token: S @34
+                  staticElement: package:test/a.dart::<fragment>::@getter::S
+                  staticType: String
                 staticElement: package:test/a.dart::<fragment>::@getter::S
                 staticType: String
-              staticElement: package:test/a.dart::<fragment>::@getter::S
-              staticType: String
-            operator: . @35
-            propertyName: SimpleIdentifier
-              token: length @36
-              staticElement: dart:core::<fragment>::@class::String::@getter::length
+              operator: . @35
+              propertyName: SimpleIdentifier
+                token: length @36
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticType: int
-            staticType: int
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -27412,46 +27931,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          static length @23
-            reference: <testLibraryFragment>::@class::C::@method::length
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-    topLevelVariables
-      static const v @47
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int Function()
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: C @51
-              staticElement: <testLibraryFragment>::@class::C
-              staticType: null
-            period: . @52
-            identifier: SimpleIdentifier
-              token: length @53
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            static length @23
+              reference: <testLibraryFragment>::@class::C::@method::length
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+      topLevelVariables
+        static const v @47
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int Function()
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: C @51
+                staticElement: <testLibraryFragment>::@class::C
+                staticType: null
+              period: . @52
+              identifier: SimpleIdentifier
+                token: length @53
+                staticElement: <testLibraryFragment>::@class::C::@method::length
+                staticType: int Function()
               staticElement: <testLibraryFragment>::@class::C::@method::length
               staticType: int Function()
-            staticElement: <testLibraryFragment>::@class::C::@method::length
-            staticType: int Function()
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function()
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function()
 ''');
   }
 
@@ -27462,45 +27982,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          ListLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @27
-            leftBracket: [ @28
-            elements
-              IfElement
-                ifKeyword: if @29
-                leftParenthesis: ( @32
-                expression: 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
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            ListLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @27
+              leftBracket: [ @28
+              elements
+                IfElement
+                  ifKeyword: if @29
+                  leftParenthesis: ( @32
+                  expression: 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
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27511,49 +28032,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          ListLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @27
-            leftBracket: [ @28
-            elements
-              IfElement
-                ifKeyword: if @29
-                leftParenthesis: ( @32
-                expression: 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
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            ListLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @27
+              leftBracket: [ @28
+              elements
+                IfElement
+                  ifKeyword: if @29
+                  leftParenthesis: ( @32
+                  expression: 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
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27567,30 +28089,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          ListLiteral
-            constKeyword: const @17
-            leftBracket: [ @23
-            elements
-              IntegerLiteral
-                literal: 1 @24
-                staticType: int
-            rightBracket: ] @25
-            staticType: List<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            ListLiteral
+              constKeyword: const @17
+              leftBracket: [ @23
+              elements
+                IntegerLiteral
+                  literal: 1 @24
+                  staticType: int
+              rightBracket: ] @25
+              staticType: List<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27601,53 +28124,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          ListLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @27
-            leftBracket: [ @28
-            elements
-              SpreadElement
-                spreadOperator: ... @29
-                expression: ListLiteral
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @32
-                    arguments
-                      NamedType
-                        name: int @33
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                    rightBracket: > @36
-                  leftBracket: [ @37
-                  elements
-                    IntegerLiteral
-                      literal: 1 @38
-                      staticType: int
-                  rightBracket: ] @39
-                  staticType: List<int>
-            rightBracket: ] @40
-            staticType: List<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            ListLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @27
+              leftBracket: [ @28
+              elements
+                SpreadElement
+                  spreadOperator: ... @29
+                  expression: ListLiteral
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @32
+                      arguments
+                        NamedType
+                          name: int @33
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                      rightBracket: > @36
+                    leftBracket: [ @37
+                    elements
+                      IntegerLiteral
+                        literal: 1 @38
+                        staticType: int
+                    rightBracket: ] @39
+                    staticType: List<int>
+              rightBracket: ] @40
+              staticType: List<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27658,53 +28182,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          ListLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @27
-            leftBracket: [ @28
-            elements
-              SpreadElement
-                spreadOperator: ...? @29
-                expression: ListLiteral
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @33
-                    arguments
-                      NamedType
-                        name: int @34
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                    rightBracket: > @37
-                  leftBracket: [ @38
-                  elements
-                    IntegerLiteral
-                      literal: 1 @39
-                      staticType: int
-                  rightBracket: ] @40
-                  staticType: List<int>
-            rightBracket: ] @41
-            staticType: List<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            ListLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @27
+              leftBracket: [ @28
+              elements
+                SpreadElement
+                  spreadOperator: ...? @29
+                  expression: ListLiteral
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @33
+                      arguments
+                        NamedType
+                          name: int @34
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                      rightBracket: > @37
+                    leftBracket: [ @38
+                    elements
+                      IntegerLiteral
+                        literal: 1 @39
+                        staticType: int
+                    rightBracket: ] @40
+                    staticType: List<int>
+              rightBracket: ] @41
+              staticType: List<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27715,55 +28240,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-                NamedType
-                  name: int @29
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @32
-            leftBracket: { @33
-            elements
-              IfElement
-                ifKeyword: if @34
-                leftParenthesis: ( @37
-                expression: BooleanLiteral
-                  literal: true @38
-                  staticType: bool
-                rightParenthesis: ) @42
-                thenElement: MapLiteralEntry
-                  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
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                  NamedType
+                    name: int @29
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @32
+              leftBracket: { @33
+              elements
+                IfElement
+                  ifKeyword: if @34
+                  leftParenthesis: ( @37
+                  expression: BooleanLiteral
+                    literal: true @38
+                    staticType: bool
+                  rightParenthesis: ) @42
+                  thenElement: MapLiteralEntry
+                    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
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27777,36 +28303,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            leftBracket: { @23
-            elements
-              MapLiteralEntry
-                key: IntegerLiteral
-                  literal: 1 @24
-                  staticType: int
-                separator: : @25
-                value: DoubleLiteral
-                  literal: 1.0 @27
-                  staticType: double
-            rightBracket: } @30
-            isMap: true
-            staticType: Map<int, double>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              leftBracket: { @23
+              elements
+                MapLiteralEntry
+                  key: IntegerLiteral
+                    literal: 1 @24
+                    staticType: int
+                  separator: : @25
+                  value: DoubleLiteral
+                    literal: 1.0 @27
+                    staticType: double
+              rightBracket: } @30
+              isMap: true
+              staticType: Map<int, double>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27817,68 +28344,69 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-                NamedType
-                  name: int @29
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @32
-            leftBracket: { @33
-            elements
-              SpreadElement
-                spreadOperator: ... @34
-                expression: SetOrMapLiteral
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @37
-                    arguments
-                      NamedType
-                        name: int @38
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                      NamedType
-                        name: int @43
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                    rightBracket: > @46
-                  leftBracket: { @47
-                  elements
-                    MapLiteralEntry
-                      key: IntegerLiteral
-                        literal: 1 @48
-                        staticType: int
-                      separator: : @49
-                      value: IntegerLiteral
-                        literal: 2 @51
-                        staticType: int
-                  rightBracket: } @52
-                  isMap: true
-                  staticType: Map<int, int>
-            rightBracket: } @53
-            isMap: true
-            staticType: Map<int, int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                  NamedType
+                    name: int @29
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @32
+              leftBracket: { @33
+              elements
+                SpreadElement
+                  spreadOperator: ... @34
+                  expression: SetOrMapLiteral
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @37
+                      arguments
+                        NamedType
+                          name: int @38
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                        NamedType
+                          name: int @43
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                      rightBracket: > @46
+                    leftBracket: { @47
+                    elements
+                      MapLiteralEntry
+                        key: IntegerLiteral
+                          literal: 1 @48
+                          staticType: int
+                        separator: : @49
+                        value: IntegerLiteral
+                          literal: 2 @51
+                          staticType: int
+                    rightBracket: } @52
+                    isMap: true
+                    staticType: Map<int, int>
+              rightBracket: } @53
+              isMap: true
+              staticType: Map<int, int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27889,68 +28417,69 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-                NamedType
-                  name: int @29
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @32
-            leftBracket: { @33
-            elements
-              SpreadElement
-                spreadOperator: ...? @34
-                expression: SetOrMapLiteral
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @38
-                    arguments
-                      NamedType
-                        name: int @39
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                      NamedType
-                        name: int @44
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                    rightBracket: > @47
-                  leftBracket: { @48
-                  elements
-                    MapLiteralEntry
-                      key: IntegerLiteral
-                        literal: 1 @49
-                        staticType: int
-                      separator: : @50
-                      value: IntegerLiteral
-                        literal: 2 @52
-                        staticType: int
-                  rightBracket: } @53
-                  isMap: true
-                  staticType: Map<int, int>
-            rightBracket: } @54
-            isMap: true
-            staticType: Map<int, int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                  NamedType
+                    name: int @29
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @32
+              leftBracket: { @33
+              elements
+                SpreadElement
+                  spreadOperator: ...? @34
+                  expression: SetOrMapLiteral
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @38
+                      arguments
+                        NamedType
+                          name: int @39
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                        NamedType
+                          name: int @44
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                      rightBracket: > @47
+                    leftBracket: { @48
+                    elements
+                      MapLiteralEntry
+                        key: IntegerLiteral
+                          literal: 1 @49
+                          staticType: int
+                        separator: : @50
+                        value: IntegerLiteral
+                          literal: 2 @52
+                          staticType: int
+                    rightBracket: } @53
+                    isMap: true
+                    staticType: Map<int, int>
+              rightBracket: } @54
+              isMap: true
+              staticType: Map<int, int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -27962,56 +28491,57 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const b @24
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          MethodInvocation
-            methodName: SimpleIdentifier
-              token: f @28
-              staticElement: <testLibraryFragment>::@function::f
-              staticType: T Function<T>(T)
-            typeArguments: TypeArgumentList
-              leftBracket: < @29
-              arguments
-                NamedType
-                  name: int @30
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @33
-            argumentList: ArgumentList
-              leftParenthesis: ( @34
-              arguments
-                IntegerLiteral
-                  literal: 0 @35
-                  staticType: int
-              rightParenthesis: ) @36
-            staticInvokeType: int Function(int)
-            staticType: int
-            typeArgumentTypes
-              int
-    accessors
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-    functions
-      f @2
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @4
-            defaultType: dynamic
-        parameters
-          requiredPositional a @9
-            type: T
-        returnType: T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const b @24
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            MethodInvocation
+              methodName: SimpleIdentifier
+                token: f @28
+                staticElement: <testLibraryFragment>::@function::f
+                staticType: T Function<T>(T)
+              typeArguments: TypeArgumentList
+                leftBracket: < @29
+                arguments
+                  NamedType
+                    name: int @30
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @33
+              argumentList: ArgumentList
+                leftParenthesis: ( @34
+                arguments
+                  IntegerLiteral
+                    literal: 0 @35
+                    staticType: int
+                rightParenthesis: ) @36
+              staticInvokeType: int Function(int)
+              staticType: int
+              typeArgumentTypes
+                int
+      accessors
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+      functions
+        f @2
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @4
+              defaultType: dynamic
+          parameters
+            requiredPositional a @9
+              type: T
+          returnType: T
 ''');
   }
 
@@ -28026,42 +28556,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          const @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalNamed default final this.x @37
-                reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
-                type: dynamic
-                constantInitializer
-                  SimpleIdentifier
-                    token: foo @40
-                    staticElement: <testLibraryFragment>::@function::foo
-                    staticType: int Function()
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-    functions
-      foo @53
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            const @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalNamed default final this.x @37
+                  reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
+                  type: dynamic
+                  constantInitializer
+                    SimpleIdentifier
+                      token: foo @40
+                      staticElement: <testLibraryFragment>::@function::foo
+                      staticType: int Function()
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+      functions
+        foo @53
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28075,44 +28606,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          const @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalNamed default final this.x @37
-                reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
-                type: dynamic
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: IntegerLiteral
-                      literal: 1 @40
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            const @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalNamed default final this.x @37
+                  reference: <testLibraryFragment>::@class::C::@constructor::new::@parameter::x
+                  type: dynamic
+                  constantInitializer
+                    BinaryExpression
+                      leftOperand: IntegerLiteral
+                        literal: 1 @40
+                        staticType: int
+                      operator: + @42
+                      rightOperand: IntegerLiteral
+                        literal: 2 @44
+                        staticType: int
+                      staticElement: dart:core::<fragment>::@class::num::@method::+
+                      staticInvokeType: num Function(num)
                       staticType: int
-                    operator: + @42
-                    rightOperand: IntegerLiteral
-                      literal: 2 @44
-                      staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
-                    staticType: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -28126,43 +28658,44 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @18
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          const @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default final this.x @37
-                type: dynamic
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: IntegerLiteral
-                      literal: 1 @41
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @18
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            const @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default final this.x @37
+                  type: dynamic
+                  constantInitializer
+                    BinaryExpression
+                      leftOperand: IntegerLiteral
+                        literal: 1 @41
+                        staticType: int
+                      operator: + @43
+                      rightOperand: IntegerLiteral
+                        literal: 2 @45
+                        staticType: int
+                      staticElement: dart:core::<fragment>::@class::num::@method::+
+                      staticInvokeType: num Function(num)
                       staticType: int
-                    operator: + @43
-                    rightOperand: IntegerLiteral
-                      literal: 2 @45
-                      staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
-                    staticType: int
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -28180,110 +28713,111 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const positional @20
-            reference: <testLibraryFragment>::@class::C::@constructor::positional
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 19
-            nameEnd: 30
-            parameters
-              optionalPositional default p @32
-                type: dynamic
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: IntegerLiteral
-                      literal: 1 @36
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const positional @20
+              reference: <testLibraryFragment>::@class::C::@constructor::positional
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 19
+              nameEnd: 30
+              parameters
+                optionalPositional default p @32
+                  type: dynamic
+                  constantInitializer
+                    BinaryExpression
+                      leftOperand: IntegerLiteral
+                        literal: 1 @36
+                        staticType: int
+                      operator: + @38
+                      rightOperand: IntegerLiteral
+                        literal: 2 @40
+                        staticType: int
+                      staticElement: dart:core::<fragment>::@class::num::@method::+
+                      staticInvokeType: num Function(num)
                       staticType: int
-                    operator: + @38
-                    rightOperand: IntegerLiteral
-                      literal: 2 @40
+            const named @55
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 54
+              nameEnd: 60
+              parameters
+                optionalNamed default p @62
+                  reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::p
+                  type: dynamic
+                  constantInitializer
+                    BinaryExpression
+                      leftOperand: IntegerLiteral
+                        literal: 1 @65
+                        staticType: int
+                      operator: + @67
+                      rightOperand: IntegerLiteral
+                        literal: 2 @69
+                        staticType: int
+                      staticElement: dart:core::<fragment>::@class::num::@method::+
+                      staticInvokeType: num Function(num)
                       staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
-                    staticType: int
-          const named @55
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 54
-            nameEnd: 60
-            parameters
-              optionalNamed default p @62
-                reference: <testLibraryFragment>::@class::C::@constructor::named::@parameter::p
-                type: dynamic
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: IntegerLiteral
-                      literal: 1 @65
+          methods
+            methodPositional @81
+              reference: <testLibraryFragment>::@class::C::@method::methodPositional
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default p @99
+                  type: dynamic
+                  constantInitializer
+                    BinaryExpression
+                      leftOperand: IntegerLiteral
+                        literal: 1 @103
+                        staticType: int
+                      operator: + @105
+                      rightOperand: IntegerLiteral
+                        literal: 2 @107
+                        staticType: int
+                      staticElement: dart:core::<fragment>::@class::num::@method::+
+                      staticInvokeType: num Function(num)
                       staticType: int
-                    operator: + @67
-                    rightOperand: IntegerLiteral
-                      literal: 2 @69
+              returnType: void
+            methodPositionalWithoutDefault @121
+              reference: <testLibraryFragment>::@class::C::@method::methodPositionalWithoutDefault
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default p @153
+                  type: dynamic
+              returnType: void
+            methodNamed @167
+              reference: <testLibraryFragment>::@class::C::@method::methodNamed
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalNamed default p @180
+                  reference: <testLibraryFragment>::@class::C::@method::methodNamed::@parameter::p
+                  type: dynamic
+                  constantInitializer
+                    BinaryExpression
+                      leftOperand: IntegerLiteral
+                        literal: 1 @183
+                        staticType: int
+                      operator: + @185
+                      rightOperand: IntegerLiteral
+                        literal: 2 @187
+                        staticType: int
+                      staticElement: dart:core::<fragment>::@class::num::@method::+
+                      staticInvokeType: num Function(num)
                       staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
-                    staticType: int
-        methods
-          methodPositional @81
-            reference: <testLibraryFragment>::@class::C::@method::methodPositional
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default p @99
-                type: dynamic
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: IntegerLiteral
-                      literal: 1 @103
-                      staticType: int
-                    operator: + @105
-                    rightOperand: IntegerLiteral
-                      literal: 2 @107
-                      staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
-                    staticType: int
-            returnType: void
-          methodPositionalWithoutDefault @121
-            reference: <testLibraryFragment>::@class::C::@method::methodPositionalWithoutDefault
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default p @153
-                type: dynamic
-            returnType: void
-          methodNamed @167
-            reference: <testLibraryFragment>::@class::C::@method::methodNamed
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalNamed default p @180
-                reference: <testLibraryFragment>::@class::C::@method::methodNamed::@parameter::p
-                type: dynamic
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: IntegerLiteral
-                      literal: 1 @183
-                      staticType: int
-                    operator: + @185
-                    rightOperand: IntegerLiteral
-                      literal: 2 @187
-                      staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
-                    staticType: int
-            returnType: void
-          methodNamedWithoutDefault @201
-            reference: <testLibraryFragment>::@class::C::@method::methodNamedWithoutDefault
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalNamed default p @228
-                reference: <testLibraryFragment>::@class::C::@method::methodNamedWithoutDefault::@parameter::p
-                type: dynamic
-            returnType: void
+              returnType: void
+            methodNamedWithoutDefault @201
+              reference: <testLibraryFragment>::@class::C::@method::methodNamedWithoutDefault
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalNamed default p @228
+                  reference: <testLibraryFragment>::@class::C::@method::methodNamedWithoutDefault::@parameter::p
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -28295,46 +28829,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-      static const b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PostfixExpression
-            operand: SimpleIdentifier
-              token: a @23
-              staticElement: <null>
-              staticType: null
-            operator: ++ @24
-            readElement: <testLibraryFragment>::@getter::a
-            readType: int
-            writeElement: <testLibraryFragment>::@getter::a
-            writeType: InvalidType
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
+              staticType: int
+        static const b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PostfixExpression
+              operand: SimpleIdentifier
+                token: a @23
+                staticElement: <null>
+                staticType: null
+              operator: ++ @24
+              readElement: <testLibraryFragment>::@getter::a
+              readType: int
+              writeElement: <testLibraryFragment>::@getter::a
+              writeType: InvalidType
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28346,42 +28881,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @11
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int?
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @15
-            staticType: int
-      static const b @24
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PostfixExpression
-            operand: SimpleIdentifier
-              token: a @28
-              staticElement: <testLibraryFragment>::@getter::a
-              staticType: int?
-            operator: ! @29
-            staticElement: <null>
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int?
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @11
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int?
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @15
+              staticType: int
+        static const b @24
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PostfixExpression
+              operand: SimpleIdentifier
+                token: a @28
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: int?
+              operator: ! @29
+              staticElement: <null>
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int?
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28393,42 +28929,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-      static const b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixExpression
-            operator: - @23
-            operand: SimpleIdentifier
-              token: a @24
-              staticElement: <testLibraryFragment>::@getter::a
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
               staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::unary-
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+        static const b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixExpression
+              operator: - @23
+              operand: SimpleIdentifier
+                token: a @24
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::unary-
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28450,33 +28987,34 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const b @23
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixExpression
-            operator: - @27
-            operand: SimpleIdentifier
-              token: a @28
-              staticElement: package:test/a.dart::<fragment>::@getter::a
-              staticType: Object
-            staticElement: package:test/a.dart::<fragment>::@extension::E::@method::unary-
-            staticType: int
-    accessors
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const b @23
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixExpression
+              operator: - @27
+              operand: SimpleIdentifier
+                token: a @28
+                staticElement: package:test/a.dart::<fragment>::@getter::a
+                staticType: Object
+              staticElement: package:test/a.dart::<fragment>::@extension::E::@method::unary-
+              staticType: int
+      accessors
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28488,46 +29026,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-      static const b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixExpression
-            operator: ++ @23
-            operand: SimpleIdentifier
-              token: a @25
-              staticElement: <null>
-              staticType: null
-            readElement: <testLibraryFragment>::@getter::a
-            readType: int
-            writeElement: <testLibraryFragment>::@getter::a
-            writeType: InvalidType
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticType: int
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
+              staticType: int
+        static const b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixExpression
+              operator: ++ @23
+              operand: SimpleIdentifier
+                token: a @25
+                staticElement: <null>
+                staticType: null
+              readElement: <testLibraryFragment>::@getter::a
+              readType: int
+              writeElement: <testLibraryFragment>::@getter::a
+              writeType: InvalidType
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28539,54 +29078,55 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-      static const b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: (int, {int a})
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          RecordLiteral
-            leftParenthesis: ( @23
-            fields
-              SimpleIdentifier
-                token: a @24
-                staticElement: <testLibraryFragment>::@getter::a
-                staticType: int
-              NamedExpression
-                name: Label
-                  label: SimpleIdentifier
-                    token: a @27
-                    staticElement: <null>
-                    staticType: null
-                  colon: : @28
-                expression: SimpleIdentifier
-                  token: a @30
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
+              staticType: int
+        static const b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: (int, {int a})
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            RecordLiteral
+              leftParenthesis: ( @23
+              fields
+                SimpleIdentifier
+                  token: a @24
                   staticElement: <testLibraryFragment>::@getter::a
                   staticType: int
-            rightParenthesis: ) @31
-            staticType: (int, {int a})
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: (int, {int a})
+                NamedExpression
+                  name: Label
+                    label: SimpleIdentifier
+                      token: a @27
+                      staticElement: <null>
+                      staticType: null
+                    colon: : @28
+                  expression: SimpleIdentifier
+                    token: a @30
+                    staticElement: <testLibraryFragment>::@getter::a
+                    staticType: int
+              rightParenthesis: ) @31
+              staticType: (int, {int a})
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: (int, {int a})
 ''');
   }
 
@@ -28598,55 +29138,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @6
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @10
-            staticType: int
-      static const b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: (int, {int a})
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          RecordLiteral
-            constKeyword: const @23
-            leftParenthesis: ( @29
-            fields
-              SimpleIdentifier
-                token: a @30
-                staticElement: <testLibraryFragment>::@getter::a
-                staticType: int
-              NamedExpression
-                name: Label
-                  label: SimpleIdentifier
-                    token: a @33
-                    staticElement: <null>
-                    staticType: null
-                  colon: : @34
-                expression: SimpleIdentifier
-                  token: a @36
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @6
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @10
+              staticType: int
+        static const b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: (int, {int a})
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            RecordLiteral
+              constKeyword: const @23
+              leftParenthesis: ( @29
+              fields
+                SimpleIdentifier
+                  token: a @30
                   staticElement: <testLibraryFragment>::@getter::a
                   staticType: int
-            rightParenthesis: ) @37
-            staticType: (int, {int a})
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: (int, {int a})
+                NamedExpression
+                  name: Label
+                    label: SimpleIdentifier
+                      token: a @33
+                      staticElement: <null>
+                      staticType: null
+                    colon: : @34
+                  expression: SimpleIdentifier
+                    token: a @36
+                    staticElement: <testLibraryFragment>::@getter::a
+                    staticType: int
+              rightParenthesis: ) @37
+              staticType: (int, {int a})
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: (int, {int a})
 ''');
   }
 
@@ -28660,56 +29201,57 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const F @29
-            reference: <testLibraryFragment>::@class::C::@field::F
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-            shouldUseTypeForInitializerInference: true
-            constantInitializer
-              IntegerLiteral
-                literal: 42 @33
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const F @29
+              reference: <testLibraryFragment>::@class::C::@field::F
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+              shouldUseTypeForInitializerInference: true
+              constantInitializer
+                IntegerLiteral
+                  literal: 42 @33
+                  staticType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get F @-1
+              reference: <testLibraryFragment>::@class::C::@getter::F
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+      topLevelVariables
+        static const V @45
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: C @49
+                staticElement: <testLibraryFragment>::@class::C
+                staticType: null
+              period: . @50
+              identifier: SimpleIdentifier
+                token: F @51
+                staticElement: <testLibraryFragment>::@class::C::@getter::F
                 staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get F @-1
-            reference: <testLibraryFragment>::@class::C::@getter::F
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-    topLevelVariables
-      static const V @45
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: C @49
-              staticElement: <testLibraryFragment>::@class::C
-              staticType: null
-            period: . @50
-            identifier: SimpleIdentifier
-              token: F @51
               staticElement: <testLibraryFragment>::@class::C::@getter::F
               staticType: int
-            staticElement: <testLibraryFragment>::@class::C::@getter::F
-            staticType: int
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28730,37 +29272,38 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @23
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: C @27
-              staticElement: package:test/a.dart::<fragment>::@class::C
-              staticType: null
-            period: . @28
-            identifier: SimpleIdentifier
-              token: F @29
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @23
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: C @27
+                staticElement: package:test/a.dart::<fragment>::@class::C
+                staticType: null
+              period: . @28
+              identifier: SimpleIdentifier
+                token: F @29
+                staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
+                staticType: int
               staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
               staticType: int
-            staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
-            staticType: int
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28786,49 +29329,50 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PropertyAccess
-            target: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: p @32
-                staticElement: <testLibraryFragment>::@prefix::p
-                staticType: null
-              period: . @33
-              identifier: SimpleIdentifier
-                token: C @34
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PropertyAccess
+              target: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: p @32
+                  staticElement: <testLibraryFragment>::@prefix::p
+                  staticType: null
+                period: . @33
+                identifier: SimpleIdentifier
+                  token: C @34
+                  staticElement: package:test/a.dart::<fragment>::@class::C
+                  staticType: null
                 staticElement: package:test/a.dart::<fragment>::@class::C
                 staticType: null
-              staticElement: package:test/a.dart::<fragment>::@class::C
-              staticType: null
-            operator: . @35
-            propertyName: SimpleIdentifier
-              token: F @36
-              staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
+              operator: . @35
+              propertyName: SimpleIdentifier
+                token: F @36
+                staticElement: package:test/a.dart::<fragment>::@class::C::@getter::F
+                staticType: int
               staticType: int
-            staticType: int
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -28842,51 +29386,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          static m @23
-            reference: <testLibraryFragment>::@class::C::@method::m
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional a @29
-                type: int
-              requiredPositional b @39
-                type: String
-            returnType: int
-    topLevelVariables
-      static const V @57
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: int Function(int, String)
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: C @61
-              staticElement: <testLibraryFragment>::@class::C
-              staticType: null
-            period: . @62
-            identifier: SimpleIdentifier
-              token: m @63
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            static m @23
+              reference: <testLibraryFragment>::@class::C::@method::m
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional a @29
+                  type: int
+                requiredPositional b @39
+                  type: String
+              returnType: int
+      topLevelVariables
+        static const V @57
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: int Function(int, String)
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: C @61
+                staticElement: <testLibraryFragment>::@class::C
+                staticType: null
+              period: . @62
+              identifier: SimpleIdentifier
+                token: m @63
+                staticElement: <testLibraryFragment>::@class::C::@method::m
+                staticType: int Function(int, String)
               staticElement: <testLibraryFragment>::@class::C::@method::m
               staticType: int Function(int, String)
-            staticElement: <testLibraryFragment>::@class::C::@method::m
-            staticType: int Function(int, String)
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function(int, String)
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function(int, String)
 ''');
   }
 
@@ -28907,37 +29452,38 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @23
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: int Function(int, String)
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: C @27
-              staticElement: package:test/a.dart::<fragment>::@class::C
-              staticType: null
-            period: . @28
-            identifier: SimpleIdentifier
-              token: m @29
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @23
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: int Function(int, String)
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: C @27
+                staticElement: package:test/a.dart::<fragment>::@class::C
+                staticType: null
+              period: . @28
+              identifier: SimpleIdentifier
+                token: m @29
+                staticElement: package:test/a.dart::<fragment>::@class::C::@method::m
+                staticType: int Function(int, String)
               staticElement: package:test/a.dart::<fragment>::@class::C::@method::m
               staticType: int Function(int, String)
-            staticElement: package:test/a.dart::<fragment>::@class::C::@method::m
-            staticType: int Function(int, String)
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function(int, String)
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function(int, String)
 ''');
   }
 
@@ -28963,49 +29509,50 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: int Function(int, String)
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PropertyAccess
-            target: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: p @32
-                staticElement: <testLibraryFragment>::@prefix::p
-                staticType: null
-              period: . @33
-              identifier: SimpleIdentifier
-                token: C @34
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: int Function(int, String)
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PropertyAccess
+              target: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: p @32
+                  staticElement: <testLibraryFragment>::@prefix::p
+                  staticType: null
+                period: . @33
+                identifier: SimpleIdentifier
+                  token: C @34
+                  staticElement: package:test/a.dart::<fragment>::@class::C
+                  staticType: null
                 staticElement: package:test/a.dart::<fragment>::@class::C
                 staticType: null
-              staticElement: package:test/a.dart::<fragment>::@class::C
-              staticType: null
-            operator: . @35
-            propertyName: SimpleIdentifier
-              token: m @36
-              staticElement: package:test/a.dart::<fragment>::@class::C::@method::m
+              operator: . @35
+              propertyName: SimpleIdentifier
+                token: m @36
+                staticElement: package:test/a.dart::<fragment>::@class::C::@method::m
+                staticType: int Function(int, String)
               staticType: int Function(int, String)
-            staticType: int Function(int, String)
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function(int, String)
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function(int, String)
 ''');
   }
 
@@ -29020,51 +29567,52 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    extensions
-      E @21
-        reference: <testLibraryFragment>::@extension::E
-        enclosingElement: <testLibraryFragment>
-        extendedType: A
-        methods
-          static f @44
-            reference: <testLibraryFragment>::@extension::E::@method::f
-            enclosingElement: <testLibraryFragment>::@extension::E
-            returnType: void
-    topLevelVariables
-      static const x @59
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: void Function()
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: E @63
-              staticElement: <testLibraryFragment>::@extension::E
-              staticType: null
-            period: . @64
-            identifier: SimpleIdentifier
-              token: f @65
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      extensions
+        E @21
+          reference: <testLibraryFragment>::@extension::E
+          enclosingElement: <testLibraryFragment>
+          extendedType: A
+          methods
+            static f @44
+              reference: <testLibraryFragment>::@extension::E::@method::f
+              enclosingElement: <testLibraryFragment>::@extension::E
+              returnType: void
+      topLevelVariables
+        static const x @59
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: void Function()
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: E @63
+                staticElement: <testLibraryFragment>::@extension::E
+                staticType: null
+              period: . @64
+              identifier: SimpleIdentifier
+                token: f @65
+                staticElement: <testLibraryFragment>::@extension::E::@method::f
+                staticType: void Function()
               staticElement: <testLibraryFragment>::@extension::E::@method::f
               staticType: void Function()
-            staticElement: <testLibraryFragment>::@extension::E::@method::f
-            staticType: void Function()
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: void Function()
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: void Function()
 ''');
   }
 
@@ -29076,30 +29624,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const V @15
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: dynamic Function()
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: foo @19
-            staticElement: <testLibraryFragment>::@function::foo
-            staticType: dynamic Function()
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic Function()
-    functions
-      foo @0
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const V @15
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: dynamic Function()
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: foo @19
+              staticElement: <testLibraryFragment>::@function::foo
+              staticType: dynamic Function()
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic Function()
+      functions
+        foo @0
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -29111,38 +29660,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const V @26
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: R Function<P, R>(P)
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: foo @30
-            staticElement: <testLibraryFragment>::@function::foo
-            staticType: R Function<P, R>(P)
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: R Function<P, R>(P)
-    functions
-      foo @2
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant P @6
-            defaultType: dynamic
-          covariant R @9
-            defaultType: dynamic
-        parameters
-          requiredPositional p @14
-            type: P
-        returnType: R
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const V @26
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: R Function<P, R>(P)
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: foo @30
+              staticElement: <testLibraryFragment>::@function::foo
+              staticType: R Function<P, R>(P)
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: R Function<P, R>(P)
+      functions
+        foo @2
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant P @6
+              defaultType: dynamic
+            covariant R @9
+              defaultType: dynamic
+          parameters
+            requiredPositional p @14
+              type: P
+          returnType: R
 ''');
   }
 
@@ -29161,29 +29711,30 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @23
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: dynamic Function()
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: foo @27
-            staticElement: package:test/a.dart::<fragment>::@function::foo
-            staticType: dynamic Function()
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic Function()
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @23
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: dynamic Function()
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: foo @27
+              staticElement: package:test/a.dart::<fragment>::@function::foo
+              staticType: dynamic Function()
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic Function()
 ''');
   }
 
@@ -29207,42 +29758,43 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @28
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: dynamic Function()
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: p @32
-              staticElement: <testLibraryFragment>::@prefix::p
-              staticType: null
-            period: . @33
-            identifier: SimpleIdentifier
-              token: foo @34
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @28
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: dynamic Function()
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: p @32
+                staticElement: <testLibraryFragment>::@prefix::p
+                staticType: null
+              period: . @33
+              identifier: SimpleIdentifier
+                token: foo @34
+                staticElement: package:test/a.dart::<fragment>::@function::foo
+                staticType: dynamic Function()
               staticElement: package:test/a.dart::<fragment>::@function::foo
               staticType: dynamic Function()
-            staticElement: package:test/a.dart::<fragment>::@function::foo
-            staticType: dynamic Function()
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic Function()
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic Function()
 ''');
   }
 
@@ -29254,46 +29806,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const A @6
-        reference: <testLibraryFragment>::@topLevelVariable::A
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 1 @10
-            staticType: int
-      static const B @19
-        reference: <testLibraryFragment>::@topLevelVariable::B
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: SimpleIdentifier
-              token: A @23
-              staticElement: <testLibraryFragment>::@getter::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const A @6
+          reference: <testLibraryFragment>::@topLevelVariable::A
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 1 @10
               staticType: int
-            operator: + @25
-            rightOperand: IntegerLiteral
-              literal: 2 @27
+        static const B @19
+          reference: <testLibraryFragment>::@topLevelVariable::B
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: SimpleIdentifier
+                token: A @23
+                staticElement: <testLibraryFragment>::@getter::A
+                staticType: int
+              operator: + @25
+              rightOperand: IntegerLiteral
+                literal: 2 @27
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticInvokeType: num Function(num)
               staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticInvokeType: num Function(num)
-            staticType: int
-    accessors
-      synthetic static get A @-1
-        reference: <testLibraryFragment>::@getter::A
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get B @-1
-        reference: <testLibraryFragment>::@getter::B
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get A @-1
+          reference: <testLibraryFragment>::@getter::A
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get B @-1
+          reference: <testLibraryFragment>::@getter::B
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -29312,37 +29865,38 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const B @23
-        reference: <testLibraryFragment>::@topLevelVariable::B
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: SimpleIdentifier
-              token: A @27
-              staticElement: package:test/a.dart::<fragment>::@getter::A
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const B @23
+          reference: <testLibraryFragment>::@topLevelVariable::B
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: SimpleIdentifier
+                token: A @27
+                staticElement: package:test/a.dart::<fragment>::@getter::A
+                staticType: int
+              operator: + @29
+              rightOperand: IntegerLiteral
+                literal: 2 @31
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticInvokeType: num Function(num)
               staticType: int
-            operator: + @29
-            rightOperand: IntegerLiteral
-              literal: 2 @31
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticInvokeType: num Function(num)
-            staticType: int
-    accessors
-      synthetic static get B @-1
-        reference: <testLibraryFragment>::@getter::B
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get B @-1
+          reference: <testLibraryFragment>::@getter::B
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -29366,50 +29920,51 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const B @28
-        reference: <testLibraryFragment>::@topLevelVariable::B
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: p @32
-                staticElement: <testLibraryFragment>::@prefix::p
-                staticType: null
-              period: . @33
-              identifier: SimpleIdentifier
-                token: A @34
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const B @28
+          reference: <testLibraryFragment>::@topLevelVariable::B
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: p @32
+                  staticElement: <testLibraryFragment>::@prefix::p
+                  staticType: null
+                period: . @33
+                identifier: SimpleIdentifier
+                  token: A @34
+                  staticElement: package:test/a.dart::<fragment>::@getter::A
+                  staticType: int
                 staticElement: package:test/a.dart::<fragment>::@getter::A
                 staticType: int
-              staticElement: package:test/a.dart::<fragment>::@getter::A
+              operator: + @36
+              rightOperand: IntegerLiteral
+                literal: 2 @38
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticInvokeType: num Function(num)
               staticType: int
-            operator: + @36
-            rightOperand: IntegerLiteral
-              literal: 2 @38
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticInvokeType: num Function(num)
-            staticType: int
-    accessors
-      synthetic static get B @-1
-        reference: <testLibraryFragment>::@getter::B
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get B @-1
+          reference: <testLibraryFragment>::@getter::B
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -29430,238 +29985,239 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @17
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @19
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-    enums
-      enum E @30
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant a @33
-            reference: <testLibraryFragment>::@enum::E::@field::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant b @36
-            reference: <testLibraryFragment>::@enum::E::@field::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant c @39
-            reference: <testLibraryFragment>::@enum::E::@field::c
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: a @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::a
-                    staticType: E
-                  SimpleIdentifier
-                    token: b @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::b
-                    staticType: E
-                  SimpleIdentifier
-                    token: c @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::c
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get b @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get c @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::c
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    typeAliases
-      functionTypeAliasBased F @50
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: dynamic Function(int, String)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @56
-              type: int
-            requiredPositional b @66
-              type: String
-          returnType: dynamic
-    topLevelVariables
-      static const vDynamic @76
-        reference: <testLibraryFragment>::@topLevelVariable::vDynamic
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: dynamic @87
-            staticElement: dynamic@-1
-            staticType: Type
-      static const vNull @102
-        reference: <testLibraryFragment>::@topLevelVariable::vNull
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: Null @110
-            staticElement: dart:core::<fragment>::@class::Null
-            staticType: Type
-      static const vObject @122
-        reference: <testLibraryFragment>::@topLevelVariable::vObject
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: Object @132
-            staticElement: dart:core::<fragment>::@class::Object
-            staticType: Type
-      static const vClass @146
-        reference: <testLibraryFragment>::@topLevelVariable::vClass
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: C @155
-            staticElement: <testLibraryFragment>::@class::C
-            staticType: Type
-      static const vGenericClass @164
-        reference: <testLibraryFragment>::@topLevelVariable::vGenericClass
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: D @180
-            staticElement: <testLibraryFragment>::@class::D
-            staticType: Type
-      static const vEnum @189
-        reference: <testLibraryFragment>::@topLevelVariable::vEnum
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: E @197
-            staticElement: <testLibraryFragment>::@enum::E
-            staticType: Type
-      static const vFunctionTypeAlias @206
-        reference: <testLibraryFragment>::@topLevelVariable::vFunctionTypeAlias
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: F @227
-            staticElement: <testLibraryFragment>::@typeAlias::F
-            staticType: Type
-    accessors
-      synthetic static get vDynamic @-1
-        reference: <testLibraryFragment>::@getter::vDynamic
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vNull @-1
-        reference: <testLibraryFragment>::@getter::vNull
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vObject @-1
-        reference: <testLibraryFragment>::@getter::vObject
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vClass @-1
-        reference: <testLibraryFragment>::@getter::vClass
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vGenericClass @-1
-        reference: <testLibraryFragment>::@getter::vGenericClass
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vEnum @-1
-        reference: <testLibraryFragment>::@getter::vEnum
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vFunctionTypeAlias @-1
-        reference: <testLibraryFragment>::@getter::vFunctionTypeAlias
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @17
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @19
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+      enums
+        enum E @30
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant a @33
+              reference: <testLibraryFragment>::@enum::E::@field::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant b @36
+              reference: <testLibraryFragment>::@enum::E::@field::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant c @39
+              reference: <testLibraryFragment>::@enum::E::@field::c
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: a @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::a
+                      staticType: E
+                    SimpleIdentifier
+                      token: b @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::b
+                      staticType: E
+                    SimpleIdentifier
+                      token: c @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::c
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get b @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get c @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::c
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      typeAliases
+        functionTypeAliasBased F @50
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: dynamic Function(int, String)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @56
+                type: int
+              requiredPositional b @66
+                type: String
+            returnType: dynamic
+      topLevelVariables
+        static const vDynamic @76
+          reference: <testLibraryFragment>::@topLevelVariable::vDynamic
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: dynamic @87
+              staticElement: dynamic@-1
+              staticType: Type
+        static const vNull @102
+          reference: <testLibraryFragment>::@topLevelVariable::vNull
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: Null @110
+              staticElement: dart:core::<fragment>::@class::Null
+              staticType: Type
+        static const vObject @122
+          reference: <testLibraryFragment>::@topLevelVariable::vObject
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: Object @132
+              staticElement: dart:core::<fragment>::@class::Object
+              staticType: Type
+        static const vClass @146
+          reference: <testLibraryFragment>::@topLevelVariable::vClass
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: C @155
+              staticElement: <testLibraryFragment>::@class::C
+              staticType: Type
+        static const vGenericClass @164
+          reference: <testLibraryFragment>::@topLevelVariable::vGenericClass
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: D @180
+              staticElement: <testLibraryFragment>::@class::D
+              staticType: Type
+        static const vEnum @189
+          reference: <testLibraryFragment>::@topLevelVariable::vEnum
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: E @197
+              staticElement: <testLibraryFragment>::@enum::E
+              staticType: Type
+        static const vFunctionTypeAlias @206
+          reference: <testLibraryFragment>::@topLevelVariable::vFunctionTypeAlias
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: F @227
+              staticElement: <testLibraryFragment>::@typeAlias::F
+              staticType: Type
+      accessors
+        synthetic static get vDynamic @-1
+          reference: <testLibraryFragment>::@getter::vDynamic
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vNull @-1
+          reference: <testLibraryFragment>::@getter::vNull
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vObject @-1
+          reference: <testLibraryFragment>::@getter::vObject
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vClass @-1
+          reference: <testLibraryFragment>::@getter::vClass
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vGenericClass @-1
+          reference: <testLibraryFragment>::@getter::vGenericClass
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vEnum @-1
+          reference: <testLibraryFragment>::@getter::vEnum
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vFunctionTypeAlias @-1
+          reference: <testLibraryFragment>::@getter::vFunctionTypeAlias
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
 ''');
   }
 
@@ -29675,34 +30231,35 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @19
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final f @31
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: List<dynamic Function()>
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: List<dynamic Function()>
-    typeAliases
-      functionTypeAliasBased F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: dynamic Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @19
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final f @31
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: List<dynamic Function()>
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: List<dynamic Function()>
+      typeAliases
+        functionTypeAliasBased F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: dynamic Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: dynamic
 ''');
   }
 
@@ -29725,57 +30282,58 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const vClass @23
-        reference: <testLibraryFragment>::@topLevelVariable::vClass
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: C @32
-            staticElement: package:test/a.dart::<fragment>::@class::C
-            staticType: Type
-      static const vEnum @41
-        reference: <testLibraryFragment>::@topLevelVariable::vEnum
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: E @49
-            staticElement: package:test/a.dart::<fragment>::@enum::E
-            staticType: Type
-      static const vFunctionTypeAlias @58
-        reference: <testLibraryFragment>::@topLevelVariable::vFunctionTypeAlias
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: F @79
-            staticElement: package:test/a.dart::<fragment>::@typeAlias::F
-            staticType: Type
-    accessors
-      synthetic static get vClass @-1
-        reference: <testLibraryFragment>::@getter::vClass
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vEnum @-1
-        reference: <testLibraryFragment>::@getter::vEnum
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vFunctionTypeAlias @-1
-        reference: <testLibraryFragment>::@getter::vFunctionTypeAlias
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const vClass @23
+          reference: <testLibraryFragment>::@topLevelVariable::vClass
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: C @32
+              staticElement: package:test/a.dart::<fragment>::@class::C
+              staticType: Type
+        static const vEnum @41
+          reference: <testLibraryFragment>::@topLevelVariable::vEnum
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: E @49
+              staticElement: package:test/a.dart::<fragment>::@enum::E
+              staticType: Type
+        static const vFunctionTypeAlias @58
+          reference: <testLibraryFragment>::@topLevelVariable::vFunctionTypeAlias
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: F @79
+              staticElement: package:test/a.dart::<fragment>::@typeAlias::F
+              staticType: Type
+      accessors
+        synthetic static get vClass @-1
+          reference: <testLibraryFragment>::@getter::vClass
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vEnum @-1
+          reference: <testLibraryFragment>::@getter::vEnum
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vFunctionTypeAlias @-1
+          reference: <testLibraryFragment>::@getter::vFunctionTypeAlias
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
 ''');
   }
 
@@ -29803,86 +30361,87 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const vClass @28
-        reference: <testLibraryFragment>::@topLevelVariable::vClass
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: p @37
-              staticElement: <testLibraryFragment>::@prefix::p
-              staticType: null
-            period: . @38
-            identifier: SimpleIdentifier
-              token: C @39
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const vClass @28
+          reference: <testLibraryFragment>::@topLevelVariable::vClass
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: p @37
+                staticElement: <testLibraryFragment>::@prefix::p
+                staticType: null
+              period: . @38
+              identifier: SimpleIdentifier
+                token: C @39
+                staticElement: package:test/a.dart::<fragment>::@class::C
+                staticType: Type
               staticElement: package:test/a.dart::<fragment>::@class::C
               staticType: Type
-            staticElement: package:test/a.dart::<fragment>::@class::C
-            staticType: Type
-      static const vEnum @48
-        reference: <testLibraryFragment>::@topLevelVariable::vEnum
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: p @56
-              staticElement: <testLibraryFragment>::@prefix::p
-              staticType: null
-            period: . @57
-            identifier: SimpleIdentifier
-              token: E @58
+        static const vEnum @48
+          reference: <testLibraryFragment>::@topLevelVariable::vEnum
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: p @56
+                staticElement: <testLibraryFragment>::@prefix::p
+                staticType: null
+              period: . @57
+              identifier: SimpleIdentifier
+                token: E @58
+                staticElement: package:test/a.dart::<fragment>::@enum::E
+                staticType: Type
               staticElement: package:test/a.dart::<fragment>::@enum::E
               staticType: Type
-            staticElement: package:test/a.dart::<fragment>::@enum::E
-            staticType: Type
-      static const vFunctionTypeAlias @67
-        reference: <testLibraryFragment>::@topLevelVariable::vFunctionTypeAlias
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: p @88
-              staticElement: <testLibraryFragment>::@prefix::p
-              staticType: null
-            period: . @89
-            identifier: SimpleIdentifier
-              token: F @90
+        static const vFunctionTypeAlias @67
+          reference: <testLibraryFragment>::@topLevelVariable::vFunctionTypeAlias
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: p @88
+                staticElement: <testLibraryFragment>::@prefix::p
+                staticType: null
+              period: . @89
+              identifier: SimpleIdentifier
+                token: F @90
+                staticElement: package:test/a.dart::<fragment>::@typeAlias::F
+                staticType: Type
               staticElement: package:test/a.dart::<fragment>::@typeAlias::F
               staticType: Type
-            staticElement: package:test/a.dart::<fragment>::@typeAlias::F
-            staticType: Type
-    accessors
-      synthetic static get vClass @-1
-        reference: <testLibraryFragment>::@getter::vClass
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vEnum @-1
-        reference: <testLibraryFragment>::@getter::vEnum
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
-      synthetic static get vFunctionTypeAlias @-1
-        reference: <testLibraryFragment>::@getter::vFunctionTypeAlias
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
+      accessors
+        synthetic static get vClass @-1
+          reference: <testLibraryFragment>::@getter::vClass
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vEnum @-1
+          reference: <testLibraryFragment>::@getter::vEnum
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
+        synthetic static get vFunctionTypeAlias @-1
+          reference: <testLibraryFragment>::@getter::vFunctionTypeAlias
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
 ''');
   }
 
@@ -29895,31 +30454,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        fields
-          final f @21
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: List<T>
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: List<T>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          fields
+            final f @21
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: List<T>
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: List<T>
 ''');
   }
 
@@ -29930,25 +30490,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const V @6
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: foo @10
-            staticElement: <null>
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const V @6
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: foo @10
+              staticElement: <null>
+              staticType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -29960,41 +30521,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static const V @17
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixedIdentifier
-            prefix: SimpleIdentifier
-              token: C @21
-              staticElement: <testLibraryFragment>::@class::C
-              staticType: null
-            period: . @22
-            identifier: SimpleIdentifier
-              token: foo @23
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static const V @17
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixedIdentifier
+              prefix: SimpleIdentifier
+                token: C @21
+                staticElement: <testLibraryFragment>::@class::C
+                staticType: null
+              period: . @22
+              identifier: SimpleIdentifier
+                token: foo @23
+                staticElement: <null>
+                staticType: InvalidType
               staticElement: <null>
               staticType: InvalidType
-            staticElement: <null>
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -30018,49 +30580,50 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart as p @21
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @21
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const V @30
-        reference: <testLibraryFragment>::@topLevelVariable::V
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PropertyAccess
-            target: PrefixedIdentifier
-              prefix: SimpleIdentifier
-                token: p @34
-                staticElement: <testLibraryFragment>::@prefix::p
-                staticType: null
-              period: . @35
-              identifier: SimpleIdentifier
-                token: C @36
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart as p @21
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @21
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const V @30
+          reference: <testLibraryFragment>::@topLevelVariable::V
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PropertyAccess
+              target: PrefixedIdentifier
+                prefix: SimpleIdentifier
+                  token: p @34
+                  staticElement: <testLibraryFragment>::@prefix::p
+                  staticType: null
+                period: . @35
+                identifier: SimpleIdentifier
+                  token: C @36
+                  staticElement: package:test/foo.dart::<fragment>::@class::C
+                  staticType: null
                 staticElement: package:test/foo.dart::<fragment>::@class::C
                 staticType: null
-              staticElement: package:test/foo.dart::<fragment>::@class::C
-              staticType: null
-            operator: . @37
-            propertyName: SimpleIdentifier
-              token: foo @38
-              staticElement: <null>
+              operator: . @37
+              propertyName: SimpleIdentifier
+                token: foo @38
+                staticElement: <null>
+                staticType: InvalidType
               staticType: InvalidType
-            staticType: InvalidType
-    accessors
-      synthetic static get V @-1
-        reference: <testLibraryFragment>::@getter::V
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+      accessors
+        synthetic static get V @-1
+          reference: <testLibraryFragment>::@getter::V
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -30071,46 +30634,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @27
-            leftBracket: { @28
-            elements
-              IfElement
-                ifKeyword: if @29
-                leftParenthesis: ( @32
-                expression: 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
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @27
+              leftBracket: { @28
+              elements
+                IfElement
+                  ifKeyword: if @29
+                  leftParenthesis: ( @32
+                  expression: 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
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -30124,31 +30688,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            leftBracket: { @23
-            elements
-              IntegerLiteral
-                literal: 1 @24
-                staticType: int
-            rightBracket: } @25
-            isMap: false
-            staticType: Set<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              leftBracket: { @23
+              elements
+                IntegerLiteral
+                  literal: 1 @24
+                  staticType: int
+              rightBracket: } @25
+              isMap: false
+              staticType: Set<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -30159,55 +30724,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @27
-            leftBracket: { @28
-            elements
-              SpreadElement
-                spreadOperator: ... @29
-                expression: SetOrMapLiteral
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @32
-                    arguments
-                      NamedType
-                        name: int @33
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                    rightBracket: > @36
-                  leftBracket: { @37
-                  elements
-                    IntegerLiteral
-                      literal: 1 @38
-                      staticType: int
-                  rightBracket: } @39
-                  isMap: false
-                  staticType: Set<int>
-            rightBracket: } @40
-            isMap: false
-            staticType: Set<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @27
+              leftBracket: { @28
+              elements
+                SpreadElement
+                  spreadOperator: ... @29
+                  expression: SetOrMapLiteral
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @32
+                      arguments
+                        NamedType
+                          name: int @33
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                      rightBracket: > @36
+                    leftBracket: { @37
+                    elements
+                      IntegerLiteral
+                        literal: 1 @38
+                        staticType: int
+                    rightBracket: } @39
+                    isMap: false
+                    staticType: Set<int>
+              rightBracket: } @40
+              isMap: false
+              staticType: Set<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -30218,55 +30784,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const x @13
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Object
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @17
-            typeArguments: TypeArgumentList
-              leftBracket: < @23
-              arguments
-                NamedType
-                  name: int @24
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @27
-            leftBracket: { @28
-            elements
-              SpreadElement
-                spreadOperator: ...? @29
-                expression: SetOrMapLiteral
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @33
-                    arguments
-                      NamedType
-                        name: int @34
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                    rightBracket: > @37
-                  leftBracket: { @38
-                  elements
-                    IntegerLiteral
-                      literal: 1 @39
-                      staticType: int
-                  rightBracket: } @40
-                  isMap: false
-                  staticType: Set<int>
-            rightBracket: } @41
-            isMap: false
-            staticType: Set<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const x @13
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Object
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @17
+              typeArguments: TypeArgumentList
+                leftBracket: < @23
+                arguments
+                  NamedType
+                    name: int @24
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @27
+              leftBracket: { @28
+              elements
+                SpreadElement
+                  spreadOperator: ...? @29
+                  expression: SetOrMapLiteral
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @33
+                      arguments
+                        NamedType
+                          name: int @34
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                      rightBracket: > @37
+                    leftBracket: { @38
+                    elements
+                      IntegerLiteral
+                        literal: 1 @39
+                        staticType: int
+                    rightBracket: } @40
+                    isMap: false
+                    staticType: Set<int>
+              rightBracket: } @41
+              isMap: false
+              staticType: Set<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Object
 ''');
   }
 
@@ -30294,389 +30861,390 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vEqual @6
-        reference: <testLibraryFragment>::@topLevelVariable::vEqual
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @15
-              staticType: int
-            operator: == @17
-            rightOperand: IntegerLiteral
-              literal: 2 @20
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::==
-            staticInvokeType: bool Function(Object)
-            staticType: bool
-      static const vAnd @29
-        reference: <testLibraryFragment>::@topLevelVariable::vAnd
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: BooleanLiteral
-              literal: true @36
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vEqual @6
+          reference: <testLibraryFragment>::@topLevelVariable::vEqual
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @15
+                staticType: int
+              operator: == @17
+              rightOperand: IntegerLiteral
+                literal: 2 @20
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::==
+              staticInvokeType: bool Function(Object)
               staticType: bool
-            operator: && @41
-            rightOperand: BooleanLiteral
-              literal: false @44
+        static const vAnd @29
+          reference: <testLibraryFragment>::@topLevelVariable::vAnd
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: BooleanLiteral
+                literal: true @36
+                staticType: bool
+              operator: && @41
+              rightOperand: BooleanLiteral
+                literal: false @44
+                staticType: bool
+              staticElement: <null>
+              staticInvokeType: null
               staticType: bool
-            staticElement: <null>
-            staticInvokeType: null
-            staticType: bool
-      static const vOr @57
-        reference: <testLibraryFragment>::@topLevelVariable::vOr
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: BooleanLiteral
-              literal: false @63
+        static const vOr @57
+          reference: <testLibraryFragment>::@topLevelVariable::vOr
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: BooleanLiteral
+                literal: false @63
+                staticType: bool
+              operator: || @69
+              rightOperand: BooleanLiteral
+                literal: true @72
+                staticType: bool
+              staticElement: <null>
+              staticInvokeType: null
               staticType: bool
-            operator: || @69
-            rightOperand: BooleanLiteral
-              literal: true @72
+        static const vBitXor @84
+          reference: <testLibraryFragment>::@topLevelVariable::vBitXor
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @94
+                staticType: int
+              operator: ^ @96
+              rightOperand: IntegerLiteral
+                literal: 2 @98
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::^
+              staticInvokeType: int Function(int)
+              staticType: int
+        static const vBitAnd @107
+          reference: <testLibraryFragment>::@topLevelVariable::vBitAnd
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @117
+                staticType: int
+              operator: & @119
+              rightOperand: IntegerLiteral
+                literal: 2 @121
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::&
+              staticInvokeType: int Function(int)
+              staticType: int
+        static const vBitOr @130
+          reference: <testLibraryFragment>::@topLevelVariable::vBitOr
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @139
+                staticType: int
+              operator: | @141
+              rightOperand: IntegerLiteral
+                literal: 2 @143
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::|
+              staticInvokeType: int Function(int)
+              staticType: int
+        static const vBitShiftLeft @152
+          reference: <testLibraryFragment>::@topLevelVariable::vBitShiftLeft
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @168
+                staticType: int
+              operator: << @170
+              rightOperand: IntegerLiteral
+                literal: 2 @173
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::<<
+              staticInvokeType: int Function(int)
+              staticType: int
+        static const vBitShiftRight @182
+          reference: <testLibraryFragment>::@topLevelVariable::vBitShiftRight
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @199
+                staticType: int
+              operator: >> @201
+              rightOperand: IntegerLiteral
+                literal: 2 @204
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::>>
+              staticInvokeType: int Function(int)
+              staticType: int
+        static const vAdd @213
+          reference: <testLibraryFragment>::@topLevelVariable::vAdd
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @220
+                staticType: int
+              operator: + @222
+              rightOperand: IntegerLiteral
+                literal: 2 @224
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::+
+              staticInvokeType: num Function(num)
+              staticType: int
+        static const vSubtract @233
+          reference: <testLibraryFragment>::@topLevelVariable::vSubtract
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @245
+                staticType: int
+              operator: - @247
+              rightOperand: IntegerLiteral
+                literal: 2 @249
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::-
+              staticInvokeType: num Function(num)
+              staticType: int
+        static const vMiltiply @258
+          reference: <testLibraryFragment>::@topLevelVariable::vMiltiply
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @270
+                staticType: int
+              operator: * @272
+              rightOperand: IntegerLiteral
+                literal: 2 @274
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::*
+              staticInvokeType: num Function(num)
+              staticType: int
+        static const vDivide @283
+          reference: <testLibraryFragment>::@topLevelVariable::vDivide
+          enclosingElement: <testLibraryFragment>
+          type: double
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @293
+                staticType: int
+              operator: / @295
+              rightOperand: IntegerLiteral
+                literal: 2 @297
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::/
+              staticInvokeType: double Function(num)
+              staticType: double
+        static const vFloorDivide @306
+          reference: <testLibraryFragment>::@topLevelVariable::vFloorDivide
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @321
+                staticType: int
+              operator: ~/ @323
+              rightOperand: IntegerLiteral
+                literal: 2 @326
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::~/
+              staticInvokeType: int Function(num)
+              staticType: int
+        static const vModulo @335
+          reference: <testLibraryFragment>::@topLevelVariable::vModulo
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @345
+                staticType: int
+              operator: % @347
+              rightOperand: IntegerLiteral
+                literal: 2 @349
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::%
+              staticInvokeType: num Function(num)
+              staticType: int
+        static const vGreater @358
+          reference: <testLibraryFragment>::@topLevelVariable::vGreater
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @369
+                staticType: int
+              operator: > @371
+              rightOperand: IntegerLiteral
+                literal: 2 @373
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::>
+              staticInvokeType: bool Function(num)
               staticType: bool
-            staticElement: <null>
-            staticInvokeType: null
-            staticType: bool
-      static const vBitXor @84
-        reference: <testLibraryFragment>::@topLevelVariable::vBitXor
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @94
-              staticType: int
-            operator: ^ @96
-            rightOperand: IntegerLiteral
-              literal: 2 @98
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::^
-            staticInvokeType: int Function(int)
-            staticType: int
-      static const vBitAnd @107
-        reference: <testLibraryFragment>::@topLevelVariable::vBitAnd
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @117
-              staticType: int
-            operator: & @119
-            rightOperand: IntegerLiteral
-              literal: 2 @121
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::&
-            staticInvokeType: int Function(int)
-            staticType: int
-      static const vBitOr @130
-        reference: <testLibraryFragment>::@topLevelVariable::vBitOr
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @139
-              staticType: int
-            operator: | @141
-            rightOperand: IntegerLiteral
-              literal: 2 @143
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::|
-            staticInvokeType: int Function(int)
-            staticType: int
-      static const vBitShiftLeft @152
-        reference: <testLibraryFragment>::@topLevelVariable::vBitShiftLeft
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @168
-              staticType: int
-            operator: << @170
-            rightOperand: IntegerLiteral
-              literal: 2 @173
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::<<
-            staticInvokeType: int Function(int)
-            staticType: int
-      static const vBitShiftRight @182
-        reference: <testLibraryFragment>::@topLevelVariable::vBitShiftRight
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @199
-              staticType: int
-            operator: >> @201
-            rightOperand: IntegerLiteral
-              literal: 2 @204
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::>>
-            staticInvokeType: int Function(int)
-            staticType: int
-      static const vAdd @213
-        reference: <testLibraryFragment>::@topLevelVariable::vAdd
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @220
-              staticType: int
-            operator: + @222
-            rightOperand: IntegerLiteral
-              literal: 2 @224
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::+
-            staticInvokeType: num Function(num)
-            staticType: int
-      static const vSubtract @233
-        reference: <testLibraryFragment>::@topLevelVariable::vSubtract
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @245
-              staticType: int
-            operator: - @247
-            rightOperand: IntegerLiteral
-              literal: 2 @249
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::-
-            staticInvokeType: num Function(num)
-            staticType: int
-      static const vMiltiply @258
-        reference: <testLibraryFragment>::@topLevelVariable::vMiltiply
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @270
-              staticType: int
-            operator: * @272
-            rightOperand: IntegerLiteral
-              literal: 2 @274
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::*
-            staticInvokeType: num Function(num)
-            staticType: int
-      static const vDivide @283
-        reference: <testLibraryFragment>::@topLevelVariable::vDivide
-        enclosingElement: <testLibraryFragment>
-        type: double
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @293
-              staticType: int
-            operator: / @295
-            rightOperand: IntegerLiteral
-              literal: 2 @297
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::/
-            staticInvokeType: double Function(num)
-            staticType: double
-      static const vFloorDivide @306
-        reference: <testLibraryFragment>::@topLevelVariable::vFloorDivide
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @321
-              staticType: int
-            operator: ~/ @323
-            rightOperand: IntegerLiteral
-              literal: 2 @326
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::~/
-            staticInvokeType: int Function(num)
-            staticType: int
-      static const vModulo @335
-        reference: <testLibraryFragment>::@topLevelVariable::vModulo
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @345
-              staticType: int
-            operator: % @347
-            rightOperand: IntegerLiteral
-              literal: 2 @349
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::%
-            staticInvokeType: num Function(num)
-            staticType: int
-      static const vGreater @358
-        reference: <testLibraryFragment>::@topLevelVariable::vGreater
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @369
-              staticType: int
-            operator: > @371
-            rightOperand: IntegerLiteral
-              literal: 2 @373
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::>
-            staticInvokeType: bool Function(num)
-            staticType: bool
-      static const vGreaterEqual @382
-        reference: <testLibraryFragment>::@topLevelVariable::vGreaterEqual
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @398
-              staticType: int
-            operator: >= @400
-            rightOperand: IntegerLiteral
-              literal: 2 @403
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::>=
-            staticInvokeType: bool Function(num)
-            staticType: bool
-      static const vLess @412
-        reference: <testLibraryFragment>::@topLevelVariable::vLess
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @420
-              staticType: int
-            operator: < @422
-            rightOperand: IntegerLiteral
-              literal: 2 @424
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::<
-            staticInvokeType: bool Function(num)
-            staticType: bool
-      static const vLessEqual @433
-        reference: <testLibraryFragment>::@topLevelVariable::vLessEqual
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @446
-              staticType: int
-            operator: <= @448
-            rightOperand: IntegerLiteral
-              literal: 2 @451
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::<=
-            staticInvokeType: bool Function(num)
-            staticType: bool
-    accessors
-      synthetic static get vEqual @-1
-        reference: <testLibraryFragment>::@getter::vEqual
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vAnd @-1
-        reference: <testLibraryFragment>::@getter::vAnd
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vOr @-1
-        reference: <testLibraryFragment>::@getter::vOr
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vBitXor @-1
-        reference: <testLibraryFragment>::@getter::vBitXor
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vBitAnd @-1
-        reference: <testLibraryFragment>::@getter::vBitAnd
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vBitOr @-1
-        reference: <testLibraryFragment>::@getter::vBitOr
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vBitShiftLeft @-1
-        reference: <testLibraryFragment>::@getter::vBitShiftLeft
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vBitShiftRight @-1
-        reference: <testLibraryFragment>::@getter::vBitShiftRight
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vAdd @-1
-        reference: <testLibraryFragment>::@getter::vAdd
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vSubtract @-1
-        reference: <testLibraryFragment>::@getter::vSubtract
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vMiltiply @-1
-        reference: <testLibraryFragment>::@getter::vMiltiply
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vDivide @-1
-        reference: <testLibraryFragment>::@getter::vDivide
-        enclosingElement: <testLibraryFragment>
-        returnType: double
-      synthetic static get vFloorDivide @-1
-        reference: <testLibraryFragment>::@getter::vFloorDivide
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vModulo @-1
-        reference: <testLibraryFragment>::@getter::vModulo
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vGreater @-1
-        reference: <testLibraryFragment>::@getter::vGreater
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vGreaterEqual @-1
-        reference: <testLibraryFragment>::@getter::vGreaterEqual
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vLess @-1
-        reference: <testLibraryFragment>::@getter::vLess
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vLessEqual @-1
-        reference: <testLibraryFragment>::@getter::vLessEqual
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
+        static const vGreaterEqual @382
+          reference: <testLibraryFragment>::@topLevelVariable::vGreaterEqual
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @398
+                staticType: int
+              operator: >= @400
+              rightOperand: IntegerLiteral
+                literal: 2 @403
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::>=
+              staticInvokeType: bool Function(num)
+              staticType: bool
+        static const vLess @412
+          reference: <testLibraryFragment>::@topLevelVariable::vLess
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @420
+                staticType: int
+              operator: < @422
+              rightOperand: IntegerLiteral
+                literal: 2 @424
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::<
+              staticInvokeType: bool Function(num)
+              staticType: bool
+        static const vLessEqual @433
+          reference: <testLibraryFragment>::@topLevelVariable::vLessEqual
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @446
+                staticType: int
+              operator: <= @448
+              rightOperand: IntegerLiteral
+                literal: 2 @451
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::<=
+              staticInvokeType: bool Function(num)
+              staticType: bool
+      accessors
+        synthetic static get vEqual @-1
+          reference: <testLibraryFragment>::@getter::vEqual
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vAnd @-1
+          reference: <testLibraryFragment>::@getter::vAnd
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vOr @-1
+          reference: <testLibraryFragment>::@getter::vOr
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vBitXor @-1
+          reference: <testLibraryFragment>::@getter::vBitXor
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vBitAnd @-1
+          reference: <testLibraryFragment>::@getter::vBitAnd
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vBitOr @-1
+          reference: <testLibraryFragment>::@getter::vBitOr
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vBitShiftLeft @-1
+          reference: <testLibraryFragment>::@getter::vBitShiftLeft
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vBitShiftRight @-1
+          reference: <testLibraryFragment>::@getter::vBitShiftRight
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vAdd @-1
+          reference: <testLibraryFragment>::@getter::vAdd
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vSubtract @-1
+          reference: <testLibraryFragment>::@getter::vSubtract
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vMiltiply @-1
+          reference: <testLibraryFragment>::@getter::vMiltiply
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vDivide @-1
+          reference: <testLibraryFragment>::@getter::vDivide
+          enclosingElement: <testLibraryFragment>
+          returnType: double
+        synthetic static get vFloorDivide @-1
+          reference: <testLibraryFragment>::@getter::vFloorDivide
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vModulo @-1
+          reference: <testLibraryFragment>::@getter::vModulo
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vGreater @-1
+          reference: <testLibraryFragment>::@getter::vGreater
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vGreaterEqual @-1
+          reference: <testLibraryFragment>::@getter::vGreaterEqual
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vLess @-1
+          reference: <testLibraryFragment>::@getter::vLess
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vLessEqual @-1
+          reference: <testLibraryFragment>::@getter::vLessEqual
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
 ''');
   }
 
@@ -30687,46 +31255,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vConditional @6
-        reference: <testLibraryFragment>::@topLevelVariable::vConditional
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ConditionalExpression
-            condition: ParenthesizedExpression
-              leftParenthesis: ( @21
-              expression: BinaryExpression
-                leftOperand: IntegerLiteral
-                  literal: 1 @22
-                  staticType: int
-                operator: == @24
-                rightOperand: IntegerLiteral
-                  literal: 2 @27
-                  staticType: int
-                staticElement: dart:core::<fragment>::@class::num::@method::==
-                staticInvokeType: bool Function(Object)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vConditional @6
+          reference: <testLibraryFragment>::@topLevelVariable::vConditional
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ConditionalExpression
+              condition: ParenthesizedExpression
+                leftParenthesis: ( @21
+                expression: BinaryExpression
+                  leftOperand: IntegerLiteral
+                    literal: 1 @22
+                    staticType: int
+                  operator: == @24
+                  rightOperand: IntegerLiteral
+                    literal: 2 @27
+                    staticType: int
+                  staticElement: dart:core::<fragment>::@class::num::@method::==
+                  staticInvokeType: bool Function(Object)
+                  staticType: bool
+                rightParenthesis: ) @28
                 staticType: bool
-              rightParenthesis: ) @28
-              staticType: bool
-            question: ? @30
-            thenExpression: IntegerLiteral
-              literal: 11 @32
+              question: ? @30
+              thenExpression: IntegerLiteral
+                literal: 11 @32
+                staticType: int
+              colon: : @35
+              elseExpression: IntegerLiteral
+                literal: 22 @37
+                staticType: int
               staticType: int
-            colon: : @35
-            elseExpression: IntegerLiteral
-              literal: 22 @37
-              staticType: int
-            staticType: int
-    accessors
-      synthetic static get vConditional @-1
-        reference: <testLibraryFragment>::@getter::vConditional
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get vConditional @-1
+          reference: <testLibraryFragment>::@getter::vConditional
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -30737,46 +31306,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vIdentical @6
-        reference: <testLibraryFragment>::@topLevelVariable::vIdentical
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ConditionalExpression
-            condition: ParenthesizedExpression
-              leftParenthesis: ( @19
-              expression: BinaryExpression
-                leftOperand: IntegerLiteral
-                  literal: 1 @20
-                  staticType: int
-                operator: == @22
-                rightOperand: IntegerLiteral
-                  literal: 2 @25
-                  staticType: int
-                staticElement: dart:core::<fragment>::@class::num::@method::==
-                staticInvokeType: bool Function(Object)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vIdentical @6
+          reference: <testLibraryFragment>::@topLevelVariable::vIdentical
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ConditionalExpression
+              condition: ParenthesizedExpression
+                leftParenthesis: ( @19
+                expression: BinaryExpression
+                  leftOperand: IntegerLiteral
+                    literal: 1 @20
+                    staticType: int
+                  operator: == @22
+                  rightOperand: IntegerLiteral
+                    literal: 2 @25
+                    staticType: int
+                  staticElement: dart:core::<fragment>::@class::num::@method::==
+                  staticInvokeType: bool Function(Object)
+                  staticType: bool
+                rightParenthesis: ) @26
                 staticType: bool
-              rightParenthesis: ) @26
-              staticType: bool
-            question: ? @28
-            thenExpression: IntegerLiteral
-              literal: 11 @30
+              question: ? @28
+              thenExpression: IntegerLiteral
+                literal: 11 @30
+                staticType: int
+              colon: : @33
+              elseExpression: IntegerLiteral
+                literal: 22 @35
+                staticType: int
               staticType: int
-            colon: : @33
-            elseExpression: IntegerLiteral
-              literal: 22 @35
-              staticType: int
-            staticType: int
-    accessors
-      synthetic static get vIdentical @-1
-        reference: <testLibraryFragment>::@getter::vIdentical
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get vIdentical @-1
+          reference: <testLibraryFragment>::@getter::vIdentical
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -30787,32 +31357,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vIfNull @6
-        reference: <testLibraryFragment>::@topLevelVariable::vIfNull
-        enclosingElement: <testLibraryFragment>
-        type: num
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @16
-              staticType: int
-            operator: ?? @18
-            rightOperand: DoubleLiteral
-              literal: 2.0 @21
-              staticType: double
-            staticElement: <null>
-            staticInvokeType: null
-            staticType: num
-    accessors
-      synthetic static get vIfNull @-1
-        reference: <testLibraryFragment>::@getter::vIfNull
-        enclosingElement: <testLibraryFragment>
-        returnType: num
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vIfNull @6
+          reference: <testLibraryFragment>::@topLevelVariable::vIfNull
+          enclosingElement: <testLibraryFragment>
+          type: num
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @16
+                staticType: int
+              operator: ?? @18
+              rightOperand: DoubleLiteral
+                literal: 2.0 @21
+                staticType: double
+              staticElement: <null>
+              staticInvokeType: null
+              staticType: num
+      accessors
+        synthetic static get vIfNull @-1
+          reference: <testLibraryFragment>::@getter::vIfNull
+          enclosingElement: <testLibraryFragment>
+          returnType: num
 ''');
   }
 
@@ -30835,213 +31406,214 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vNull @6
-        reference: <testLibraryFragment>::@topLevelVariable::vNull
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          NullLiteral
-            literal: null @14
-            staticType: Null
-      static const vBoolFalse @26
-        reference: <testLibraryFragment>::@topLevelVariable::vBoolFalse
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BooleanLiteral
-            literal: false @39
-            staticType: bool
-      static const vBoolTrue @52
-        reference: <testLibraryFragment>::@topLevelVariable::vBoolTrue
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BooleanLiteral
-            literal: true @64
-            staticType: bool
-      static const vIntPositive @76
-        reference: <testLibraryFragment>::@topLevelVariable::vIntPositive
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 1 @91
-            staticType: int
-      static const vIntNegative @100
-        reference: <testLibraryFragment>::@topLevelVariable::vIntNegative
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixExpression
-            operator: - @115
-            operand: IntegerLiteral
-              literal: 2 @116
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vNull @6
+          reference: <testLibraryFragment>::@topLevelVariable::vNull
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            NullLiteral
+              literal: null @14
+              staticType: Null
+        static const vBoolFalse @26
+          reference: <testLibraryFragment>::@topLevelVariable::vBoolFalse
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BooleanLiteral
+              literal: false @39
+              staticType: bool
+        static const vBoolTrue @52
+          reference: <testLibraryFragment>::@topLevelVariable::vBoolTrue
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BooleanLiteral
+              literal: true @64
+              staticType: bool
+        static const vIntPositive @76
+          reference: <testLibraryFragment>::@topLevelVariable::vIntPositive
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 1 @91
               staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::unary-
-            staticType: int
-      static const vIntLong1 @125
-        reference: <testLibraryFragment>::@topLevelVariable::vIntLong1
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0x7FFFFFFFFFFFFFFF @137
-            staticType: int
-      static const vIntLong2 @163
-        reference: <testLibraryFragment>::@topLevelVariable::vIntLong2
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0xFFFFFFFFFFFFFFFF @175
-            staticType: int
-      static const vIntLong3 @201
-        reference: <testLibraryFragment>::@topLevelVariable::vIntLong3
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          IntegerLiteral
-            literal: 0x8000000000000000 @213
-            staticType: int
-      static const vDouble @239
-        reference: <testLibraryFragment>::@topLevelVariable::vDouble
-        enclosingElement: <testLibraryFragment>
-        type: double
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          DoubleLiteral
-            literal: 2.3 @249
-            staticType: double
-      static const vString @260
-        reference: <testLibraryFragment>::@topLevelVariable::vString
-        enclosingElement: <testLibraryFragment>
-        type: String
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleStringLiteral
-            literal: 'abc' @270
-      static const vStringConcat @283
-        reference: <testLibraryFragment>::@topLevelVariable::vStringConcat
-        enclosingElement: <testLibraryFragment>
-        type: String
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          AdjacentStrings
-            strings
-              SimpleStringLiteral
-                literal: 'aaa' @299
-              SimpleStringLiteral
-                literal: 'bbb' @305
-            staticType: String
-            stringValue: aaabbb
-      static const vStringInterpolation @318
-        reference: <testLibraryFragment>::@topLevelVariable::vStringInterpolation
-        enclosingElement: <testLibraryFragment>
-        type: String
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          StringInterpolation
-            elements
-              InterpolationString
-                contents: 'aaa  @341
-              InterpolationExpression
-                leftBracket: ${ @346
-                expression: BooleanLiteral
-                  literal: true @348
-                  staticType: bool
-                rightBracket: } @352
-              InterpolationString
-                contents:   @353
-              InterpolationExpression
-                leftBracket: ${ @354
-                expression: IntegerLiteral
-                  literal: 42 @356
-                  staticType: int
-                rightBracket: } @358
-              InterpolationString
-                contents:  bbb' @359
-            staticType: String
-            stringValue: null
-      static const vSymbol @372
-        reference: <testLibraryFragment>::@topLevelVariable::vSymbol
-        enclosingElement: <testLibraryFragment>
-        type: Symbol
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SymbolLiteral
-            poundSign: # @382
-            components
-              aaa
-                offset: 383
-              bbb
-                offset: 387
-              ccc
-                offset: 391
-    accessors
-      synthetic static get vNull @-1
-        reference: <testLibraryFragment>::@getter::vNull
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      synthetic static get vBoolFalse @-1
-        reference: <testLibraryFragment>::@getter::vBoolFalse
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vBoolTrue @-1
-        reference: <testLibraryFragment>::@getter::vBoolTrue
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vIntPositive @-1
-        reference: <testLibraryFragment>::@getter::vIntPositive
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vIntNegative @-1
-        reference: <testLibraryFragment>::@getter::vIntNegative
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vIntLong1 @-1
-        reference: <testLibraryFragment>::@getter::vIntLong1
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vIntLong2 @-1
-        reference: <testLibraryFragment>::@getter::vIntLong2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vIntLong3 @-1
-        reference: <testLibraryFragment>::@getter::vIntLong3
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vDouble @-1
-        reference: <testLibraryFragment>::@getter::vDouble
-        enclosingElement: <testLibraryFragment>
-        returnType: double
-      synthetic static get vString @-1
-        reference: <testLibraryFragment>::@getter::vString
-        enclosingElement: <testLibraryFragment>
-        returnType: String
-      synthetic static get vStringConcat @-1
-        reference: <testLibraryFragment>::@getter::vStringConcat
-        enclosingElement: <testLibraryFragment>
-        returnType: String
-      synthetic static get vStringInterpolation @-1
-        reference: <testLibraryFragment>::@getter::vStringInterpolation
-        enclosingElement: <testLibraryFragment>
-        returnType: String
-      synthetic static get vSymbol @-1
-        reference: <testLibraryFragment>::@getter::vSymbol
-        enclosingElement: <testLibraryFragment>
-        returnType: Symbol
+        static const vIntNegative @100
+          reference: <testLibraryFragment>::@topLevelVariable::vIntNegative
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixExpression
+              operator: - @115
+              operand: IntegerLiteral
+                literal: 2 @116
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::unary-
+              staticType: int
+        static const vIntLong1 @125
+          reference: <testLibraryFragment>::@topLevelVariable::vIntLong1
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0x7FFFFFFFFFFFFFFF @137
+              staticType: int
+        static const vIntLong2 @163
+          reference: <testLibraryFragment>::@topLevelVariable::vIntLong2
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0xFFFFFFFFFFFFFFFF @175
+              staticType: int
+        static const vIntLong3 @201
+          reference: <testLibraryFragment>::@topLevelVariable::vIntLong3
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0x8000000000000000 @213
+              staticType: int
+        static const vDouble @239
+          reference: <testLibraryFragment>::@topLevelVariable::vDouble
+          enclosingElement: <testLibraryFragment>
+          type: double
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            DoubleLiteral
+              literal: 2.3 @249
+              staticType: double
+        static const vString @260
+          reference: <testLibraryFragment>::@topLevelVariable::vString
+          enclosingElement: <testLibraryFragment>
+          type: String
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleStringLiteral
+              literal: 'abc' @270
+        static const vStringConcat @283
+          reference: <testLibraryFragment>::@topLevelVariable::vStringConcat
+          enclosingElement: <testLibraryFragment>
+          type: String
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            AdjacentStrings
+              strings
+                SimpleStringLiteral
+                  literal: 'aaa' @299
+                SimpleStringLiteral
+                  literal: 'bbb' @305
+              staticType: String
+              stringValue: aaabbb
+        static const vStringInterpolation @318
+          reference: <testLibraryFragment>::@topLevelVariable::vStringInterpolation
+          enclosingElement: <testLibraryFragment>
+          type: String
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            StringInterpolation
+              elements
+                InterpolationString
+                  contents: 'aaa  @341
+                InterpolationExpression
+                  leftBracket: ${ @346
+                  expression: BooleanLiteral
+                    literal: true @348
+                    staticType: bool
+                  rightBracket: } @352
+                InterpolationString
+                  contents:   @353
+                InterpolationExpression
+                  leftBracket: ${ @354
+                  expression: IntegerLiteral
+                    literal: 42 @356
+                    staticType: int
+                  rightBracket: } @358
+                InterpolationString
+                  contents:  bbb' @359
+              staticType: String
+              stringValue: null
+        static const vSymbol @372
+          reference: <testLibraryFragment>::@topLevelVariable::vSymbol
+          enclosingElement: <testLibraryFragment>
+          type: Symbol
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SymbolLiteral
+              poundSign: # @382
+              components
+                aaa
+                  offset: 383
+                bbb
+                  offset: 387
+                ccc
+                  offset: 391
+      accessors
+        synthetic static get vNull @-1
+          reference: <testLibraryFragment>::@getter::vNull
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        synthetic static get vBoolFalse @-1
+          reference: <testLibraryFragment>::@getter::vBoolFalse
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vBoolTrue @-1
+          reference: <testLibraryFragment>::@getter::vBoolTrue
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vIntPositive @-1
+          reference: <testLibraryFragment>::@getter::vIntPositive
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vIntNegative @-1
+          reference: <testLibraryFragment>::@getter::vIntNegative
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vIntLong1 @-1
+          reference: <testLibraryFragment>::@getter::vIntLong1
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vIntLong2 @-1
+          reference: <testLibraryFragment>::@getter::vIntLong2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vIntLong3 @-1
+          reference: <testLibraryFragment>::@getter::vIntLong3
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vDouble @-1
+          reference: <testLibraryFragment>::@getter::vDouble
+          enclosingElement: <testLibraryFragment>
+          returnType: double
+        synthetic static get vString @-1
+          reference: <testLibraryFragment>::@getter::vString
+          enclosingElement: <testLibraryFragment>
+          returnType: String
+        synthetic static get vStringConcat @-1
+          reference: <testLibraryFragment>::@getter::vStringConcat
+          enclosingElement: <testLibraryFragment>
+          returnType: String
+        synthetic static get vStringInterpolation @-1
+          reference: <testLibraryFragment>::@getter::vStringInterpolation
+          enclosingElement: <testLibraryFragment>
+          returnType: String
+        synthetic static get vSymbol @-1
+          reference: <testLibraryFragment>::@getter::vSymbol
+          enclosingElement: <testLibraryFragment>
+          returnType: Symbol
 ''');
   }
 
@@ -31053,49 +31625,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @11
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int?
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @15
-            staticType: int
-      static const b @24
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: String?
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          MethodInvocation
-            target: SimpleIdentifier
-              token: a @28
-              staticElement: <testLibraryFragment>::@getter::a
-              staticType: int?
-            operator: ?. @29
-            methodName: SimpleIdentifier
-              token: toString @31
-              staticElement: dart:core::<fragment>::@class::int::@method::toString
-              staticType: String Function()
-            argumentList: ArgumentList
-              leftParenthesis: ( @39
-              rightParenthesis: ) @40
-            staticInvokeType: String Function()
-            staticType: String?
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int?
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: String?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @11
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int?
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @15
+              staticType: int
+        static const b @24
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: String?
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            MethodInvocation
+              target: SimpleIdentifier
+                token: a @28
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: int?
+              operator: ?. @29
+              methodName: SimpleIdentifier
+                token: toString @31
+                staticElement: dart:core::<fragment>::@class::int::@method::toString
+                staticType: String Function()
+              argumentList: ArgumentList
+                leftParenthesis: ( @39
+                rightParenthesis: ) @40
+              staticInvokeType: String Function()
+              staticType: String?
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int?
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: String?
 ''');
   }
 
@@ -31107,52 +31680,53 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @11
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: int?
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @15
-            staticType: int
-      static const b @24
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: int?
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          CascadeExpression
-            target: SimpleIdentifier
-              token: a @28
-              staticElement: <testLibraryFragment>::@getter::a
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @11
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: int?
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @15
+              staticType: int
+        static const b @24
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: int?
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            CascadeExpression
+              target: SimpleIdentifier
+                token: a @28
+                staticElement: <testLibraryFragment>::@getter::a
+                staticType: int?
+              cascadeSections
+                MethodInvocation
+                  operator: ?.. @29
+                  methodName: SimpleIdentifier
+                    token: toString @32
+                    staticElement: dart:core::<fragment>::@class::int::@method::toString
+                    staticType: String Function()
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @40
+                    rightParenthesis: ) @41
+                  staticInvokeType: String Function()
+                  staticType: String
               staticType: int?
-            cascadeSections
-              MethodInvocation
-                operator: ?.. @29
-                methodName: SimpleIdentifier
-                  token: toString @32
-                  staticElement: dart:core::<fragment>::@class::int::@method::toString
-                  staticType: String Function()
-                argumentList: ArgumentList
-                  leftParenthesis: ( @40
-                  rightParenthesis: ) @41
-                staticInvokeType: String Function()
-                staticType: String
-            staticType: int?
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: int?
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: int?
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: int?
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: int?
 ''');
   }
 
@@ -31167,49 +31741,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const a @14
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: String?
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          SimpleStringLiteral
-            literal: '' @18
-      static const b @40
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        type: List<int?>
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          ListLiteral
-            leftBracket: [ @44
-            elements
-              PropertyAccess
-                target: SimpleIdentifier
-                  token: a @48
-                  staticElement: <testLibraryFragment>::@getter::a
-                  staticType: String?
-                operator: ?. @49
-                propertyName: SimpleIdentifier
-                  token: length @51
-                  staticElement: dart:core::<fragment>::@class::String::@getter::length
-                  staticType: int
-                staticType: int?
-            rightBracket: ] @59
-            staticType: List<int?>
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: String?
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: List<int?>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const a @14
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: String?
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            SimpleStringLiteral
+              literal: '' @18
+        static const b @40
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          type: List<int?>
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            ListLiteral
+              leftBracket: [ @44
+              elements
+                PropertyAccess
+                  target: SimpleIdentifier
+                    token: a @48
+                    staticElement: <testLibraryFragment>::@getter::a
+                    staticType: String?
+                  operator: ?. @49
+                  propertyName: SimpleIdentifier
+                    token: length @51
+                    staticElement: dart:core::<fragment>::@class::String::@getter::length
+                    staticType: int
+                  staticType: int?
+              rightBracket: ] @59
+              staticType: List<int?>
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: String?
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: List<int?>
 ''');
   }
 
@@ -31222,103 +31797,104 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v1 @10
-        reference: <testLibraryFragment>::@topLevelVariable::v1
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          BinaryExpression
-            leftOperand: ParenthesizedExpression
-              leftParenthesis: ( @15
-              expression: BinaryExpression
-                leftOperand: IntegerLiteral
-                  literal: 1 @16
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v1 @10
+          reference: <testLibraryFragment>::@topLevelVariable::v1
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            BinaryExpression
+              leftOperand: ParenthesizedExpression
+                leftParenthesis: ( @15
+                expression: BinaryExpression
+                  leftOperand: IntegerLiteral
+                    literal: 1 @16
+                    staticType: int
+                  operator: + @18
+                  rightOperand: IntegerLiteral
+                    literal: 2 @20
+                    staticType: int
+                  staticElement: dart:core::<fragment>::@class::num::@method::+
+                  staticInvokeType: num Function(num)
                   staticType: int
-                operator: + @18
-                rightOperand: IntegerLiteral
-                  literal: 2 @20
-                  staticType: int
-                staticElement: dart:core::<fragment>::@class::num::@method::+
-                staticInvokeType: num Function(num)
+                rightParenthesis: ) @21
                 staticType: int
-              rightParenthesis: ) @21
-              staticType: int
-            operator: * @23
-            rightOperand: IntegerLiteral
-              literal: 3 @25
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::*
-            staticInvokeType: num Function(num)
-            staticType: int
-      static const v2 @38
-        reference: <testLibraryFragment>::@topLevelVariable::v2
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          PrefixExpression
-            operator: - @43
-            operand: ParenthesizedExpression
-              leftParenthesis: ( @44
-              expression: BinaryExpression
-                leftOperand: IntegerLiteral
-                  literal: 1 @45
-                  staticType: int
-                operator: + @47
-                rightOperand: IntegerLiteral
-                  literal: 2 @49
-                  staticType: int
-                staticElement: dart:core::<fragment>::@class::num::@method::+
-                staticInvokeType: num Function(num)
+              operator: * @23
+              rightOperand: IntegerLiteral
+                literal: 3 @25
                 staticType: int
-              rightParenthesis: ) @50
+              staticElement: dart:core::<fragment>::@class::num::@method::*
+              staticInvokeType: num Function(num)
               staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::unary-
-            staticType: int
-      static const v3 @63
-        reference: <testLibraryFragment>::@topLevelVariable::v3
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          PropertyAccess
-            target: ParenthesizedExpression
-              leftParenthesis: ( @68
-              expression: BinaryExpression
-                leftOperand: SimpleStringLiteral
-                  literal: 'aaa' @69
-                operator: + @75
-                rightOperand: SimpleStringLiteral
-                  literal: 'bbb' @77
-                staticElement: dart:core::<fragment>::@class::String::@method::+
-                staticInvokeType: String Function(String)
+        static const v2 @38
+          reference: <testLibraryFragment>::@topLevelVariable::v2
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            PrefixExpression
+              operator: - @43
+              operand: ParenthesizedExpression
+                leftParenthesis: ( @44
+                expression: BinaryExpression
+                  leftOperand: IntegerLiteral
+                    literal: 1 @45
+                    staticType: int
+                  operator: + @47
+                  rightOperand: IntegerLiteral
+                    literal: 2 @49
+                    staticType: int
+                  staticElement: dart:core::<fragment>::@class::num::@method::+
+                  staticInvokeType: num Function(num)
+                  staticType: int
+                rightParenthesis: ) @50
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::unary-
+              staticType: int
+        static const v3 @63
+          reference: <testLibraryFragment>::@topLevelVariable::v3
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            PropertyAccess
+              target: ParenthesizedExpression
+                leftParenthesis: ( @68
+                expression: BinaryExpression
+                  leftOperand: SimpleStringLiteral
+                    literal: 'aaa' @69
+                  operator: + @75
+                  rightOperand: SimpleStringLiteral
+                    literal: 'bbb' @77
+                  staticElement: dart:core::<fragment>::@class::String::@method::+
+                  staticInvokeType: String Function(String)
+                  staticType: String
+                rightParenthesis: ) @82
                 staticType: String
-              rightParenthesis: ) @82
-              staticType: String
-            operator: . @83
-            propertyName: SimpleIdentifier
-              token: length @84
-              staticElement: dart:core::<fragment>::@class::String::@getter::length
+              operator: . @83
+              propertyName: SimpleIdentifier
+                token: length @84
+                staticElement: dart:core::<fragment>::@class::String::@getter::length
+                staticType: int
               staticType: int
-            staticType: int
-    accessors
-      synthetic static get v1 @-1
-        reference: <testLibraryFragment>::@getter::v1
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get v2 @-1
-        reference: <testLibraryFragment>::@getter::v2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get v3 @-1
-        reference: <testLibraryFragment>::@getter::v3
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get v1 @-1
+          reference: <testLibraryFragment>::@getter::v1
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get v2 @-1
+          reference: <testLibraryFragment>::@getter::v2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get v3 @-1
+          reference: <testLibraryFragment>::@getter::v3
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -31332,83 +31908,84 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vNotEqual @6
-        reference: <testLibraryFragment>::@topLevelVariable::vNotEqual
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          BinaryExpression
-            leftOperand: IntegerLiteral
-              literal: 1 @18
-              staticType: int
-            operator: != @20
-            rightOperand: IntegerLiteral
-              literal: 2 @23
-              staticType: int
-            staticElement: dart:core::<fragment>::@class::num::@method::==
-            staticInvokeType: bool Function(Object)
-            staticType: bool
-      static const vNot @32
-        reference: <testLibraryFragment>::@topLevelVariable::vNot
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixExpression
-            operator: ! @39
-            operand: BooleanLiteral
-              literal: true @40
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vNotEqual @6
+          reference: <testLibraryFragment>::@topLevelVariable::vNotEqual
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            BinaryExpression
+              leftOperand: IntegerLiteral
+                literal: 1 @18
+                staticType: int
+              operator: != @20
+              rightOperand: IntegerLiteral
+                literal: 2 @23
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::num::@method::==
+              staticInvokeType: bool Function(Object)
               staticType: bool
-            staticElement: <null>
-            staticType: bool
-      static const vNegate @52
-        reference: <testLibraryFragment>::@topLevelVariable::vNegate
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixExpression
-            operator: - @62
-            operand: IntegerLiteral
-              literal: 1 @63
+        static const vNot @32
+          reference: <testLibraryFragment>::@topLevelVariable::vNot
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixExpression
+              operator: ! @39
+              operand: BooleanLiteral
+                literal: true @40
+                staticType: bool
+              staticElement: <null>
+              staticType: bool
+        static const vNegate @52
+          reference: <testLibraryFragment>::@topLevelVariable::vNegate
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixExpression
+              operator: - @62
+              operand: IntegerLiteral
+                literal: 1 @63
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::unary-
               staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::unary-
-            staticType: int
-      static const vComplement @72
-        reference: <testLibraryFragment>::@topLevelVariable::vComplement
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          PrefixExpression
-            operator: ~ @86
-            operand: IntegerLiteral
-              literal: 1 @87
+        static const vComplement @72
+          reference: <testLibraryFragment>::@topLevelVariable::vComplement
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            PrefixExpression
+              operator: ~ @86
+              operand: IntegerLiteral
+                literal: 1 @87
+                staticType: int
+              staticElement: dart:core::<fragment>::@class::int::@method::~
               staticType: int
-            staticElement: dart:core::<fragment>::@class::int::@method::~
-            staticType: int
-    accessors
-      synthetic static get vNotEqual @-1
-        reference: <testLibraryFragment>::@getter::vNotEqual
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vNot @-1
-        reference: <testLibraryFragment>::@getter::vNot
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-      synthetic static get vNegate @-1
-        reference: <testLibraryFragment>::@getter::vNegate
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static get vComplement @-1
-        reference: <testLibraryFragment>::@getter::vComplement
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+      accessors
+        synthetic static get vNotEqual @-1
+          reference: <testLibraryFragment>::@getter::vNotEqual
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vNot @-1
+          reference: <testLibraryFragment>::@getter::vNot
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+        synthetic static get vNegate @-1
+          reference: <testLibraryFragment>::@getter::vNegate
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static get vComplement @-1
+          reference: <testLibraryFragment>::@getter::vComplement
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -31419,24 +31996,25 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vSuper @6
-        reference: <testLibraryFragment>::@topLevelVariable::vSuper
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SuperExpression
-            superKeyword: super @15
-            staticType: InvalidType
-    accessors
-      synthetic static get vSuper @-1
-        reference: <testLibraryFragment>::@getter::vSuper
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vSuper @6
+          reference: <testLibraryFragment>::@topLevelVariable::vSuper
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SuperExpression
+              superKeyword: super @15
+              staticType: InvalidType
+      accessors
+        synthetic static get vSuper @-1
+          reference: <testLibraryFragment>::@getter::vSuper
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -31447,24 +32025,25 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vThis @6
-        reference: <testLibraryFragment>::@topLevelVariable::vThis
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ThisExpression
-            thisKeyword: this @14
-            staticType: dynamic
-    accessors
-      synthetic static get vThis @-1
-        reference: <testLibraryFragment>::@getter::vThis
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vThis @6
+          reference: <testLibraryFragment>::@topLevelVariable::vThis
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ThisExpression
+              thisKeyword: this @14
+              staticType: dynamic
+      accessors
+        synthetic static get vThis @-1
+          reference: <testLibraryFragment>::@getter::vThis
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -31475,27 +32054,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const c @6
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: Never
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ThrowExpression
-            throwKeyword: throw @10
-            expression: IntegerLiteral
-              literal: 42 @16
-              staticType: int
-            staticType: Never
-    accessors
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: Never
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const c @6
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: Never
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ThrowExpression
+              throwKeyword: throw @10
+              expression: IntegerLiteral
+                literal: 42 @16
+                staticType: int
+              staticType: Never
+      accessors
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: Never
 ''');
   }
 
@@ -31511,197 +32091,198 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vNull @6
-        reference: <testLibraryFragment>::@topLevelVariable::vNull
-        enclosingElement: <testLibraryFragment>
-        type: List<Null>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @14
-            typeArguments: TypeArgumentList
-              leftBracket: < @20
-              arguments
-                NamedType
-                  name: Null @21
-                  element: dart:core::<fragment>::@class::Null
-                  type: Null
-              rightBracket: > @25
-            leftBracket: [ @26
-            rightBracket: ] @27
-            staticType: List<Null>
-      static const vDynamic @36
-        reference: <testLibraryFragment>::@topLevelVariable::vDynamic
-        enclosingElement: <testLibraryFragment>
-        type: List<dynamic>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @47
-            typeArguments: TypeArgumentList
-              leftBracket: < @53
-              arguments
-                NamedType
-                  name: dynamic @54
-                  element: dynamic@-1
-                  type: dynamic
-              rightBracket: > @61
-            leftBracket: [ @62
-            elements
-              IntegerLiteral
-                literal: 1 @63
-                staticType: int
-              IntegerLiteral
-                literal: 2 @66
-                staticType: int
-              IntegerLiteral
-                literal: 3 @69
-                staticType: int
-            rightBracket: ] @70
-            staticType: List<dynamic>
-      static const vInterfaceNoTypeParameters @79
-        reference: <testLibraryFragment>::@topLevelVariable::vInterfaceNoTypeParameters
-        enclosingElement: <testLibraryFragment>
-        type: List<int>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @108
-            typeArguments: TypeArgumentList
-              leftBracket: < @114
-              arguments
-                NamedType
-                  name: int @115
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @118
-            leftBracket: [ @119
-            elements
-              IntegerLiteral
-                literal: 1 @120
-                staticType: int
-              IntegerLiteral
-                literal: 2 @123
-                staticType: int
-              IntegerLiteral
-                literal: 3 @126
-                staticType: int
-            rightBracket: ] @127
-            staticType: List<int>
-      static const vInterfaceNoTypeArguments @136
-        reference: <testLibraryFragment>::@topLevelVariable::vInterfaceNoTypeArguments
-        enclosingElement: <testLibraryFragment>
-        type: List<List<dynamic>>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @164
-            typeArguments: TypeArgumentList
-              leftBracket: < @170
-              arguments
-                NamedType
-                  name: List @171
-                  element: dart:core::<fragment>::@class::List
-                  type: List<dynamic>
-              rightBracket: > @175
-            leftBracket: [ @176
-            rightBracket: ] @177
-            staticType: List<List<dynamic>>
-      static const vInterfaceWithTypeArguments @186
-        reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments
-        enclosingElement: <testLibraryFragment>
-        type: List<List<String>>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @216
-            typeArguments: TypeArgumentList
-              leftBracket: < @222
-              arguments
-                NamedType
-                  name: List @223
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @227
-                    arguments
-                      NamedType
-                        name: String @228
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                    rightBracket: > @234
-                  element: dart:core::<fragment>::@class::List
-                  type: List<String>
-              rightBracket: > @235
-            leftBracket: [ @236
-            rightBracket: ] @237
-            staticType: List<List<String>>
-      static const vInterfaceWithTypeArguments2 @246
-        reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments2
-        enclosingElement: <testLibraryFragment>
-        type: List<Map<int, List<String>>>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @277
-            typeArguments: TypeArgumentList
-              leftBracket: < @283
-              arguments
-                NamedType
-                  name: Map @284
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @287
-                    arguments
-                      NamedType
-                        name: int @288
-                        element: dart:core::<fragment>::@class::int
-                        type: int
-                      NamedType
-                        name: List @293
-                        typeArguments: TypeArgumentList
-                          leftBracket: < @297
-                          arguments
-                            NamedType
-                              name: String @298
-                              element: dart:core::<fragment>::@class::String
-                              type: String
-                          rightBracket: > @304
-                        element: dart:core::<fragment>::@class::List
-                        type: List<String>
-                    rightBracket: > @305
-                  element: dart:core::<fragment>::@class::Map
-                  type: Map<int, List<String>>
-              rightBracket: > @306
-            leftBracket: [ @307
-            rightBracket: ] @308
-            staticType: List<Map<int, List<String>>>
-    accessors
-      synthetic static get vNull @-1
-        reference: <testLibraryFragment>::@getter::vNull
-        enclosingElement: <testLibraryFragment>
-        returnType: List<Null>
-      synthetic static get vDynamic @-1
-        reference: <testLibraryFragment>::@getter::vDynamic
-        enclosingElement: <testLibraryFragment>
-        returnType: List<dynamic>
-      synthetic static get vInterfaceNoTypeParameters @-1
-        reference: <testLibraryFragment>::@getter::vInterfaceNoTypeParameters
-        enclosingElement: <testLibraryFragment>
-        returnType: List<int>
-      synthetic static get vInterfaceNoTypeArguments @-1
-        reference: <testLibraryFragment>::@getter::vInterfaceNoTypeArguments
-        enclosingElement: <testLibraryFragment>
-        returnType: List<List<dynamic>>
-      synthetic static get vInterfaceWithTypeArguments @-1
-        reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments
-        enclosingElement: <testLibraryFragment>
-        returnType: List<List<String>>
-      synthetic static get vInterfaceWithTypeArguments2 @-1
-        reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments2
-        enclosingElement: <testLibraryFragment>
-        returnType: List<Map<int, List<String>>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vNull @6
+          reference: <testLibraryFragment>::@topLevelVariable::vNull
+          enclosingElement: <testLibraryFragment>
+          type: List<Null>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @14
+              typeArguments: TypeArgumentList
+                leftBracket: < @20
+                arguments
+                  NamedType
+                    name: Null @21
+                    element: dart:core::<fragment>::@class::Null
+                    type: Null
+                rightBracket: > @25
+              leftBracket: [ @26
+              rightBracket: ] @27
+              staticType: List<Null>
+        static const vDynamic @36
+          reference: <testLibraryFragment>::@topLevelVariable::vDynamic
+          enclosingElement: <testLibraryFragment>
+          type: List<dynamic>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @47
+              typeArguments: TypeArgumentList
+                leftBracket: < @53
+                arguments
+                  NamedType
+                    name: dynamic @54
+                    element: dynamic@-1
+                    type: dynamic
+                rightBracket: > @61
+              leftBracket: [ @62
+              elements
+                IntegerLiteral
+                  literal: 1 @63
+                  staticType: int
+                IntegerLiteral
+                  literal: 2 @66
+                  staticType: int
+                IntegerLiteral
+                  literal: 3 @69
+                  staticType: int
+              rightBracket: ] @70
+              staticType: List<dynamic>
+        static const vInterfaceNoTypeParameters @79
+          reference: <testLibraryFragment>::@topLevelVariable::vInterfaceNoTypeParameters
+          enclosingElement: <testLibraryFragment>
+          type: List<int>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @108
+              typeArguments: TypeArgumentList
+                leftBracket: < @114
+                arguments
+                  NamedType
+                    name: int @115
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @118
+              leftBracket: [ @119
+              elements
+                IntegerLiteral
+                  literal: 1 @120
+                  staticType: int
+                IntegerLiteral
+                  literal: 2 @123
+                  staticType: int
+                IntegerLiteral
+                  literal: 3 @126
+                  staticType: int
+              rightBracket: ] @127
+              staticType: List<int>
+        static const vInterfaceNoTypeArguments @136
+          reference: <testLibraryFragment>::@topLevelVariable::vInterfaceNoTypeArguments
+          enclosingElement: <testLibraryFragment>
+          type: List<List<dynamic>>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @164
+              typeArguments: TypeArgumentList
+                leftBracket: < @170
+                arguments
+                  NamedType
+                    name: List @171
+                    element: dart:core::<fragment>::@class::List
+                    type: List<dynamic>
+                rightBracket: > @175
+              leftBracket: [ @176
+              rightBracket: ] @177
+              staticType: List<List<dynamic>>
+        static const vInterfaceWithTypeArguments @186
+          reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments
+          enclosingElement: <testLibraryFragment>
+          type: List<List<String>>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @216
+              typeArguments: TypeArgumentList
+                leftBracket: < @222
+                arguments
+                  NamedType
+                    name: List @223
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @227
+                      arguments
+                        NamedType
+                          name: String @228
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                      rightBracket: > @234
+                    element: dart:core::<fragment>::@class::List
+                    type: List<String>
+                rightBracket: > @235
+              leftBracket: [ @236
+              rightBracket: ] @237
+              staticType: List<List<String>>
+        static const vInterfaceWithTypeArguments2 @246
+          reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments2
+          enclosingElement: <testLibraryFragment>
+          type: List<Map<int, List<String>>>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @277
+              typeArguments: TypeArgumentList
+                leftBracket: < @283
+                arguments
+                  NamedType
+                    name: Map @284
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @287
+                      arguments
+                        NamedType
+                          name: int @288
+                          element: dart:core::<fragment>::@class::int
+                          type: int
+                        NamedType
+                          name: List @293
+                          typeArguments: TypeArgumentList
+                            leftBracket: < @297
+                            arguments
+                              NamedType
+                                name: String @298
+                                element: dart:core::<fragment>::@class::String
+                                type: String
+                            rightBracket: > @304
+                          element: dart:core::<fragment>::@class::List
+                          type: List<String>
+                      rightBracket: > @305
+                    element: dart:core::<fragment>::@class::Map
+                    type: Map<int, List<String>>
+                rightBracket: > @306
+              leftBracket: [ @307
+              rightBracket: ] @308
+              staticType: List<Map<int, List<String>>>
+      accessors
+        synthetic static get vNull @-1
+          reference: <testLibraryFragment>::@getter::vNull
+          enclosingElement: <testLibraryFragment>
+          returnType: List<Null>
+        synthetic static get vDynamic @-1
+          reference: <testLibraryFragment>::@getter::vDynamic
+          enclosingElement: <testLibraryFragment>
+          returnType: List<dynamic>
+        synthetic static get vInterfaceNoTypeParameters @-1
+          reference: <testLibraryFragment>::@getter::vInterfaceNoTypeParameters
+          enclosingElement: <testLibraryFragment>
+          returnType: List<int>
+        synthetic static get vInterfaceNoTypeArguments @-1
+          reference: <testLibraryFragment>::@getter::vInterfaceNoTypeArguments
+          enclosingElement: <testLibraryFragment>
+          returnType: List<List<dynamic>>
+        synthetic static get vInterfaceWithTypeArguments @-1
+          reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments
+          enclosingElement: <testLibraryFragment>
+          returnType: List<List<String>>
+        synthetic static get vInterfaceWithTypeArguments2 @-1
+          reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments2
+          enclosingElement: <testLibraryFragment>
+          returnType: List<Map<int, List<String>>>
 ''');
   }
 
@@ -31718,38 +32299,39 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const v @23
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: List<C>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @27
-            typeArguments: TypeArgumentList
-              leftBracket: < @33
-              arguments
-                NamedType
-                  name: C @34
-                  element: package:test/a.dart::<fragment>::@class::C
-                  type: C
-              rightBracket: > @35
-            leftBracket: [ @36
-            rightBracket: ] @37
-            staticType: List<C>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: List<C>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const v @23
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: List<C>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @27
+              typeArguments: TypeArgumentList
+                leftBracket: < @33
+                arguments
+                  NamedType
+                    name: C @34
+                    element: package:test/a.dart::<fragment>::@class::C
+                    type: C
+                rightBracket: > @35
+              leftBracket: [ @36
+              rightBracket: ] @37
+              staticType: List<C>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: List<C>
 ''');
   }
 
@@ -31771,47 +32353,48 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as p @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @19
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const v @28
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: List<C>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @32
-            typeArguments: TypeArgumentList
-              leftBracket: < @38
-              arguments
-                NamedType
-                  importPrefix: ImportPrefixReference
-                    name: p @39
-                    period: . @40
-                    element: <testLibraryFragment>::@prefix::p
-                  name: C @41
-                  element: package:test/a.dart::<fragment>::@class::C
-                  type: C
-              rightBracket: > @42
-            leftBracket: [ @43
-            rightBracket: ] @44
-            staticType: List<C>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: List<C>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as p @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @19
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const v @28
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: List<C>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @32
+              typeArguments: TypeArgumentList
+                leftBracket: < @38
+                arguments
+                  NamedType
+                    importPrefix: ImportPrefixReference
+                      name: p @39
+                      period: . @40
+                      element: <testLibraryFragment>::@prefix::p
+                    name: C @41
+                    element: package:test/a.dart::<fragment>::@class::C
+                    type: C
+                rightBracket: > @42
+              leftBracket: [ @43
+              rightBracket: ] @44
+              staticType: List<C>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: List<C>
 ''');
   }
 
@@ -31823,44 +32406,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @12
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: int Function(String)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional id @21
-              type: String
-          returnType: int
-    topLevelVariables
-      static const v @32
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: List<int Function(String)>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @36
-            typeArguments: TypeArgumentList
-              leftBracket: < @42
-              arguments
-                NamedType
-                  name: F @43
-                  element: <testLibraryFragment>::@typeAlias::F
-                  type: int Function(String)
-                    alias: <testLibraryFragment>::@typeAlias::F
-              rightBracket: > @44
-            leftBracket: [ @45
-            rightBracket: ] @46
-            staticType: List<int Function(String)>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: List<int Function(String)>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @12
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: int Function(String)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional id @21
+                type: String
+            returnType: int
+      topLevelVariables
+        static const v @32
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: List<int Function(String)>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @36
+              typeArguments: TypeArgumentList
+                leftBracket: < @42
+                arguments
+                  NamedType
+                    name: F @43
+                    element: <testLibraryFragment>::@typeAlias::F
+                    type: int Function(String)
+                      alias: <testLibraryFragment>::@typeAlias::F
+                rightBracket: > @44
+              leftBracket: [ @45
+              rightBracket: ] @46
+              staticType: List<int Function(String)>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: List<int Function(String)>
 ''');
   }
 
@@ -31874,131 +32458,132 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vDynamic1 @6
-        reference: <testLibraryFragment>::@topLevelVariable::vDynamic1
-        enclosingElement: <testLibraryFragment>
-        type: Map<dynamic, int>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @18
-            typeArguments: TypeArgumentList
-              leftBracket: < @24
-              arguments
-                NamedType
-                  name: dynamic @25
-                  element: dynamic@-1
-                  type: dynamic
-                NamedType
-                  name: int @34
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @37
-            leftBracket: { @38
-            rightBracket: } @39
-            isMap: true
-            staticType: Map<dynamic, int>
-      static const vDynamic2 @48
-        reference: <testLibraryFragment>::@topLevelVariable::vDynamic2
-        enclosingElement: <testLibraryFragment>
-        type: Map<int, dynamic>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @60
-            typeArguments: TypeArgumentList
-              leftBracket: < @66
-              arguments
-                NamedType
-                  name: int @67
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-                NamedType
-                  name: dynamic @72
-                  element: dynamic@-1
-                  type: dynamic
-              rightBracket: > @79
-            leftBracket: { @80
-            rightBracket: } @81
-            isMap: true
-            staticType: Map<int, dynamic>
-      static const vInterface @90
-        reference: <testLibraryFragment>::@topLevelVariable::vInterface
-        enclosingElement: <testLibraryFragment>
-        type: Map<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @103
-            typeArguments: TypeArgumentList
-              leftBracket: < @109
-              arguments
-                NamedType
-                  name: int @110
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-                NamedType
-                  name: String @115
-                  element: dart:core::<fragment>::@class::String
-                  type: String
-              rightBracket: > @121
-            leftBracket: { @122
-            rightBracket: } @123
-            isMap: true
-            staticType: Map<int, String>
-      static const vInterfaceWithTypeArguments @132
-        reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments
-        enclosingElement: <testLibraryFragment>
-        type: Map<int, List<String>>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @162
-            typeArguments: TypeArgumentList
-              leftBracket: < @168
-              arguments
-                NamedType
-                  name: int @169
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-                NamedType
-                  name: List @174
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @178
-                    arguments
-                      NamedType
-                        name: String @179
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                    rightBracket: > @185
-                  element: dart:core::<fragment>::@class::List
-                  type: List<String>
-              rightBracket: > @186
-            leftBracket: { @187
-            rightBracket: } @188
-            isMap: true
-            staticType: Map<int, List<String>>
-    accessors
-      synthetic static get vDynamic1 @-1
-        reference: <testLibraryFragment>::@getter::vDynamic1
-        enclosingElement: <testLibraryFragment>
-        returnType: Map<dynamic, int>
-      synthetic static get vDynamic2 @-1
-        reference: <testLibraryFragment>::@getter::vDynamic2
-        enclosingElement: <testLibraryFragment>
-        returnType: Map<int, dynamic>
-      synthetic static get vInterface @-1
-        reference: <testLibraryFragment>::@getter::vInterface
-        enclosingElement: <testLibraryFragment>
-        returnType: Map<int, String>
-      synthetic static get vInterfaceWithTypeArguments @-1
-        reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments
-        enclosingElement: <testLibraryFragment>
-        returnType: Map<int, List<String>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vDynamic1 @6
+          reference: <testLibraryFragment>::@topLevelVariable::vDynamic1
+          enclosingElement: <testLibraryFragment>
+          type: Map<dynamic, int>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @18
+              typeArguments: TypeArgumentList
+                leftBracket: < @24
+                arguments
+                  NamedType
+                    name: dynamic @25
+                    element: dynamic@-1
+                    type: dynamic
+                  NamedType
+                    name: int @34
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @37
+              leftBracket: { @38
+              rightBracket: } @39
+              isMap: true
+              staticType: Map<dynamic, int>
+        static const vDynamic2 @48
+          reference: <testLibraryFragment>::@topLevelVariable::vDynamic2
+          enclosingElement: <testLibraryFragment>
+          type: Map<int, dynamic>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @60
+              typeArguments: TypeArgumentList
+                leftBracket: < @66
+                arguments
+                  NamedType
+                    name: int @67
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                  NamedType
+                    name: dynamic @72
+                    element: dynamic@-1
+                    type: dynamic
+                rightBracket: > @79
+              leftBracket: { @80
+              rightBracket: } @81
+              isMap: true
+              staticType: Map<int, dynamic>
+        static const vInterface @90
+          reference: <testLibraryFragment>::@topLevelVariable::vInterface
+          enclosingElement: <testLibraryFragment>
+          type: Map<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @103
+              typeArguments: TypeArgumentList
+                leftBracket: < @109
+                arguments
+                  NamedType
+                    name: int @110
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                  NamedType
+                    name: String @115
+                    element: dart:core::<fragment>::@class::String
+                    type: String
+                rightBracket: > @121
+              leftBracket: { @122
+              rightBracket: } @123
+              isMap: true
+              staticType: Map<int, String>
+        static const vInterfaceWithTypeArguments @132
+          reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments
+          enclosingElement: <testLibraryFragment>
+          type: Map<int, List<String>>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @162
+              typeArguments: TypeArgumentList
+                leftBracket: < @168
+                arguments
+                  NamedType
+                    name: int @169
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                  NamedType
+                    name: List @174
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @178
+                      arguments
+                        NamedType
+                          name: String @179
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                      rightBracket: > @185
+                    element: dart:core::<fragment>::@class::List
+                    type: List<String>
+                rightBracket: > @186
+              leftBracket: { @187
+              rightBracket: } @188
+              isMap: true
+              staticType: Map<int, List<String>>
+      accessors
+        synthetic static get vDynamic1 @-1
+          reference: <testLibraryFragment>::@getter::vDynamic1
+          enclosingElement: <testLibraryFragment>
+          returnType: Map<dynamic, int>
+        synthetic static get vDynamic2 @-1
+          reference: <testLibraryFragment>::@getter::vDynamic2
+          enclosingElement: <testLibraryFragment>
+          returnType: Map<int, dynamic>
+        synthetic static get vInterface @-1
+          reference: <testLibraryFragment>::@getter::vInterface
+          enclosingElement: <testLibraryFragment>
+          returnType: Map<int, String>
+        synthetic static get vInterfaceWithTypeArguments @-1
+          reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments
+          enclosingElement: <testLibraryFragment>
+          returnType: Map<int, List<String>>
 ''');
   }
 
@@ -32011,91 +32596,92 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const vDynamic1 @6
-        reference: <testLibraryFragment>::@topLevelVariable::vDynamic1
-        enclosingElement: <testLibraryFragment>
-        type: Set<dynamic>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @18
-            typeArguments: TypeArgumentList
-              leftBracket: < @24
-              arguments
-                NamedType
-                  name: dynamic @25
-                  element: dynamic@-1
-                  type: dynamic
-              rightBracket: > @32
-            leftBracket: { @33
-            rightBracket: } @34
-            isMap: false
-            staticType: Set<dynamic>
-      static const vInterface @43
-        reference: <testLibraryFragment>::@topLevelVariable::vInterface
-        enclosingElement: <testLibraryFragment>
-        type: Set<int>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @56
-            typeArguments: TypeArgumentList
-              leftBracket: < @62
-              arguments
-                NamedType
-                  name: int @63
-                  element: dart:core::<fragment>::@class::int
-                  type: int
-              rightBracket: > @66
-            leftBracket: { @67
-            rightBracket: } @68
-            isMap: false
-            staticType: Set<int>
-      static const vInterfaceWithTypeArguments @77
-        reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments
-        enclosingElement: <testLibraryFragment>
-        type: Set<List<String>>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @107
-            typeArguments: TypeArgumentList
-              leftBracket: < @113
-              arguments
-                NamedType
-                  name: List @114
-                  typeArguments: TypeArgumentList
-                    leftBracket: < @118
-                    arguments
-                      NamedType
-                        name: String @119
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                    rightBracket: > @125
-                  element: dart:core::<fragment>::@class::List
-                  type: List<String>
-              rightBracket: > @126
-            leftBracket: { @127
-            rightBracket: } @128
-            isMap: false
-            staticType: Set<List<String>>
-    accessors
-      synthetic static get vDynamic1 @-1
-        reference: <testLibraryFragment>::@getter::vDynamic1
-        enclosingElement: <testLibraryFragment>
-        returnType: Set<dynamic>
-      synthetic static get vInterface @-1
-        reference: <testLibraryFragment>::@getter::vInterface
-        enclosingElement: <testLibraryFragment>
-        returnType: Set<int>
-      synthetic static get vInterfaceWithTypeArguments @-1
-        reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments
-        enclosingElement: <testLibraryFragment>
-        returnType: Set<List<String>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const vDynamic1 @6
+          reference: <testLibraryFragment>::@topLevelVariable::vDynamic1
+          enclosingElement: <testLibraryFragment>
+          type: Set<dynamic>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @18
+              typeArguments: TypeArgumentList
+                leftBracket: < @24
+                arguments
+                  NamedType
+                    name: dynamic @25
+                    element: dynamic@-1
+                    type: dynamic
+                rightBracket: > @32
+              leftBracket: { @33
+              rightBracket: } @34
+              isMap: false
+              staticType: Set<dynamic>
+        static const vInterface @43
+          reference: <testLibraryFragment>::@topLevelVariable::vInterface
+          enclosingElement: <testLibraryFragment>
+          type: Set<int>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @56
+              typeArguments: TypeArgumentList
+                leftBracket: < @62
+                arguments
+                  NamedType
+                    name: int @63
+                    element: dart:core::<fragment>::@class::int
+                    type: int
+                rightBracket: > @66
+              leftBracket: { @67
+              rightBracket: } @68
+              isMap: false
+              staticType: Set<int>
+        static const vInterfaceWithTypeArguments @77
+          reference: <testLibraryFragment>::@topLevelVariable::vInterfaceWithTypeArguments
+          enclosingElement: <testLibraryFragment>
+          type: Set<List<String>>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @107
+              typeArguments: TypeArgumentList
+                leftBracket: < @113
+                arguments
+                  NamedType
+                    name: List @114
+                    typeArguments: TypeArgumentList
+                      leftBracket: < @118
+                      arguments
+                        NamedType
+                          name: String @119
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                      rightBracket: > @125
+                    element: dart:core::<fragment>::@class::List
+                    type: List<String>
+                rightBracket: > @126
+              leftBracket: { @127
+              rightBracket: } @128
+              isMap: false
+              staticType: Set<List<String>>
+      accessors
+        synthetic static get vDynamic1 @-1
+          reference: <testLibraryFragment>::@getter::vDynamic1
+          enclosingElement: <testLibraryFragment>
+          returnType: Set<dynamic>
+        synthetic static get vInterface @-1
+          reference: <testLibraryFragment>::@getter::vInterface
+          enclosingElement: <testLibraryFragment>
+          returnType: Set<int>
+        synthetic static get vInterfaceWithTypeArguments @-1
+          reference: <testLibraryFragment>::@getter::vInterfaceWithTypeArguments
+          enclosingElement: <testLibraryFragment>
+          returnType: Set<List<String>>
 ''');
   }
 
@@ -32106,36 +32692,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: List<int>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          ListLiteral
-            constKeyword: const @10
-            leftBracket: [ @16
-            elements
-              IntegerLiteral
-                literal: 1 @17
-                staticType: int
-              IntegerLiteral
-                literal: 2 @20
-                staticType: int
-              IntegerLiteral
-                literal: 3 @23
-                staticType: int
-            rightBracket: ] @24
-            staticType: List<int>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: List<int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: List<int>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            ListLiteral
+              constKeyword: const @10
+              leftBracket: [ @16
+              elements
+                IntegerLiteral
+                  literal: 1 @17
+                  staticType: int
+                IntegerLiteral
+                  literal: 2 @20
+                  staticType: int
+                IntegerLiteral
+                  literal: 3 @23
+                  staticType: int
+              rightBracket: ] @24
+              staticType: List<int>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: List<int>
 ''');
   }
 
@@ -32146,49 +32733,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: Map<int, String>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @10
-            leftBracket: { @16
-            elements
-              MapLiteralEntry
-                key: IntegerLiteral
-                  literal: 0 @17
-                  staticType: int
-                separator: : @18
-                value: SimpleStringLiteral
-                  literal: 'aaa' @20
-              MapLiteralEntry
-                key: IntegerLiteral
-                  literal: 1 @27
-                  staticType: int
-                separator: : @28
-                value: SimpleStringLiteral
-                  literal: 'bbb' @30
-              MapLiteralEntry
-                key: IntegerLiteral
-                  literal: 2 @37
-                  staticType: int
-                separator: : @38
-                value: SimpleStringLiteral
-                  literal: 'ccc' @40
-            rightBracket: } @45
-            isMap: true
-            staticType: Map<int, String>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: Map<int, String>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: Map<int, String>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @10
+              leftBracket: { @16
+              elements
+                MapLiteralEntry
+                  key: IntegerLiteral
+                    literal: 0 @17
+                    staticType: int
+                  separator: : @18
+                  value: SimpleStringLiteral
+                    literal: 'aaa' @20
+                MapLiteralEntry
+                  key: IntegerLiteral
+                    literal: 1 @27
+                    staticType: int
+                  separator: : @28
+                  value: SimpleStringLiteral
+                    literal: 'bbb' @30
+                MapLiteralEntry
+                  key: IntegerLiteral
+                    literal: 2 @37
+                    staticType: int
+                  separator: : @38
+                  value: SimpleStringLiteral
+                    literal: 'ccc' @40
+              rightBracket: } @45
+              isMap: true
+              staticType: Map<int, String>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: Map<int, String>
 ''');
   }
 
@@ -32199,37 +32787,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: Set<int>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SetOrMapLiteral
-            constKeyword: const @10
-            leftBracket: { @16
-            elements
-              IntegerLiteral
-                literal: 0 @17
-                staticType: int
-              IntegerLiteral
-                literal: 1 @20
-                staticType: int
-              IntegerLiteral
-                literal: 2 @23
-                staticType: int
-            rightBracket: } @24
-            isMap: false
-            staticType: Set<int>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: Set<int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: Set<int>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SetOrMapLiteral
+              constKeyword: const @10
+              leftBracket: { @16
+              elements
+                IntegerLiteral
+                  literal: 0 @17
+                  staticType: int
+                IntegerLiteral
+                  literal: 1 @20
+                  staticType: int
+                IntegerLiteral
+                  literal: 2 @23
+                  staticType: int
+              rightBracket: } @24
+              isMap: false
+              staticType: Set<int>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: Set<int>
 ''');
   }
 
@@ -32240,35 +32829,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static const v @6
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          TypeLiteral
-            type: NamedType
-              name: List @10
-              typeArguments: TypeArgumentList
-                leftBracket: < @14
-                arguments
-                  NamedType
-                    name: int @15
-                    element: dart:core::<fragment>::@class::int
-                    type: int
-                rightBracket: > @18
-              element: dart:core::<fragment>::@class::List
-              type: List<int>
-            staticType: Type
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static const v @6
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            TypeLiteral
+              type: NamedType
+                name: List @10
+                typeArguments: TypeArgumentList
+                  leftBracket: < @14
+                  arguments
+                    NamedType
+                      name: int @15
+                      element: dart:core::<fragment>::@class::int
+                      type: int
+                  rightBracket: > @18
+                element: dart:core::<fragment>::@class::List
+                type: List<int>
+              staticType: Type
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
 ''');
   }
 
@@ -32282,138 +32872,139 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant a @8
-            reference: <testLibraryFragment>::@enum::E::@field::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant b @11
-            reference: <testLibraryFragment>::@enum::E::@field::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant c @14
-            reference: <testLibraryFragment>::@enum::E::@field::c
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: a @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::a
-                    staticType: E
-                  SimpleIdentifier
-                    token: b @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::b
-                    staticType: E
-                  SimpleIdentifier
-                    token: c @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::c
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get b @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get c @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::c
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    topLevelVariables
-      static final vValue @23
-        reference: <testLibraryFragment>::@topLevelVariable::vValue
-        enclosingElement: <testLibraryFragment>
-        type: E
-        shouldUseTypeForInitializerInference: false
-      static final vValues @43
-        reference: <testLibraryFragment>::@topLevelVariable::vValues
-        enclosingElement: <testLibraryFragment>
-        type: List<E>
-        shouldUseTypeForInitializerInference: false
-      static final vIndex @69
-        reference: <testLibraryFragment>::@topLevelVariable::vIndex
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get vValue @-1
-        reference: <testLibraryFragment>::@getter::vValue
-        enclosingElement: <testLibraryFragment>
-        returnType: E
-      synthetic static get vValues @-1
-        reference: <testLibraryFragment>::@getter::vValues
-        enclosingElement: <testLibraryFragment>
-        returnType: List<E>
-      synthetic static get vIndex @-1
-        reference: <testLibraryFragment>::@getter::vIndex
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant a @8
+              reference: <testLibraryFragment>::@enum::E::@field::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant b @11
+              reference: <testLibraryFragment>::@enum::E::@field::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant c @14
+              reference: <testLibraryFragment>::@enum::E::@field::c
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: a @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::a
+                      staticType: E
+                    SimpleIdentifier
+                      token: b @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::b
+                      staticType: E
+                    SimpleIdentifier
+                      token: c @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::c
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get b @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get c @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::c
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      topLevelVariables
+        static final vValue @23
+          reference: <testLibraryFragment>::@topLevelVariable::vValue
+          enclosingElement: <testLibraryFragment>
+          type: E
+          shouldUseTypeForInitializerInference: false
+        static final vValues @43
+          reference: <testLibraryFragment>::@topLevelVariable::vValues
+          enclosingElement: <testLibraryFragment>
+          type: List<E>
+          shouldUseTypeForInitializerInference: false
+        static final vIndex @69
+          reference: <testLibraryFragment>::@topLevelVariable::vIndex
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get vValue @-1
+          reference: <testLibraryFragment>::@getter::vValue
+          enclosingElement: <testLibraryFragment>
+          returnType: E
+        synthetic static get vValues @-1
+          reference: <testLibraryFragment>::@getter::vValues
+          enclosingElement: <testLibraryFragment>
+          returnType: List<E>
+        synthetic static get vIndex @-1
+          reference: <testLibraryFragment>::@getter::vIndex
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -32425,70 +33016,71 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant a @8
-            reference: <testLibraryFragment>::@enum::E::@field::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: a @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::a
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    topLevelVariables
-      static final vToString @17
-        reference: <testLibraryFragment>::@topLevelVariable::vToString
-        enclosingElement: <testLibraryFragment>
-        type: String
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get vToString @-1
-        reference: <testLibraryFragment>::@getter::vToString
-        enclosingElement: <testLibraryFragment>
-        returnType: String
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant a @8
+              reference: <testLibraryFragment>::@enum::E::@field::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: a @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::a
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      topLevelVariables
+        static final vToString @17
+          reference: <testLibraryFragment>::@topLevelVariable::vToString
+          enclosingElement: <testLibraryFragment>
+          type: String
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get vToString @-1
+          reference: <testLibraryFragment>::@getter::vToString
+          enclosingElement: <testLibraryFragment>
+          returnType: String
 ''');
   }
 
@@ -32502,46 +33094,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const a @25
-            reference: <testLibraryFragment>::@class::C::@field::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              SimpleIdentifier
-                token: b @29
-                staticElement: <testLibraryFragment>::@class::C::@getter::b
-                staticType: dynamic
-          static const b @47
-            reference: <testLibraryFragment>::@class::C::@field::b
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              NullLiteral
-                literal: null @51
-                staticType: Null
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@class::C::@getter::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-          synthetic static get b @-1
-            reference: <testLibraryFragment>::@class::C::@getter::b
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const a @25
+              reference: <testLibraryFragment>::@class::C::@field::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                SimpleIdentifier
+                  token: b @29
+                  staticElement: <testLibraryFragment>::@class::C::@getter::b
+                  staticType: dynamic
+            static const b @47
+              reference: <testLibraryFragment>::@class::C::@field::b
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                NullLiteral
+                  literal: null @51
+                  staticType: Null
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@class::C::@getter::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+            synthetic static get b @-1
+              reference: <testLibraryFragment>::@class::C::@getter::b
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -32555,38 +33148,39 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const a @25
-            reference: <testLibraryFragment>::@class::C::@field::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic Function()
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              SimpleIdentifier
-                token: m @29
-                staticElement: <testLibraryFragment>::@class::C::@method::m
-                staticType: dynamic Function()
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@class::C::@getter::a
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic Function()
-        methods
-          static m @41
-            reference: <testLibraryFragment>::@class::C::@method::m
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const a @25
+              reference: <testLibraryFragment>::@class::C::@field::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic Function()
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                SimpleIdentifier
+                  token: m @29
+                  staticElement: <testLibraryFragment>::@class::C::@method::m
+                  staticType: dynamic Function()
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@class::C::@getter::a
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic Function()
+          methods
+            static m @41
+              reference: <testLibraryFragment>::@class::C::@method::m
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -32599,35 +33193,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          abstract X @21
-            reference: <testLibraryFragment>::@class::A::@method::X
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              optionalNamed default a @32
-                reference: <testLibraryFragment>::@class::A::@method::X::@parameter::a
-                type: List<T>
-                constantInitializer
-                  ListLiteral
-                    constKeyword: const @36
-                    leftBracket: [ @42
-                    rightBracket: ] @43
-                    staticType: List<Never>
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            abstract X @21
+              reference: <testLibraryFragment>::@class::A::@method::X
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                optionalNamed default a @32
+                  reference: <testLibraryFragment>::@class::A::@method::X::@parameter::a
+                  type: List<T>
+                  constantInitializer
+                    ListLiteral
+                      constKeyword: const @36
+                      leftBracket: [ @42
+                      rightBracket: ] @43
+                      staticType: List<Never>
+              returnType: dynamic
 ''');
   }
 
@@ -32645,73 +33240,74 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class X @57
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        fields
-          final f @71
-            reference: <testLibraryFragment>::@class::X::@field::f
-            enclosingElement: <testLibraryFragment>::@class::X
-            type: void Function(dynamic)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  dynamic
-        constructors
-          const @82
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class X @57
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          fields
+            final f @71
+              reference: <testLibraryFragment>::@class::X::@field::f
+              enclosingElement: <testLibraryFragment>::@class::X
+              type: void Function(dynamic)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    dynamic
+          constructors
+            const @82
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+              parameters
+                optionalNamed default final this.f @90
+                  reference: <testLibraryFragment>::@class::X::@constructor::new::@parameter::f
+                  type: void Function(dynamic)
+                    alias: <testLibraryFragment>::@typeAlias::F
+                      typeArguments
+                        dynamic
+                  constantInitializer
+                    FunctionReference
+                      function: SimpleIdentifier
+                        token: defaultF @93
+                        staticElement: <testLibraryFragment>::@function::defaultF
+                        staticType: void Function<T>(T)
+                      staticType: void Function(dynamic)
+                      typeArgumentTypes
+                        dynamic
+                  field: <testLibraryFragment>::@class::X::@field::f
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::X::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::X
+              returnType: void Function(dynamic)
+                alias: <testLibraryFragment>::@typeAlias::F
+                  typeArguments
+                    dynamic
+      typeAliases
+        functionTypeAliasBased F @13
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            contravariant T @15
+              defaultType: dynamic
+          aliasedType: void Function(T)
+          aliasedElement: GenericFunctionTypeElement
             parameters
-              optionalNamed default final this.f @90
-                reference: <testLibraryFragment>::@class::X::@constructor::new::@parameter::f
-                type: void Function(dynamic)
-                  alias: <testLibraryFragment>::@typeAlias::F
-                    typeArguments
-                      dynamic
-                constantInitializer
-                  FunctionReference
-                    function: SimpleIdentifier
-                      token: defaultF @93
-                      staticElement: <testLibraryFragment>::@function::defaultF
-                      staticType: void Function<T>(T)
-                    staticType: void Function(dynamic)
-                    typeArgumentTypes
-                      dynamic
-                field: <testLibraryFragment>::@class::X::@field::f
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::X::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::X
-            returnType: void Function(dynamic)
-              alias: <testLibraryFragment>::@typeAlias::F
-                typeArguments
-                  dynamic
-    typeAliases
-      functionTypeAliasBased F @13
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          contravariant T @15
-            defaultType: dynamic
-        aliasedType: void Function(T)
-        aliasedElement: GenericFunctionTypeElement
+              requiredPositional v @20
+                type: T
+            returnType: void
+      functions
+        defaultF @30
+          reference: <testLibraryFragment>::@function::defaultF
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @39
+              defaultType: dynamic
           parameters
-            requiredPositional v @20
+            requiredPositional v @44
               type: T
           returnType: void
-    functions
-      defaultF @30
-        reference: <testLibraryFragment>::@function::defaultF
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @39
-            defaultType: dynamic
-        parameters
-          requiredPositional v @44
-            type: T
-        returnType: void
 ''');
   }
 
@@ -32727,65 +33323,66 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @34
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-        methods
-          foo @45
-            reference: <testLibraryFragment>::@class::B::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              optionalNamed default a @50
-                reference: <testLibraryFragment>::@class::B::@method::foo::@parameter::a
-                type: dynamic
-                constantInitializer
-                  InstanceCreationExpression
-                    keyword: const @53
-                    constructorName: ConstructorName
-                      type: NamedType
-                        name: A @59
-                        typeArguments: TypeArgumentList
-                          leftBracket: < @60
-                          arguments
-                            GenericFunctionType
-                              functionKeyword: Function @61
-                              parameters: FormalParameterList
-                                leftParenthesis: ( @69
-                                rightParenthesis: ) @70
-                              declaredElement: GenericFunctionTypeElement
-                                parameters
-                                returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @34
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+          methods
+            foo @45
+              reference: <testLibraryFragment>::@class::B::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                optionalNamed default a @50
+                  reference: <testLibraryFragment>::@class::B::@method::foo::@parameter::a
+                  type: dynamic
+                  constantInitializer
+                    InstanceCreationExpression
+                      keyword: const @53
+                      constructorName: ConstructorName
+                        type: NamedType
+                          name: A @59
+                          typeArguments: TypeArgumentList
+                            leftBracket: < @60
+                            arguments
+                              GenericFunctionType
+                                functionKeyword: Function @61
+                                parameters: FormalParameterList
+                                  leftParenthesis: ( @69
+                                  rightParenthesis: ) @70
+                                declaredElement: GenericFunctionTypeElement
+                                  parameters
+                                  returnType: dynamic
+                                  type: dynamic Function()
                                 type: dynamic Function()
-                              type: dynamic Function()
-                          rightBracket: > @71
-                        element: <testLibraryFragment>::@class::A
-                        type: A<dynamic Function()>
-                      staticElement: ConstructorMember
-                        base: <testLibraryFragment>::@class::A::@constructor::new
-                        substitution: {T: dynamic Function()}
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @72
-                      rightParenthesis: ) @73
-                    staticType: A<dynamic Function()>
-            returnType: void
+                            rightBracket: > @71
+                          element: <testLibraryFragment>::@class::A
+                          type: A<dynamic Function()>
+                        staticElement: ConstructorMember
+                          base: <testLibraryFragment>::@class::A::@constructor::new
+                          substitution: {T: dynamic Function()}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @72
+                        rightParenthesis: ) @73
+                      staticType: A<dynamic Function()>
+              returnType: void
 ''');
   }
 
@@ -32796,20 +33393,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional g @8
-            type: dynamic Function({dynamic a})
-            parameters
-              optionalNamed a @11
-                type: dynamic
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional g @8
+              type: dynamic Function({dynamic a})
+              parameters
+                optionalNamed a @11
+                  type: dynamic
+          returnType: void
 ''');
   }
 
@@ -32820,33 +33418,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalPositional default compare @22
-            type: int Function(InvalidType, InvalidType)
-              alias: dart:core::<fragment>::@typeAlias::Comparator
-                typeArguments
-                  InvalidType
-            constantInitializer
-              PrefixedIdentifier
-                prefix: SimpleIdentifier
-                  token: Comparable @32
-                  staticElement: dart:core::<fragment>::@class::Comparable
-                  staticType: null
-                period: . @42
-                identifier: SimpleIdentifier
-                  token: compare @43
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalPositional default compare @22
+              type: int Function(InvalidType, InvalidType)
+                alias: dart:core::<fragment>::@typeAlias::Comparator
+                  typeArguments
+                    InvalidType
+              constantInitializer
+                PrefixedIdentifier
+                  prefix: SimpleIdentifier
+                    token: Comparable @32
+                    staticElement: dart:core::<fragment>::@class::Comparable
+                    staticType: null
+                  period: . @42
+                  identifier: SimpleIdentifier
+                    token: compare @43
+                    staticElement: dart:core::<fragment>::@class::Comparable::@method::compare
+                    staticType: int Function(Comparable<dynamic>, Comparable<dynamic>)
                   staticElement: dart:core::<fragment>::@class::Comparable::@method::compare
                   staticType: int Function(Comparable<dynamic>, Comparable<dynamic>)
-                staticElement: dart:core::<fragment>::@class::Comparable::@method::compare
-                staticType: int Function(Comparable<dynamic>, Comparable<dynamic>)
-        returnType: void
+          returnType: void
 ''');
   }
 
@@ -32857,44 +33456,45 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default x @28
-            reference: <testLibraryFragment>::@function::f::@parameter::x
-            type: ({int f1, bool f2})
-            constantInitializer
-              RecordLiteral
-                leftParenthesis: ( @32
-                fields
-                  NamedExpression
-                    name: Label
-                      label: SimpleIdentifier
-                        token: f1 @33
-                        staticElement: <null>
-                        staticType: null
-                      colon: : @35
-                    expression: IntegerLiteral
-                      literal: 1 @37
-                      staticType: int
-                  NamedExpression
-                    name: Label
-                      label: SimpleIdentifier
-                        token: f2 @40
-                        staticElement: <null>
-                        staticType: null
-                      colon: : @42
-                    expression: BooleanLiteral
-                      literal: true @44
-                      staticType: bool
-                rightParenthesis: ) @48
-                staticType: ({int f1, bool f2})
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default x @28
+              reference: <testLibraryFragment>::@function::f::@parameter::x
+              type: ({int f1, bool f2})
+              constantInitializer
+                RecordLiteral
+                  leftParenthesis: ( @32
+                  fields
+                    NamedExpression
+                      name: Label
+                        label: SimpleIdentifier
+                          token: f1 @33
+                          staticElement: <null>
+                          staticType: null
+                        colon: : @35
+                      expression: IntegerLiteral
+                        literal: 1 @37
+                        staticType: int
+                    NamedExpression
+                      name: Label
+                        label: SimpleIdentifier
+                          token: f2 @40
+                          staticElement: <null>
+                          staticType: null
+                        colon: : @42
+                      expression: BooleanLiteral
+                        literal: true @44
+                        staticType: bool
+                  rightParenthesis: ) @48
+                  staticType: ({int f1, bool f2})
+          returnType: void
 ''');
   }
 
@@ -32905,45 +33505,46 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default x @28
-            reference: <testLibraryFragment>::@function::f::@parameter::x
-            type: ({int f1, bool f2})
-            constantInitializer
-              RecordLiteral
-                constKeyword: const @32
-                leftParenthesis: ( @38
-                fields
-                  NamedExpression
-                    name: Label
-                      label: SimpleIdentifier
-                        token: f1 @39
-                        staticElement: <null>
-                        staticType: null
-                      colon: : @41
-                    expression: IntegerLiteral
-                      literal: 1 @43
-                      staticType: int
-                  NamedExpression
-                    name: Label
-                      label: SimpleIdentifier
-                        token: f2 @46
-                        staticElement: <null>
-                        staticType: null
-                      colon: : @48
-                    expression: BooleanLiteral
-                      literal: true @50
-                      staticType: bool
-                rightParenthesis: ) @54
-                staticType: ({int f1, bool f2})
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default x @28
+              reference: <testLibraryFragment>::@function::f::@parameter::x
+              type: ({int f1, bool f2})
+              constantInitializer
+                RecordLiteral
+                  constKeyword: const @32
+                  leftParenthesis: ( @38
+                  fields
+                    NamedExpression
+                      name: Label
+                        label: SimpleIdentifier
+                          token: f1 @39
+                          staticElement: <null>
+                          staticType: null
+                        colon: : @41
+                      expression: IntegerLiteral
+                        literal: 1 @43
+                        staticType: int
+                    NamedExpression
+                      name: Label
+                        label: SimpleIdentifier
+                          token: f2 @46
+                          staticElement: <null>
+                          staticType: null
+                        colon: : @48
+                      expression: BooleanLiteral
+                        literal: true @50
+                        staticType: bool
+                  rightParenthesis: ) @54
+                  staticType: ({int f1, bool f2})
+          returnType: void
 ''');
   }
 
@@ -32954,30 +33555,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default x @20
-            reference: <testLibraryFragment>::@function::f::@parameter::x
-            type: (int, bool)
-            constantInitializer
-              RecordLiteral
-                leftParenthesis: ( @24
-                fields
-                  IntegerLiteral
-                    literal: 1 @25
-                    staticType: int
-                  BooleanLiteral
-                    literal: true @28
-                    staticType: bool
-                rightParenthesis: ) @32
-                staticType: (int, bool)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default x @20
+              reference: <testLibraryFragment>::@function::f::@parameter::x
+              type: (int, bool)
+              constantInitializer
+                RecordLiteral
+                  leftParenthesis: ( @24
+                  fields
+                    IntegerLiteral
+                      literal: 1 @25
+                      staticType: int
+                    BooleanLiteral
+                      literal: true @28
+                      staticType: bool
+                  rightParenthesis: ) @32
+                  staticType: (int, bool)
+          returnType: void
 ''');
   }
 
@@ -32988,31 +33590,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default x @20
-            reference: <testLibraryFragment>::@function::f::@parameter::x
-            type: (int, bool)
-            constantInitializer
-              RecordLiteral
-                constKeyword: const @24
-                leftParenthesis: ( @30
-                fields
-                  IntegerLiteral
-                    literal: 1 @31
-                    staticType: int
-                  BooleanLiteral
-                    literal: true @34
-                    staticType: bool
-                rightParenthesis: ) @38
-                staticType: (int, bool)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default x @20
+              reference: <testLibraryFragment>::@function::f::@parameter::x
+              type: (int, bool)
+              constantInitializer
+                RecordLiteral
+                  constKeyword: const @24
+                  leftParenthesis: ( @30
+                  fields
+                    IntegerLiteral
+                      literal: 1 @31
+                      staticType: int
+                    BooleanLiteral
+                      literal: true @34
+                      staticType: bool
+                  rightParenthesis: ) @38
+                  staticType: (int, bool)
+          returnType: void
 ''');
   }
 
@@ -33027,39 +33630,40 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    extensions
-      E @21
-        reference: <testLibraryFragment>::@extension::E
-        enclosingElement: <testLibraryFragment>
-        extendedType: A
-        methods
-          static f @44
-            reference: <testLibraryFragment>::@extension::E::@method::f
-            enclosingElement: <testLibraryFragment>::@extension::E
-            returnType: void
-          static g @65
-            reference: <testLibraryFragment>::@extension::E::@method::g
-            enclosingElement: <testLibraryFragment>::@extension::E
-            parameters
-              optionalPositional default p @75
-                type: Object
-                constantInitializer
-                  SimpleIdentifier
-                    token: f @79
-                    staticElement: <testLibraryFragment>::@extension::E::@method::f
-                    staticType: void Function()
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      extensions
+        E @21
+          reference: <testLibraryFragment>::@extension::E
+          enclosingElement: <testLibraryFragment>
+          extendedType: A
+          methods
+            static f @44
+              reference: <testLibraryFragment>::@extension::E::@method::f
+              enclosingElement: <testLibraryFragment>::@extension::E
+              returnType: void
+            static g @65
+              reference: <testLibraryFragment>::@extension::E::@method::g
+              enclosingElement: <testLibraryFragment>::@extension::E
+              parameters
+                optionalPositional default p @75
+                  type: Object
+                  constantInitializer
+                    SimpleIdentifier
+                      token: f @79
+                      staticElement: <testLibraryFragment>::@extension::E::@method::f
+                      staticType: void Function()
+              returnType: void
 ''');
   }
 
@@ -33075,52 +33679,53 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @6
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @8
-            defaultType: dynamic
-          covariant T2 @12
-            defaultType: dynamic
-        constructors
-          const @26
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @39
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          foo @50
-            reference: <testLibraryFragment>::@class::C::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default b @70
-                type: B<int, double>
-                constantInitializer
-                  InstanceCreationExpression
-                    keyword: const @74
-                    constructorName: ConstructorName
-                      type: NamedType
-                        name: B @80
-                        element: <testLibraryFragment>::@class::B
-                        type: B<int, double>
-                      staticElement: ConstructorMember
-                        base: <testLibraryFragment>::@class::B::@constructor::new
-                        substitution: {T1: int, T2: double}
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @81
-                      rightParenthesis: ) @82
-                    staticType: B<int, double>
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @6
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @8
+              defaultType: dynamic
+            covariant T2 @12
+              defaultType: dynamic
+          constructors
+            const @26
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @39
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            foo @50
+              reference: <testLibraryFragment>::@class::C::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default b @70
+                  type: B<int, double>
+                  constantInitializer
+                    InstanceCreationExpression
+                      keyword: const @74
+                      constructorName: ConstructorName
+                        type: NamedType
+                          name: B @80
+                          element: <testLibraryFragment>::@class::B
+                          type: B<int, double>
+                        staticElement: ConstructorMember
+                          base: <testLibraryFragment>::@class::B::@constructor::new
+                          substitution: {T1: int, T2: double}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @81
+                        rightParenthesis: ) @82
+                      staticType: B<int, double>
+              returnType: void
 ''');
   }
 
@@ -33136,48 +33741,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @6
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @34
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @36
-            defaultType: dynamic
-        constructors
-          const @49
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default b @57
-                type: B<T>
-                constantInitializer
-                  InstanceCreationExpression
-                    keyword: const @61
-                    constructorName: ConstructorName
-                      type: NamedType
-                        name: B @67
-                        element: <testLibraryFragment>::@class::B
-                        type: B<Never>
-                      staticElement: ConstructorMember
-                        base: <testLibraryFragment>::@class::B::@constructor::new
-                        substitution: {T: Never}
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @68
-                      rightParenthesis: ) @69
-                    staticType: B<Never>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @6
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @34
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @36
+              defaultType: dynamic
+          constructors
+            const @49
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default b @57
+                  type: B<T>
+                  constantInitializer
+                    InstanceCreationExpression
+                      keyword: const @61
+                      constructorName: ConstructorName
+                        type: NamedType
+                          name: B @67
+                          element: <testLibraryFragment>::@class::B
+                          type: B<Never>
+                        staticElement: ConstructorMember
+                          base: <testLibraryFragment>::@class::B::@constructor::new
+                          substitution: {T: Never}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @68
+                        rightParenthesis: ) @69
+                      staticType: B<Never>
 ''');
   }
 
@@ -33194,62 +33800,63 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class A @15
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @17
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @29
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @31
-            defaultType: dynamic
-        interfaces
-          A<T>
-        constructors
-          const @60
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @73
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @75
-            defaultType: dynamic
-        interfaces
-          A<Iterable<T>>
-        constructors
-          const @114
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default a @122
-                type: A<T>
-                constantInitializer
-                  InstanceCreationExpression
-                    keyword: const @126
-                    constructorName: ConstructorName
-                      type: NamedType
-                        name: B @132
-                        element: <testLibraryFragment>::@class::B
-                        type: B<Never>
-                      staticElement: ConstructorMember
-                        base: <testLibraryFragment>::@class::B::@constructor::new
-                        substitution: {T: Never}
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @133
-                      rightParenthesis: ) @134
-                    staticType: B<Never>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class A @15
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @17
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @29
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @31
+              defaultType: dynamic
+          interfaces
+            A<T>
+          constructors
+            const @60
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @73
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @75
+              defaultType: dynamic
+          interfaces
+            A<Iterable<T>>
+          constructors
+            const @114
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default a @122
+                  type: A<T>
+                  constantInitializer
+                    InstanceCreationExpression
+                      keyword: const @126
+                      constructorName: ConstructorName
+                        type: NamedType
+                          name: B @132
+                          element: <testLibraryFragment>::@class::B
+                          type: B<Never>
+                        staticElement: ConstructorMember
+                          base: <testLibraryFragment>::@class::B::@constructor::new
+                          substitution: {T: Never}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @133
+                        rightParenthesis: ) @134
+                      staticType: B<Never>
 ''');
   }
 
@@ -33263,46 +33870,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @6
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-    functions
-      foo @33
-        reference: <testLibraryFragment>::@function::foo
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @37
-            defaultType: dynamic
-        parameters
-          optionalPositional default b @46
-            type: B<T>
-            constantInitializer
-              InstanceCreationExpression
-                keyword: const @50
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: B @56
-                    element: <testLibraryFragment>::@class::B
-                    type: B<Never>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@class::B::@constructor::new
-                    substitution: {T: Never}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @57
-                  rightParenthesis: ) @58
-                staticType: B<Never>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @6
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+      functions
+        foo @33
+          reference: <testLibraryFragment>::@function::foo
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @37
+              defaultType: dynamic
+          parameters
+            optionalPositional default b @46
+              type: B<T>
+              constantInitializer
+                InstanceCreationExpression
+                  keyword: const @50
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: B @56
+                      element: <testLibraryFragment>::@class::B
+                      type: B<Never>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@class::B::@constructor::new
+                      substitution: {T: Never}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @57
+                    rightParenthesis: ) @58
+                  staticType: B<Never>
+          returnType: void
 ''');
   }
 
@@ -33318,53 +33926,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @6
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @34
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          foo @45
-            reference: <testLibraryFragment>::@class::C::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            typeParameters
-              covariant T @49
-                defaultType: dynamic
-            parameters
-              optionalPositional default b @58
-                type: B<T>
-                constantInitializer
-                  InstanceCreationExpression
-                    keyword: const @62
-                    constructorName: ConstructorName
-                      type: NamedType
-                        name: B @68
-                        element: <testLibraryFragment>::@class::B
-                        type: B<Never>
-                      staticElement: ConstructorMember
-                        base: <testLibraryFragment>::@class::B::@constructor::new
-                        substitution: {T: Never}
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @69
-                      rightParenthesis: ) @70
-                    staticType: B<Never>
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @6
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @34
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            foo @45
+              reference: <testLibraryFragment>::@class::C::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              typeParameters
+                covariant T @49
+                  defaultType: dynamic
+              parameters
+                optionalPositional default b @58
+                  type: B<T>
+                  constantInitializer
+                    InstanceCreationExpression
+                      keyword: const @62
+                      constructorName: ConstructorName
+                        type: NamedType
+                          name: B @68
+                          element: <testLibraryFragment>::@class::B
+                          type: B<Never>
+                        staticElement: ConstructorMember
+                          base: <testLibraryFragment>::@class::B::@constructor::new
+                          substitution: {T: Never}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @69
+                        rightParenthesis: ) @70
+                      staticType: B<Never>
+              returnType: void
 ''');
   }
 
@@ -33380,58 +33989,59 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @6
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T1 @8
-            defaultType: dynamic
-          covariant T2 @12
-            defaultType: dynamic
-        constructors
-          const @26
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @39
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant E1 @41
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          foo @54
-            reference: <testLibraryFragment>::@class::C::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            typeParameters
-              covariant E2 @58
-                defaultType: dynamic
-            parameters
-              optionalPositional default b @73
-                type: B<E1, E2>
-                constantInitializer
-                  InstanceCreationExpression
-                    keyword: const @77
-                    constructorName: ConstructorName
-                      type: NamedType
-                        name: B @83
-                        element: <testLibraryFragment>::@class::B
-                        type: B<Never, Never>
-                      staticElement: ConstructorMember
-                        base: <testLibraryFragment>::@class::B::@constructor::new
-                        substitution: {T1: Never, T2: Never}
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @84
-                      rightParenthesis: ) @85
-                    staticType: B<Never, Never>
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @6
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T1 @8
+              defaultType: dynamic
+            covariant T2 @12
+              defaultType: dynamic
+          constructors
+            const @26
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @39
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant E1 @41
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            foo @54
+              reference: <testLibraryFragment>::@class::C::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              typeParameters
+                covariant E2 @58
+                  defaultType: dynamic
+              parameters
+                optionalPositional default b @73
+                  type: B<E1, E2>
+                  constantInitializer
+                    InstanceCreationExpression
+                      keyword: const @77
+                      constructorName: ConstructorName
+                        type: NamedType
+                          name: B @83
+                          element: <testLibraryFragment>::@class::B
+                          type: B<Never, Never>
+                        staticElement: ConstructorMember
+                          base: <testLibraryFragment>::@class::B::@constructor::new
+                          substitution: {T1: Never, T2: Never}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @84
+                        rightParenthesis: ) @85
+                      staticType: B<Never, Never>
+              returnType: void
 ''');
   }
 
@@ -33447,53 +34057,54 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class B @6
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class C @34
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @36
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          foo @48
-            reference: <testLibraryFragment>::@class::C::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              optionalPositional default b @58
-                type: B<T>
-                constantInitializer
-                  InstanceCreationExpression
-                    keyword: const @62
-                    constructorName: ConstructorName
-                      type: NamedType
-                        name: B @68
-                        element: <testLibraryFragment>::@class::B
-                        type: B<Never>
-                      staticElement: ConstructorMember
-                        base: <testLibraryFragment>::@class::B::@constructor::new
-                        substitution: {T: Never}
-                    argumentList: ArgumentList
-                      leftParenthesis: ( @69
-                      rightParenthesis: ) @70
-                    staticType: B<Never>
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class B @6
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class C @34
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @36
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            foo @48
+              reference: <testLibraryFragment>::@class::C::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                optionalPositional default b @58
+                  type: B<T>
+                  constantInitializer
+                    InstanceCreationExpression
+                      keyword: const @62
+                      constructorName: ConstructorName
+                        type: NamedType
+                          name: B @68
+                          element: <testLibraryFragment>::@class::B
+                          type: B<Never>
+                        staticElement: ConstructorMember
+                          base: <testLibraryFragment>::@class::B::@constructor::new
+                          substitution: {T: Never}
+                      argumentList: ArgumentList
+                        leftParenthesis: ( @69
+                        rightParenthesis: ) @70
+                      staticType: B<Never>
+              returnType: void
 ''');
   }
 
@@ -33518,118 +34129,119 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A::@def::0
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const f01 @25
-            reference: <testLibraryFragment>::@class::A::@def::0::@field::f01
-            enclosingElement: <testLibraryFragment>::@class::A::@def::0
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @31
-                staticType: int
-          static const f02 @49
-            reference: <testLibraryFragment>::@class::A::@def::0::@field::f02
-            enclosingElement: <testLibraryFragment>::@class::A::@def::0
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              SimpleIdentifier
-                token: f01 @55
-                staticElement: <testLibraryFragment>::@class::A::@def::0::@getter::f01
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@def::0::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A::@def::0
-        accessors
-          synthetic static get f01 @-1
-            reference: <testLibraryFragment>::@class::A::@def::0::@getter::f01
-            enclosingElement: <testLibraryFragment>::@class::A::@def::0
-            returnType: int
-          synthetic static get f02 @-1
-            reference: <testLibraryFragment>::@class::A::@def::0::@getter::f02
-            enclosingElement: <testLibraryFragment>::@class::A::@def::0
-            returnType: int
-      class A @69
-        reference: <testLibraryFragment>::@class::A::@def::1
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const f11 @88
-            reference: <testLibraryFragment>::@class::A::@def::1::@field::f11
-            enclosingElement: <testLibraryFragment>::@class::A::@def::1
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @94
-                staticType: int
-          static const f12 @112
-            reference: <testLibraryFragment>::@class::A::@def::1::@field::f12
-            enclosingElement: <testLibraryFragment>::@class::A::@def::1
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              SimpleIdentifier
-                token: f11 @118
-                staticElement: <testLibraryFragment>::@class::A::@def::1::@getter::f11
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@def::1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A::@def::1
-        accessors
-          synthetic static get f11 @-1
-            reference: <testLibraryFragment>::@class::A::@def::1::@getter::f11
-            enclosingElement: <testLibraryFragment>::@class::A::@def::1
-            returnType: int
-          synthetic static get f12 @-1
-            reference: <testLibraryFragment>::@class::A::@def::1::@getter::f12
-            enclosingElement: <testLibraryFragment>::@class::A::@def::1
-            returnType: int
-      class A @132
-        reference: <testLibraryFragment>::@class::A::@def::2
-        enclosingElement: <testLibraryFragment>
-        fields
-          static const f21 @151
-            reference: <testLibraryFragment>::@class::A::@def::2::@field::f21
-            enclosingElement: <testLibraryFragment>::@class::A::@def::2
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @157
-                staticType: int
-          static const f22 @175
-            reference: <testLibraryFragment>::@class::A::@def::2::@field::f22
-            enclosingElement: <testLibraryFragment>::@class::A::@def::2
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              SimpleIdentifier
-                token: f21 @181
-                staticElement: <testLibraryFragment>::@class::A::@def::2::@getter::f21
-                staticType: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@def::2::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A::@def::2
-        accessors
-          synthetic static get f21 @-1
-            reference: <testLibraryFragment>::@class::A::@def::2::@getter::f21
-            enclosingElement: <testLibraryFragment>::@class::A::@def::2
-            returnType: int
-          synthetic static get f22 @-1
-            reference: <testLibraryFragment>::@class::A::@def::2::@getter::f22
-            enclosingElement: <testLibraryFragment>::@class::A::@def::2
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A::@def::0
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const f01 @25
+              reference: <testLibraryFragment>::@class::A::@def::0::@field::f01
+              enclosingElement: <testLibraryFragment>::@class::A::@def::0
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @31
+                  staticType: int
+            static const f02 @49
+              reference: <testLibraryFragment>::@class::A::@def::0::@field::f02
+              enclosingElement: <testLibraryFragment>::@class::A::@def::0
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                SimpleIdentifier
+                  token: f01 @55
+                  staticElement: <testLibraryFragment>::@class::A::@def::0::@getter::f01
+                  staticType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@def::0::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A::@def::0
+          accessors
+            synthetic static get f01 @-1
+              reference: <testLibraryFragment>::@class::A::@def::0::@getter::f01
+              enclosingElement: <testLibraryFragment>::@class::A::@def::0
+              returnType: int
+            synthetic static get f02 @-1
+              reference: <testLibraryFragment>::@class::A::@def::0::@getter::f02
+              enclosingElement: <testLibraryFragment>::@class::A::@def::0
+              returnType: int
+        class A @69
+          reference: <testLibraryFragment>::@class::A::@def::1
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const f11 @88
+              reference: <testLibraryFragment>::@class::A::@def::1::@field::f11
+              enclosingElement: <testLibraryFragment>::@class::A::@def::1
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @94
+                  staticType: int
+            static const f12 @112
+              reference: <testLibraryFragment>::@class::A::@def::1::@field::f12
+              enclosingElement: <testLibraryFragment>::@class::A::@def::1
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                SimpleIdentifier
+                  token: f11 @118
+                  staticElement: <testLibraryFragment>::@class::A::@def::1::@getter::f11
+                  staticType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@def::1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A::@def::1
+          accessors
+            synthetic static get f11 @-1
+              reference: <testLibraryFragment>::@class::A::@def::1::@getter::f11
+              enclosingElement: <testLibraryFragment>::@class::A::@def::1
+              returnType: int
+            synthetic static get f12 @-1
+              reference: <testLibraryFragment>::@class::A::@def::1::@getter::f12
+              enclosingElement: <testLibraryFragment>::@class::A::@def::1
+              returnType: int
+        class A @132
+          reference: <testLibraryFragment>::@class::A::@def::2
+          enclosingElement: <testLibraryFragment>
+          fields
+            static const f21 @151
+              reference: <testLibraryFragment>::@class::A::@def::2::@field::f21
+              enclosingElement: <testLibraryFragment>::@class::A::@def::2
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @157
+                  staticType: int
+            static const f22 @175
+              reference: <testLibraryFragment>::@class::A::@def::2::@field::f22
+              enclosingElement: <testLibraryFragment>::@class::A::@def::2
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                SimpleIdentifier
+                  token: f21 @181
+                  staticElement: <testLibraryFragment>::@class::A::@def::2::@getter::f21
+                  staticType: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@def::2::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A::@def::2
+          accessors
+            synthetic static get f21 @-1
+              reference: <testLibraryFragment>::@class::A::@def::2::@getter::f21
+              enclosingElement: <testLibraryFragment>::@class::A::@def::2
+              returnType: int
+            synthetic static get f22 @-1
+              reference: <testLibraryFragment>::@class::A::@def::2::@getter::f22
+              enclosingElement: <testLibraryFragment>::@class::A::@def::2
+              returnType: int
 ''');
   }
 
@@ -33644,24 +34256,25 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          named @14
-            reference: <testLibraryFragment>::@class::A::@constructor::named::@def::0
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 13
-            nameEnd: 19
-          named @27
-            reference: <testLibraryFragment>::@class::A::@constructor::named::@def::1
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 26
-            nameEnd: 32
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            named @14
+              reference: <testLibraryFragment>::@class::A::@constructor::named::@def::0
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 13
+              nameEnd: 19
+            named @27
+              reference: <testLibraryFragment>::@class::A::@constructor::named::@def::1
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 26
+              nameEnd: 32
 ''');
   }
 
@@ -33676,63 +34289,64 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          foo @16
-            reference: <testLibraryFragment>::@class::A::@field::foo::@def::0
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            id: field_0
-            getter: getter_0
-            setter: setter_0
-          foo @30
-            reference: <testLibraryFragment>::@class::A::@field::foo::@def::1
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: double
-            id: field_1
-            getter: getter_1
-            setter: setter_1
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo::@def::0
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-            id: getter_0
-            variable: field_0
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo::@def::0
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: int
-            returnType: void
-            id: setter_0
-            variable: field_0
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo::@def::1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: double
-            id: getter_1
-            variable: field_1
-          synthetic set foo= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::foo::@def::1
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _foo @-1
-                type: double
-            returnType: void
-            id: setter_1
-            variable: field_1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            foo @16
+              reference: <testLibraryFragment>::@class::A::@field::foo::@def::0
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              id: field_0
+              getter: getter_0
+              setter: setter_0
+            foo @30
+              reference: <testLibraryFragment>::@class::A::@field::foo::@def::1
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: double
+              id: field_1
+              getter: getter_1
+              setter: setter_1
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo::@def::0
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+              id: getter_0
+              variable: field_0
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo::@def::0
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: int
+              returnType: void
+              id: setter_0
+              variable: field_0
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo::@def::1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: double
+              id: getter_1
+              variable: field_1
+            synthetic set foo= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::foo::@def::1
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _foo @-1
+                  type: double
+              returnType: void
+              id: setter_1
+              variable: field_1
 ''');
   }
 
@@ -33747,26 +34361,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @17
-            reference: <testLibraryFragment>::@class::A::@method::foo::@def::0
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
-          foo @33
-            reference: <testLibraryFragment>::@class::A::@method::foo::@def::1
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @17
+              reference: <testLibraryFragment>::@class::A::@method::foo::@def::0
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
+            foo @33
+              reference: <testLibraryFragment>::@class::A::@method::foo::@def::1
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: void
 ''');
   }
 
@@ -33781,66 +34396,67 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @17
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-      class alias X @28
-        reference: <testLibraryFragment>::@class::X::@def::0
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        mixins
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@def::0::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X::@def::0
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-      class alias X @48
-        reference: <testLibraryFragment>::@class::X::@def::1
-        enclosingElement: <testLibraryFragment>
-        supertype: B
-        mixins
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@def::1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X::@def::1
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::B::@constructor::new
-            superConstructor: <testLibraryFragment>::@class::B::@constructor::new
-    mixins
-      mixin M @68
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @17
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+        class alias X @28
+          reference: <testLibraryFragment>::@class::X::@def::0
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          mixins
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@def::0::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X::@def::0
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+        class alias X @48
+          reference: <testLibraryFragment>::@class::X::@def::1
+          enclosingElement: <testLibraryFragment>
+          supertype: B
+          mixins
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@def::1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X::@def::1
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::B::@constructor::new
+              superConstructor: <testLibraryFragment>::@class::B::@constructor::new
+      mixins
+        mixin M @68
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -33853,183 +34469,184 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E::@def::0
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant a @8
-            reference: <testLibraryFragment>::@enum::E::@def::0::@field::a
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::0
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E::@def::0
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant b @11
-            reference: <testLibraryFragment>::@enum::E::@def::0::@field::b
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::0
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E::@def::0
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@def::0::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::0
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: a @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@def::0::@getter::a
-                    staticType: E
-                  SimpleIdentifier
-                    token: b @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@def::0::@getter::b
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::0
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@enum::E::@def::0::@getter::a
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::0
-            returnType: E
-          synthetic static get b @-1
-            reference: <testLibraryFragment>::@enum::E::@def::0::@getter::b
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::0
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@def::0::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::0
-            returnType: List<E>
-      enum E @19
-        reference: <testLibraryFragment>::@enum::E::@def::1
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant c @22
-            reference: <testLibraryFragment>::@enum::E::@def::1::@field::c
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E::@def::0
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant d @25
-            reference: <testLibraryFragment>::@enum::E::@def::1::@field::d
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E::@def::0
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant e @28
-            reference: <testLibraryFragment>::@enum::E::@def::1::@field::e
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E::@def::0
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@def::1::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: c @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@def::1::@getter::c
-                    staticType: E
-                  SimpleIdentifier
-                    token: d @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@def::1::@getter::d
-                    staticType: E
-                  SimpleIdentifier
-                    token: e @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@def::1::@getter::e
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@def::1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-        accessors
-          synthetic static get c @-1
-            reference: <testLibraryFragment>::@enum::E::@def::1::@getter::c
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            returnType: E
-          synthetic static get d @-1
-            reference: <testLibraryFragment>::@enum::E::@def::1::@getter::d
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            returnType: E
-          synthetic static get e @-1
-            reference: <testLibraryFragment>::@enum::E::@def::1::@getter::e
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@def::1::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E::@def::1
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E::@def::0
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant a @8
+              reference: <testLibraryFragment>::@enum::E::@def::0::@field::a
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::0
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E::@def::0
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant b @11
+              reference: <testLibraryFragment>::@enum::E::@def::0::@field::b
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::0
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E::@def::0
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@def::0::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::0
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: a @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@def::0::@getter::a
+                      staticType: E
+                    SimpleIdentifier
+                      token: b @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@def::0::@getter::b
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::0
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@enum::E::@def::0::@getter::a
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::0
+              returnType: E
+            synthetic static get b @-1
+              reference: <testLibraryFragment>::@enum::E::@def::0::@getter::b
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::0
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@def::0::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::0
+              returnType: List<E>
+        enum E @19
+          reference: <testLibraryFragment>::@enum::E::@def::1
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant c @22
+              reference: <testLibraryFragment>::@enum::E::@def::1::@field::c
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E::@def::0
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant d @25
+              reference: <testLibraryFragment>::@enum::E::@def::1::@field::d
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E::@def::0
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant e @28
+              reference: <testLibraryFragment>::@enum::E::@def::1::@field::e
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E::@def::0
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@def::0::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@def::1::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: c @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@def::1::@getter::c
+                      staticType: E
+                    SimpleIdentifier
+                      token: d @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@def::1::@getter::d
+                      staticType: E
+                    SimpleIdentifier
+                      token: e @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@def::1::@getter::e
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@def::1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+          accessors
+            synthetic static get c @-1
+              reference: <testLibraryFragment>::@enum::E::@def::1::@getter::c
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              returnType: E
+            synthetic static get d @-1
+              reference: <testLibraryFragment>::@enum::E::@def::1::@getter::d
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              returnType: E
+            synthetic static get e @-1
+              reference: <testLibraryFragment>::@enum::E::@def::1::@getter::e
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@def::1::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E::@def::1
+              returnType: List<E>
 ''');
   }
 
@@ -34047,57 +34664,58 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    extensions
-      E @10
-        reference: <testLibraryFragment>::@extension::E::@def::0
-        enclosingElement: <testLibraryFragment>
-        extendedType: int
-      E @32
-        reference: <testLibraryFragment>::@extension::E::@def::1
-        enclosingElement: <testLibraryFragment>
-        extendedType: int
-        fields
-          static x @56
-            reference: <testLibraryFragment>::@extension::E::@def::1::@field::x
-            enclosingElement: <testLibraryFragment>::@extension::E::@def::1
-            type: dynamic
-        accessors
-          synthetic static get x @-1
-            reference: <testLibraryFragment>::@extension::E::@def::1::@getter::x
-            enclosingElement: <testLibraryFragment>::@extension::E::@def::1
-            returnType: dynamic
-          synthetic static set x= @-1
-            reference: <testLibraryFragment>::@extension::E::@def::1::@setter::x
-            enclosingElement: <testLibraryFragment>::@extension::E::@def::1
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
-      E @71
-        reference: <testLibraryFragment>::@extension::E::@def::2
-        enclosingElement: <testLibraryFragment>
-        extendedType: int
-        fields
-          static y @95
-            reference: <testLibraryFragment>::@extension::E::@def::2::@field::y
-            enclosingElement: <testLibraryFragment>::@extension::E::@def::2
-            type: int
-            shouldUseTypeForInitializerInference: false
-        accessors
-          synthetic static get y @-1
-            reference: <testLibraryFragment>::@extension::E::@def::2::@getter::y
-            enclosingElement: <testLibraryFragment>::@extension::E::@def::2
-            returnType: int
-          synthetic static set y= @-1
-            reference: <testLibraryFragment>::@extension::E::@def::2::@setter::y
-            enclosingElement: <testLibraryFragment>::@extension::E::@def::2
-            parameters
-              requiredPositional _y @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      extensions
+        E @10
+          reference: <testLibraryFragment>::@extension::E::@def::0
+          enclosingElement: <testLibraryFragment>
+          extendedType: int
+        E @32
+          reference: <testLibraryFragment>::@extension::E::@def::1
+          enclosingElement: <testLibraryFragment>
+          extendedType: int
+          fields
+            static x @56
+              reference: <testLibraryFragment>::@extension::E::@def::1::@field::x
+              enclosingElement: <testLibraryFragment>::@extension::E::@def::1
+              type: dynamic
+          accessors
+            synthetic static get x @-1
+              reference: <testLibraryFragment>::@extension::E::@def::1::@getter::x
+              enclosingElement: <testLibraryFragment>::@extension::E::@def::1
+              returnType: dynamic
+            synthetic static set x= @-1
+              reference: <testLibraryFragment>::@extension::E::@def::1::@setter::x
+              enclosingElement: <testLibraryFragment>::@extension::E::@def::1
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
+        E @71
+          reference: <testLibraryFragment>::@extension::E::@def::2
+          enclosingElement: <testLibraryFragment>
+          extendedType: int
+          fields
+            static y @95
+              reference: <testLibraryFragment>::@extension::E::@def::2::@field::y
+              enclosingElement: <testLibraryFragment>::@extension::E::@def::2
+              type: int
+              shouldUseTypeForInitializerInference: false
+          accessors
+            synthetic static get y @-1
+              reference: <testLibraryFragment>::@extension::E::@def::2::@getter::y
+              enclosingElement: <testLibraryFragment>::@extension::E::@def::2
+              returnType: int
+            synthetic static set y= @-1
+              reference: <testLibraryFragment>::@extension::E::@def::2::@setter::y
+              enclosingElement: <testLibraryFragment>::@extension::E::@def::2
+              parameters
+                requiredPositional _y @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -34110,58 +34728,59 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    extensionTypes
-      E @15
-        reference: <testLibraryFragment>::@extensionType::E::@def::0
-        enclosingElement: <testLibraryFragment>
-        representation: <testLibraryFragment>::@extensionType::E::@def::0::@field::it
-        primaryConstructor: <testLibraryFragment>::@extensionType::E::@def::0::@constructor::new
-        typeErasure: int
-        fields
-          final it @21
-            reference: <testLibraryFragment>::@extensionType::E::@def::0::@field::it
-            enclosingElement: <testLibraryFragment>::@extensionType::E::@def::0
-            type: int
-        constructors
-          @15
-            reference: <testLibraryFragment>::@extensionType::E::@def::0::@constructor::new
-            enclosingElement: <testLibraryFragment>::@extensionType::E::@def::0
-            parameters
-              requiredPositional final this.it @21
-                type: int
-                field: <testLibraryFragment>::@extensionType::E::@def::0::@field::it
-        accessors
-          synthetic get it @-1
-            reference: <testLibraryFragment>::@extensionType::E::@def::0::@getter::it
-            enclosingElement: <testLibraryFragment>::@extensionType::E::@def::0
-            returnType: int
-      E @43
-        reference: <testLibraryFragment>::@extensionType::E::@def::1
-        enclosingElement: <testLibraryFragment>
-        representation: <testLibraryFragment>::@extensionType::E::@def::1::@field::it
-        primaryConstructor: <testLibraryFragment>::@extensionType::E::@def::1::@constructor::new
-        typeErasure: double
-        fields
-          final it @52
-            reference: <testLibraryFragment>::@extensionType::E::@def::1::@field::it
-            enclosingElement: <testLibraryFragment>::@extensionType::E::@def::1
-            type: double
-        constructors
-          @43
-            reference: <testLibraryFragment>::@extensionType::E::@def::1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@extensionType::E::@def::1
-            parameters
-              requiredPositional final this.it @52
-                type: double
-                field: <testLibraryFragment>::@extensionType::E::@def::1::@field::it
-        accessors
-          synthetic get it @-1
-            reference: <testLibraryFragment>::@extensionType::E::@def::1::@getter::it
-            enclosingElement: <testLibraryFragment>::@extensionType::E::@def::1
-            returnType: double
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      extensionTypes
+        E @15
+          reference: <testLibraryFragment>::@extensionType::E::@def::0
+          enclosingElement: <testLibraryFragment>
+          representation: <testLibraryFragment>::@extensionType::E::@def::0::@field::it
+          primaryConstructor: <testLibraryFragment>::@extensionType::E::@def::0::@constructor::new
+          typeErasure: int
+          fields
+            final it @21
+              reference: <testLibraryFragment>::@extensionType::E::@def::0::@field::it
+              enclosingElement: <testLibraryFragment>::@extensionType::E::@def::0
+              type: int
+          constructors
+            @15
+              reference: <testLibraryFragment>::@extensionType::E::@def::0::@constructor::new
+              enclosingElement: <testLibraryFragment>::@extensionType::E::@def::0
+              parameters
+                requiredPositional final this.it @21
+                  type: int
+                  field: <testLibraryFragment>::@extensionType::E::@def::0::@field::it
+          accessors
+            synthetic get it @-1
+              reference: <testLibraryFragment>::@extensionType::E::@def::0::@getter::it
+              enclosingElement: <testLibraryFragment>::@extensionType::E::@def::0
+              returnType: int
+        E @43
+          reference: <testLibraryFragment>::@extensionType::E::@def::1
+          enclosingElement: <testLibraryFragment>
+          representation: <testLibraryFragment>::@extensionType::E::@def::1::@field::it
+          primaryConstructor: <testLibraryFragment>::@extensionType::E::@def::1::@constructor::new
+          typeErasure: double
+          fields
+            final it @52
+              reference: <testLibraryFragment>::@extensionType::E::@def::1::@field::it
+              enclosingElement: <testLibraryFragment>::@extensionType::E::@def::1
+              type: double
+          constructors
+            @43
+              reference: <testLibraryFragment>::@extensionType::E::@def::1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@extensionType::E::@def::1
+              parameters
+                requiredPositional final this.it @52
+                  type: double
+                  field: <testLibraryFragment>::@extensionType::E::@def::1::@field::it
+          accessors
+            synthetic get it @-1
+              reference: <testLibraryFragment>::@extensionType::E::@def::1::@getter::it
+              enclosingElement: <testLibraryFragment>::@extensionType::E::@def::1
+              returnType: double
 ''');
   }
 
@@ -34175,30 +34794,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f::@def::0
-        enclosingElement: <testLibraryFragment>
-        returnType: void
-      f @17
-        reference: <testLibraryFragment>::@function::f::@def::1
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional a @23
-            type: int
-        returnType: void
-      f @34
-        reference: <testLibraryFragment>::@function::f::@def::2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalPositional default b @41
-            type: int
-          optionalPositional default c @51
-            type: double
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f::@def::0
+          enclosingElement: <testLibraryFragment>
+          returnType: void
+        f @17
+          reference: <testLibraryFragment>::@function::f::@def::1
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional a @23
+              type: int
+          returnType: void
+        f @34
+          reference: <testLibraryFragment>::@function::f::@def::2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalPositional default b @41
+              type: int
+            optionalPositional default c @51
+              type: double
+          returnType: void
 ''');
   }
 
@@ -34210,21 +34830,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default a @12
-            reference: <testLibraryFragment>::@function::f::@parameter::a::@def::0
-            type: int
-          optionalNamed default a @22
-            reference: <testLibraryFragment>::@function::f::@parameter::a::@def::1
-            type: double
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default a @12
+              reference: <testLibraryFragment>::@function::f::@parameter::a::@def::0
+              type: int
+            optionalNamed default a @22
+              reference: <testLibraryFragment>::@function::f::@parameter::a::@def::1
+              type: double
+          returnType: void
 ''');
   }
 
@@ -34238,33 +34859,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @13
-        reference: <testLibraryFragment>::@typeAlias::F::@def::0
-        aliasedType: void Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: void
-      functionTypeAliasBased F @31
-        reference: <testLibraryFragment>::@typeAlias::F::@def::1
-        aliasedType: void Function(int)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @37
-              type: int
-          returnType: void
-      functionTypeAliasBased F @54
-        reference: <testLibraryFragment>::@typeAlias::F::@def::2
-        aliasedType: void Function([int, double])
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            optionalPositional b @61
-              type: int
-            optionalPositional c @71
-              type: double
-          returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @13
+          reference: <testLibraryFragment>::@typeAlias::F::@def::0
+          aliasedType: void Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: void
+        functionTypeAliasBased F @31
+          reference: <testLibraryFragment>::@typeAlias::F::@def::1
+          aliasedType: void Function(int)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @37
+                type: int
+            returnType: void
+        functionTypeAliasBased F @54
+          reference: <testLibraryFragment>::@typeAlias::F::@def::2
+          aliasedType: void Function([int, double])
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              optionalPositional b @61
+                type: int
+              optionalPositional c @71
+                type: double
+            returnType: void
 ''');
   }
 
@@ -34282,60 +34904,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    mixins
-      mixin A @6
-        reference: <testLibraryFragment>::@mixin::A::@def::0
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-      mixin A @17
-        reference: <testLibraryFragment>::@mixin::A::@def::1
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-        fields
-          x @27
-            reference: <testLibraryFragment>::@mixin::A::@def::1::@field::x
-            enclosingElement: <testLibraryFragment>::@mixin::A::@def::1
-            type: dynamic
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@mixin::A::@def::1::@getter::x
-            enclosingElement: <testLibraryFragment>::@mixin::A::@def::1
-            returnType: dynamic
-          synthetic set x= @-1
-            reference: <testLibraryFragment>::@mixin::A::@def::1::@setter::x
-            enclosingElement: <testLibraryFragment>::@mixin::A::@def::1
-            parameters
-              requiredPositional _x @-1
-                type: dynamic
-            returnType: void
-      mixin A @38
-        reference: <testLibraryFragment>::@mixin::A::@def::2
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
-        fields
-          y @48
-            reference: <testLibraryFragment>::@mixin::A::@def::2::@field::y
-            enclosingElement: <testLibraryFragment>::@mixin::A::@def::2
-            type: int
-            shouldUseTypeForInitializerInference: false
-        accessors
-          synthetic get y @-1
-            reference: <testLibraryFragment>::@mixin::A::@def::2::@getter::y
-            enclosingElement: <testLibraryFragment>::@mixin::A::@def::2
-            returnType: int
-          synthetic set y= @-1
-            reference: <testLibraryFragment>::@mixin::A::@def::2::@setter::y
-            enclosingElement: <testLibraryFragment>::@mixin::A::@def::2
-            parameters
-              requiredPositional _y @-1
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      mixins
+        mixin A @6
+          reference: <testLibraryFragment>::@mixin::A::@def::0
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+        mixin A @17
+          reference: <testLibraryFragment>::@mixin::A::@def::1
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+          fields
+            x @27
+              reference: <testLibraryFragment>::@mixin::A::@def::1::@field::x
+              enclosingElement: <testLibraryFragment>::@mixin::A::@def::1
+              type: dynamic
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@mixin::A::@def::1::@getter::x
+              enclosingElement: <testLibraryFragment>::@mixin::A::@def::1
+              returnType: dynamic
+            synthetic set x= @-1
+              reference: <testLibraryFragment>::@mixin::A::@def::1::@setter::x
+              enclosingElement: <testLibraryFragment>::@mixin::A::@def::1
+              parameters
+                requiredPositional _x @-1
+                  type: dynamic
+              returnType: void
+        mixin A @38
+          reference: <testLibraryFragment>::@mixin::A::@def::2
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
+          fields
+            y @48
+              reference: <testLibraryFragment>::@mixin::A::@def::2::@field::y
+              enclosingElement: <testLibraryFragment>::@mixin::A::@def::2
+              type: int
+              shouldUseTypeForInitializerInference: false
+          accessors
+            synthetic get y @-1
+              reference: <testLibraryFragment>::@mixin::A::@def::2::@getter::y
+              enclosingElement: <testLibraryFragment>::@mixin::A::@def::2
+              returnType: int
+            synthetic set y= @-1
+              reference: <testLibraryFragment>::@mixin::A::@def::2::@setter::y
+              enclosingElement: <testLibraryFragment>::@mixin::A::@def::2
+              parameters
+                requiredPositional _y @-1
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -34350,91 +34973,92 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static x @5
-        reference: <testLibraryFragment>::@topLevelVariable::x::@def::0
-        enclosingElement: <testLibraryFragment>
-        type: bool
-        id: variable_0
-        getter: getter_0
-        setter: setter_0
-      static x @12
-        reference: <testLibraryFragment>::@topLevelVariable::x::@def::1
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-        id: variable_1
-        getter: getter_1
-        setter: setter_1
-      static final x @21
-        reference: <testLibraryFragment>::@topLevelVariable::x::@def::2
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-        id: variable_2
-        getter: getter_2
-      static x @32
-        reference: <testLibraryFragment>::@topLevelVariable::x::@def::3
-        enclosingElement: <testLibraryFragment>
-        type: double
-        shouldUseTypeForInitializerInference: false
-        id: variable_3
-        getter: getter_3
-        setter: setter_2
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x::@def::0
-        enclosingElement: <testLibraryFragment>
-        returnType: bool
-        id: getter_0
-        variable: variable_0
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x::@def::0
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: bool
-        returnType: void
-        id: setter_0
-        variable: variable_0
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x::@def::1
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-        id: getter_1
-        variable: variable_1
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x::@def::1
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: dynamic
-        returnType: void
-        id: setter_1
-        variable: variable_1
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x::@def::2
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-        id: getter_2
-        variable: variable_2
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x::@def::3
-        enclosingElement: <testLibraryFragment>
-        returnType: double
-        id: getter_3
-        variable: variable_3
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x::@def::2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: double
-        returnType: void
-        id: setter_2
-        variable: variable_3
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static x @5
+          reference: <testLibraryFragment>::@topLevelVariable::x::@def::0
+          enclosingElement: <testLibraryFragment>
+          type: bool
+          id: variable_0
+          getter: getter_0
+          setter: setter_0
+        static x @12
+          reference: <testLibraryFragment>::@topLevelVariable::x::@def::1
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+          id: variable_1
+          getter: getter_1
+          setter: setter_1
+        static final x @21
+          reference: <testLibraryFragment>::@topLevelVariable::x::@def::2
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+          id: variable_2
+          getter: getter_2
+        static x @32
+          reference: <testLibraryFragment>::@topLevelVariable::x::@def::3
+          enclosingElement: <testLibraryFragment>
+          type: double
+          shouldUseTypeForInitializerInference: false
+          id: variable_3
+          getter: getter_3
+          setter: setter_2
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x::@def::0
+          enclosingElement: <testLibraryFragment>
+          returnType: bool
+          id: getter_0
+          variable: variable_0
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x::@def::0
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: bool
+          returnType: void
+          id: setter_0
+          variable: variable_0
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x::@def::1
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+          id: getter_1
+          variable: variable_1
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x::@def::1
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: dynamic
+          returnType: void
+          id: setter_1
+          variable: variable_1
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x::@def::2
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+          id: getter_2
+          variable: variable_2
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x::@def::3
+          enclosingElement: <testLibraryFragment>
+          returnType: double
+          id: getter_3
+          variable: variable_3
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x::@def::2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: double
+          returnType: void
+          id: setter_2
+          variable: variable_3
 ''');
   }
 
@@ -34447,29 +35071,30 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static foo @-1
-        reference: <testLibraryFragment>::@topLevelVariable::foo
-        enclosingElement: <testLibraryFragment>
-        type: double
-        id: variable_0
-        getter: getter_0
-    accessors
-      static get foo @8
-        reference: <testLibraryFragment>::@getter::foo::@def::0
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-        id: getter_1
-        variable: variable_0
-      static get foo @26
-        reference: <testLibraryFragment>::@getter::foo::@def::1
-        enclosingElement: <testLibraryFragment>
-        returnType: double
-        id: getter_0
-        variable: variable_0
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static foo @-1
+          reference: <testLibraryFragment>::@topLevelVariable::foo
+          enclosingElement: <testLibraryFragment>
+          type: double
+          id: variable_0
+          getter: getter_0
+      accessors
+        static get foo @8
+          reference: <testLibraryFragment>::@getter::foo::@def::0
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+          id: getter_1
+          variable: variable_0
+        static get foo @26
+          reference: <testLibraryFragment>::@getter::foo::@def::1
+          enclosingElement: <testLibraryFragment>
+          returnType: double
+          id: getter_0
+          variable: variable_0
 ''');
   }
 
@@ -34482,35 +35107,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static foo @-1
-        reference: <testLibraryFragment>::@topLevelVariable::foo
-        enclosingElement: <testLibraryFragment>
-        type: double
-        id: variable_0
-        setter: setter_0
-    accessors
-      static set foo= @4
-        reference: <testLibraryFragment>::@setter::foo::@def::0
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _ @12
-            type: int
-        returnType: void
-        id: setter_1
-        variable: variable_0
-      static set foo= @22
-        reference: <testLibraryFragment>::@setter::foo::@def::1
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _ @33
-            type: double
-        returnType: void
-        id: setter_0
-        variable: variable_0
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static foo @-1
+          reference: <testLibraryFragment>::@topLevelVariable::foo
+          enclosingElement: <testLibraryFragment>
+          type: double
+          id: variable_0
+          setter: setter_0
+      accessors
+        static set foo= @4
+          reference: <testLibraryFragment>::@setter::foo::@def::0
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _ @12
+              type: int
+          returnType: void
+          id: setter_1
+          variable: variable_0
+        static set foo= @22
+          reference: <testLibraryFragment>::@setter::foo::@def::1
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _ @33
+              type: double
+          returnType: void
+          id: setter_0
+          variable: variable_0
 ''');
   }
 
@@ -34524,101 +35150,102 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          static const enumConstant int @14
-            reference: <testLibraryFragment>::@enum::E::@field::int
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<int>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<int>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {T: int}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    IntegerLiteral
-                      literal: 1 @18
-                      staticType: int
-                  rightParenthesis: ) @0
-                staticType: E<int>
-          static const enumConstant string @22
-            reference: <testLibraryFragment>::@enum::E::@field::string
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<String>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<String>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {T: String}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    SimpleStringLiteral
-                      literal: '2' @29
-                  rightParenthesis: ) @0
-                staticType: E<String>
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: int @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::int
-                    staticType: E<int>
-                  SimpleIdentifier
-                    token: string @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::string
-                    staticType: E<String>
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          const @43
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional a @47
-                type: T
-        accessors
-          synthetic static get int @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::int
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<int>
-          synthetic static get string @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::string
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<String>
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            static const enumConstant int @14
+              reference: <testLibraryFragment>::@enum::E::@field::int
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<int>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<int>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {T: int}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      IntegerLiteral
+                        literal: 1 @18
+                        staticType: int
+                    rightParenthesis: ) @0
+                  staticType: E<int>
+            static const enumConstant string @22
+              reference: <testLibraryFragment>::@enum::E::@field::string
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<String>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<String>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {T: String}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      SimpleStringLiteral
+                        literal: '2' @29
+                    rightParenthesis: ) @0
+                  staticType: E<String>
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: int @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::int
+                      staticType: E<int>
+                    SimpleIdentifier
+                      token: string @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::string
+                      staticType: E<String>
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            const @43
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional a @47
+                  type: T
+          accessors
+            synthetic static get int @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::int
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<int>
+            synthetic static get string @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::string
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<String>
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -34632,59 +35259,60 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant _name @11
-            reference: <testLibraryFragment>::@enum::E::@field::_name
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: _name @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::_name
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get _name @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::_name
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant _name @11
+              reference: <testLibraryFragment>::@enum::E::@field::_name
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: _name @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::_name
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get _name @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::_name
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -34698,79 +35326,80 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          static const enumConstant v @14
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<double>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    typeArguments: TypeArgumentList
-                      leftBracket: < @15
-                      arguments
-                        NamedType
-                          name: double @16
-                          element: dart:core::<fragment>::@class::double
-                          type: double
-                      rightBracket: > @22
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<double>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {T: double}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    IntegerLiteral
-                      literal: 42 @24
-                      staticType: double
-                  rightParenthesis: ) @0
-                staticType: E<double>
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E<double>
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          const @37
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional a @41
-                type: T
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<double>
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            static const enumConstant v @14
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<double>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      typeArguments: TypeArgumentList
+                        leftBracket: < @15
+                        arguments
+                          NamedType
+                            name: double @16
+                            element: dart:core::<fragment>::@class::double
+                            type: double
+                        rightBracket: > @22
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<double>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {T: double}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      IntegerLiteral
+                        literal: 42 @24
+                        staticType: double
+                    rightParenthesis: ) @0
+                  staticType: E<double>
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E<double>
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            const @37
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional a @41
+                  type: T
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<double>
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -34783,59 +35412,60 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant _ @11
-            reference: <testLibraryFragment>::@enum::E::@field::_
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: _ @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::_
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get _ @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::_
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant _ @11
+              reference: <testLibraryFragment>::@enum::E::@field::_
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: _ @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::_
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get _ @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::_
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -34849,64 +35479,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          factory named @26
-            reference: <testLibraryFragment>::@enum::E::@constructor::named
-            enclosingElement: <testLibraryFragment>::@enum::E
-            periodOffset: 25
-            nameEnd: 31
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            factory named @26
+              reference: <testLibraryFragment>::@enum::E::@constructor::named
+              enclosingElement: <testLibraryFragment>::@enum::E
+              periodOffset: 25
+              nameEnd: 31
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -34920,59 +35551,60 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          factory @24
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            factory @24
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -34987,74 +35619,75 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          final x @22
-            reference: <testLibraryFragment>::@enum::E::@field::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: dynamic
-        constructors
-          const @33
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional final this.x @44
-                type: int Function(double)
-                parameters
-                  requiredPositional a @53
-                    type: double
-                field: <testLibraryFragment>::@enum::E::@field::x
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            final x @22
+              reference: <testLibraryFragment>::@enum::E::@field::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: dynamic
+          constructors
+            const @33
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional final this.x @44
+                  type: int Function(double)
+                  parameters
+                    requiredPositional a @53
+                      type: double
+                  field: <testLibraryFragment>::@enum::E::@field::x
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: dynamic
 ''');
   }
 
@@ -35071,79 +35704,80 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          final x @26
-            reference: <testLibraryFragment>::@enum::E::@field::x::@def::0
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: int
-          final x @44
-            reference: <testLibraryFragment>::@enum::E::@field::x::@def::1
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: String
-        constructors
-          const @55
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional final this.x @62
-                type: int
-                field: <testLibraryFragment>::@enum::E::@field::x::@def::0
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x::@def::0
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: int
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x::@def::1
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: String
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            final x @26
+              reference: <testLibraryFragment>::@enum::E::@field::x::@def::0
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: int
+            final x @44
+              reference: <testLibraryFragment>::@enum::E::@field::x::@def::1
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: String
+          constructors
+            const @55
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional final this.x @62
+                  type: int
+                  field: <testLibraryFragment>::@enum::E::@field::x::@def::0
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x::@def::0
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: int
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x::@def::1
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: String
 ''');
   }
 
@@ -35157,63 +35791,64 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          const @22
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional final this.x @29
-                type: dynamic
-                field: <null>
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            const @22
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional final this.x @29
+                  type: dynamic
+                  field: <null>
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -35228,84 +35863,85 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          final x @26
-            reference: <testLibraryFragment>::@enum::E::@field::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: int
-        constructors
-          const @37
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              optionalNamed default final this.x @45
-                reference: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x
-                type: int
-                constantInitializer
-                  BinaryExpression
-                    leftOperand: IntegerLiteral
-                      literal: 1 @49
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            final x @26
+              reference: <testLibraryFragment>::@enum::E::@field::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: int
+          constructors
+            const @37
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                optionalNamed default final this.x @45
+                  reference: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::x
+                  type: int
+                  constantInitializer
+                    BinaryExpression
+                      leftOperand: IntegerLiteral
+                        literal: 1 @49
+                        staticType: int
+                      operator: + @51
+                      rightOperand: IntegerLiteral
+                        literal: 2 @53
+                        staticType: int
+                      staticElement: dart:core::<fragment>::@class::num::@method::+
+                      staticInvokeType: num Function(num)
                       staticType: int
-                    operator: + @51
-                    rightOperand: IntegerLiteral
-                      literal: 2 @53
-                      staticType: int
-                    staticElement: dart:core::<fragment>::@class::num::@method::+
-                    staticInvokeType: num Function(num)
-                    staticType: int
-                field: <testLibraryFragment>::@enum::E::@field::x
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: int
+                  field: <testLibraryFragment>::@enum::E::@field::x
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: int
 ''');
   }
 
@@ -35320,71 +35956,72 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          final x @26
-            reference: <testLibraryFragment>::@enum::E::@field::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: num
-        constructors
-          const @37
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional final this.x @48
-                type: int
-                field: <testLibraryFragment>::@enum::E::@field::x
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: num
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            final x @26
+              reference: <testLibraryFragment>::@enum::E::@field::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: num
+          constructors
+            const @37
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional final this.x @48
+                  type: int
+                  field: <testLibraryFragment>::@enum::E::@field::x
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: num
 ''');
   }
 
@@ -35399,71 +36036,72 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          final x @22
-            reference: <testLibraryFragment>::@enum::E::@field::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: dynamic
-        constructors
-          @27
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional final this.x @38
-                type: int
-                field: <testLibraryFragment>::@enum::E::@field::x
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            final x @22
+              reference: <testLibraryFragment>::@enum::E::@field::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: dynamic
+          constructors
+            @27
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional final this.x @38
+                  type: int
+                  field: <testLibraryFragment>::@enum::E::@field::x
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: dynamic
 ''');
   }
 
@@ -35478,71 +36116,72 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          final x @22
-            reference: <testLibraryFragment>::@enum::E::@field::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: dynamic
-        constructors
-          @27
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional final this.x @34
-                type: dynamic
-                field: <testLibraryFragment>::@enum::E::@field::x
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            final x @22
+              reference: <testLibraryFragment>::@enum::E::@field::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: dynamic
+          constructors
+            @27
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional final this.x @34
+                  type: dynamic
+                  field: <testLibraryFragment>::@enum::E::@field::x
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: dynamic
 ''');
   }
 
@@ -35556,73 +36195,74 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  period: . @0
-                  name: SimpleIdentifier
-                    token: named @-1
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    period: . @0
+                    name: SimpleIdentifier
+                      token: named @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@constructor::named
+                      staticType: null
                     staticElement: <testLibraryFragment>::@enum::E::@constructor::named
-                    staticType: null
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::named
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    IntegerLiteral
-                      literal: 42 @19
-                      staticType: int
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          const named @34
-            reference: <testLibraryFragment>::@enum::E::@constructor::named
-            enclosingElement: <testLibraryFragment>::@enum::E
-            periodOffset: 33
-            nameEnd: 39
-            parameters
-              requiredPositional a @44
-                type: int
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      IntegerLiteral
+                        literal: 42 @19
+                        staticType: int
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            const named @34
+              reference: <testLibraryFragment>::@enum::E::@constructor::named
+              enclosingElement: <testLibraryFragment>::@enum::E
+              periodOffset: 33
+              nameEnd: 39
+              parameters
+                requiredPositional a @44
+                  type: int
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -35636,66 +36276,67 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  arguments
-                    IntegerLiteral
-                      literal: 42 @13
-                      staticType: int
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          const @26
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional a @32
-                type: int
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    arguments
+                      IntegerLiteral
+                        literal: 42 @13
+                        staticType: int
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            const @26
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional a @32
+                  type: int
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -35710,100 +36351,101 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          static const enumConstant v @14
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<dynamic>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<dynamic>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {T: dynamic}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E<dynamic>
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E<dynamic>
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-          final x @29
-            reference: <testLibraryFragment>::@enum::E::@field::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: int
-        constructors
-          const @40
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional a @45
-                type: T?
-            constantInitializers
-              AssertInitializer
-                assertKeyword: assert @50
-                leftParenthesis: ( @56
-                condition: IsExpression
-                  expression: SimpleIdentifier
-                    token: a @57
-                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a
-                    staticType: T?
-                  isOperator: is @59
-                  type: NamedType
-                    name: T @62
-                    element: T@7
-                    type: T
-                  staticType: bool
-                rightParenthesis: ) @63
-              ConstructorFieldInitializer
-                fieldName: SimpleIdentifier
-                  token: x @66
-                  staticElement: <testLibraryFragment>::@enum::E::@field::x
-                  staticType: null
-                equals: = @68
-                expression: IntegerLiteral
-                  literal: 0 @70
-                  staticType: int
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<dynamic>
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            static const enumConstant v @14
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<dynamic>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<dynamic>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {T: dynamic}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E<dynamic>
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E<dynamic>
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+            final x @29
+              reference: <testLibraryFragment>::@enum::E::@field::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: int
+          constructors
+            const @40
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional a @45
+                  type: T?
+              constantInitializers
+                AssertInitializer
+                  assertKeyword: assert @50
+                  leftParenthesis: ( @56
+                  condition: IsExpression
+                    expression: SimpleIdentifier
+                      token: a @57
+                      staticElement: <testLibraryFragment>::@enum::E::@constructor::new::@parameter::a
+                      staticType: T?
+                    isOperator: is @59
+                    type: NamedType
+                      name: T @62
+                      element: T@7
+                      type: T
+                    staticType: bool
+                  rightParenthesis: ) @63
+                ConstructorFieldInitializer
+                  fieldName: SimpleIdentifier
+                    token: x @66
+                    staticElement: <testLibraryFragment>::@enum::E::@field::x
+                    staticType: null
+                  equals: = @68
+                  expression: IntegerLiteral
+                    literal: 0 @70
+                    staticType: int
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<dynamic>
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: int
 ''');
   }
 
@@ -35817,60 +36459,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @65
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        supertype: Enum
-        fields
-          static const enumConstant v @69
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @65
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          supertype: Enum
+          fields
+            static const enumConstant v @69
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -35884,72 +36527,73 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          final foo @22
-            reference: <testLibraryFragment>::@enum::E::@field::foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 42 @28
-                staticType: int
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          synthetic get foo @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            final foo @22
+              reference: <testLibraryFragment>::@enum::E::@field::foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                IntegerLiteral
+                  literal: 42 @28
+                  staticType: int
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            synthetic get foo @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: int
 ''');
   }
 
@@ -35968,19 +36612,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          final promotable _foo @33
-            reference: <testLibraryFragment>::@enum::E::@field::_foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: int?
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            final promotable _foo @33
+              reference: <testLibraryFragment>::@enum::E::@field::_foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: int?
 ''');
   }
 
@@ -35994,67 +36639,68 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @10
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@enum::E::@field::foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: int
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          get foo @23
-            reference: <testLibraryFragment>::@enum::E::@getter::foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @10
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@enum::E::@field::foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: int
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            get foo @23
+              reference: <testLibraryFragment>::@enum::E::@getter::foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: int
 ''');
   }
 
@@ -36068,69 +36714,70 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class I @6
-        reference: <testLibraryFragment>::@class::I
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::I::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::I
-    enums
-      enum E @16
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        interfaces
-          I
-        fields
-          static const enumConstant v @35
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class I @6
+          reference: <testLibraryFragment>::@class::I
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::I::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::I
+      enums
+        enum E @16
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          interfaces
+            I
+          fields
+            static const enumConstant v @35
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -36147,60 +36794,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-      class C @45
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-    enums
-      enum E @55
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        interfaces
-          A
-          C
-        fields
-          static const enumConstant v @78
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    extensionTypes
-      B @26
-        reference: <testLibraryFragment>::@extensionType::B
-        enclosingElement: <testLibraryFragment>
-        representation: <testLibraryFragment>::@extensionType::B::@field::it
-        primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
-        typeErasure: int
-        fields
-          final it @32
-            reference: <testLibraryFragment>::@extensionType::B::@field::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            type: int
-        accessors
-          synthetic get it @-1
-            reference: <testLibraryFragment>::@extensionType::B::@getter::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+        class C @45
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+      enums
+        enum E @55
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          interfaces
+            A
+            C
+          fields
+            static const enumConstant v @78
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      extensionTypes
+        B @26
+          reference: <testLibraryFragment>::@extensionType::B
+          enclosingElement: <testLibraryFragment>
+          representation: <testLibraryFragment>::@extensionType::B::@field::it
+          primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
+          typeErasure: int
+          fields
+            final it @32
+              reference: <testLibraryFragment>::@extensionType::B::@field::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              type: int
+          accessors
+            synthetic get it @-1
+              reference: <testLibraryFragment>::@extensionType::B::@getter::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              returnType: int
 ''');
   }
 
@@ -36214,77 +36862,78 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class I @6
-        reference: <testLibraryFragment>::@class::I
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::I::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::I
-    enums
-      enum E @19
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @21
-            defaultType: dynamic
-        supertype: Enum
-        interfaces
-          I<U>
-        fields
-          static const enumConstant v @44
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<dynamic>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<dynamic>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {U: dynamic}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E<dynamic>
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E<dynamic>
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<dynamic>
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class I @6
+          reference: <testLibraryFragment>::@class::I
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::I::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::I
+      enums
+        enum E @19
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @21
+              defaultType: dynamic
+          supertype: Enum
+          interfaces
+            I<U>
+          fields
+            static const enumConstant v @44
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<dynamic>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<dynamic>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {U: dynamic}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E<dynamic>
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E<dynamic>
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<dynamic>
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -36299,77 +36948,78 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class X @6
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
-      class Z @17
-        reference: <testLibraryFragment>::@class::Z
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::Z::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::Z
-    enums
-      enum E @27
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        interfaces
-          X
-          Z
-        fields
-          static const enumConstant v @52
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class X @6
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+        class Z @17
+          reference: <testLibraryFragment>::@class::Z
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::Z::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::Z
+      enums
+        enum E @27
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          interfaces
+            X
+            Z
+          fields
+            static const enumConstant v @52
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -36383,77 +37033,78 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          static const enumConstant v @14
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<dynamic>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<dynamic>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {T: dynamic}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E<dynamic>
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E<dynamic>
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<dynamic>
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
-        methods
-          foo @23
-            reference: <testLibraryFragment>::@enum::E::@method::foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            typeParameters
-              covariant U @27
-                defaultType: dynamic
-            parameters
-              requiredPositional t @32
-                type: T
-              requiredPositional u @37
-                type: U
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            static const enumConstant v @14
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<dynamic>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<dynamic>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {T: dynamic}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E<dynamic>
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E<dynamic>
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<dynamic>
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
+          methods
+            foo @23
+              reference: <testLibraryFragment>::@enum::E::@method::foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              typeParameters
+                covariant U @27
+                  defaultType: dynamic
+              parameters
+                requiredPositional t @32
+                  type: T
+                requiredPositional u @37
+                  type: U
+              returnType: int
 ''');
   }
 
@@ -36467,64 +37118,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @11
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-        methods
-          toString @23
-            reference: <testLibraryFragment>::@enum::E::@method::toString
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: String
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @11
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+          methods
+            toString @23
+              reference: <testLibraryFragment>::@enum::E::@method::toString
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: String
 ''');
   }
 
@@ -36538,67 +37190,68 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @16
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        mixins
-          M
-        fields
-          static const enumConstant v @29
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    mixins
-      mixin M @6
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @16
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          mixins
+            M
+          fields
+            static const enumConstant v @29
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      mixins
+        mixin M @6
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -36615,60 +37268,61 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-      class C @45
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-    enums
-      enum E @55
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        mixins
-          A
-          C
-        fields
-          static const enumConstant v @72
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    extensionTypes
-      B @26
-        reference: <testLibraryFragment>::@extensionType::B
-        enclosingElement: <testLibraryFragment>
-        representation: <testLibraryFragment>::@extensionType::B::@field::it
-        primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
-        typeErasure: int
-        fields
-          final it @32
-            reference: <testLibraryFragment>::@extensionType::B::@field::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            type: int
-        accessors
-          synthetic get it @-1
-            reference: <testLibraryFragment>::@extensionType::B::@getter::it
-            enclosingElement: <testLibraryFragment>::@extensionType::B
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+        class C @45
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+      enums
+        enum E @55
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          mixins
+            A
+            C
+          fields
+            static const enumConstant v @72
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      extensionTypes
+        B @26
+          reference: <testLibraryFragment>::@extensionType::B
+          enclosingElement: <testLibraryFragment>
+          representation: <testLibraryFragment>::@extensionType::B::@field::it
+          primaryConstructor: <testLibraryFragment>::@extensionType::B::@constructor::new
+          typeErasure: int
+          fields
+            final it @32
+              reference: <testLibraryFragment>::@extensionType::B::@field::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              type: int
+          accessors
+            synthetic get it @-1
+              reference: <testLibraryFragment>::@extensionType::B::@getter::it
+              enclosingElement: <testLibraryFragment>::@extensionType::B
+              returnType: int
 ''');
   }
 
@@ -36683,79 +37337,80 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @44
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        mixins
-          M1<int>
-          M2<int>
-        fields
-          static const enumConstant v @67
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    mixins
-      mixin M1 @6
-        reference: <testLibraryFragment>::@mixin::M1
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @9
-            defaultType: dynamic
-        superclassConstraints
-          Object
-      mixin M2 @21
-        reference: <testLibraryFragment>::@mixin::M2
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @24
-            defaultType: dynamic
-        superclassConstraints
-          M1<T>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @44
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          mixins
+            M1<int>
+            M2<int>
+          fields
+            static const enumConstant v @67
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      mixins
+        mixin M1 @6
+          reference: <testLibraryFragment>::@mixin::M1
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @9
+              defaultType: dynamic
+          superclassConstraints
+            Object
+        mixin M2 @21
+          reference: <testLibraryFragment>::@mixin::M2
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @24
+              defaultType: dynamic
+          superclassConstraints
+            M1<T>
 ''');
   }
 
@@ -36769,70 +37424,71 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v @10
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-          synthetic foo @-1
-            reference: <testLibraryFragment>::@enum::E::@field::foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: int
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-          set foo= @19
-            reference: <testLibraryFragment>::@enum::E::@setter::foo
-            enclosingElement: <testLibraryFragment>::@enum::E
-            parameters
-              requiredPositional _ @27
-                type: int
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v @10
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+            synthetic foo @-1
+              reference: <testLibraryFragment>::@enum::E::@field::foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: int
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+            set foo= @19
+              reference: <testLibraryFragment>::@enum::E::@setter::foo
+              enclosingElement: <testLibraryFragment>::@enum::E
+              parameters
+                requiredPositional _ @27
+                  type: int
+              returnType: void
 ''');
   }
 
@@ -36845,64 +37501,65 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          static const enumConstant v @14
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<dynamic>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<dynamic>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {T: dynamic}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E<dynamic>
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E<dynamic>
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<dynamic>
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            static const enumConstant v @14
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<dynamic>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<dynamic>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {T: dynamic}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E<dynamic>
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E<dynamic>
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<dynamic>
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -36915,68 +37572,69 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      notSimplyBounded enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            bound: num
-            defaultType: num
-          covariant U @22
-            bound: T
-            defaultType: num
-        supertype: Enum
-        fields
-          static const enumConstant v @39
-            reference: <testLibraryFragment>::@enum::E::@field::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E<num, num>
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E<num, num>
-                  staticElement: ConstructorMember
-                    base: <testLibraryFragment>::@enum::E::@constructor::new
-                    substitution: {T: num, U: num}
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E<num, num>
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<num, num>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v
-                    staticType: E<num, num>
-                rightBracket: ] @0
-                staticType: List<E<num, num>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E<num, num>
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<num, num>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        notSimplyBounded enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              bound: num
+              defaultType: num
+            covariant U @22
+              bound: T
+              defaultType: num
+          supertype: Enum
+          fields
+            static const enumConstant v @39
+              reference: <testLibraryFragment>::@enum::E::@field::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E<num, num>
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E<num, num>
+                    staticElement: ConstructorMember
+                      base: <testLibraryFragment>::@enum::E::@constructor::new
+                      substitution: {T: num, U: num}
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E<num, num>
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<num, num>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v
+                      staticType: E<num, num>
+                  rightBracket: ] @0
+                  staticType: List<E<num, num>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E<num, num>
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<num, num>>
 ''');
   }
 
@@ -36987,37 +37645,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      notSimplyBounded enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            bound: dynamic
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        notSimplyBounded enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              bound: dynamic
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -37028,43 +37687,44 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      notSimplyBounded enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            bound: dynamic
-            defaultType: dynamic
-          covariant U @20
-            bound: num
-            defaultType: num
-          covariant V @35
-            bound: dynamic
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic, num, dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                rightBracket: ] @0
-                staticType: List<E<dynamic, num, dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic, num, dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        notSimplyBounded enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              bound: dynamic
+              defaultType: dynamic
+            covariant U @20
+              bound: num
+              defaultType: num
+            covariant V @35
+              bound: dynamic
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic, num, dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic, num, dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic, num, dynamic>>
 ''');
   }
 
@@ -37075,37 +37735,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      notSimplyBounded enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            bound: void Function(E<dynamic>)
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        notSimplyBounded enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              bound: void Function(E<dynamic>)
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -37116,36 +37777,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          contravariant T @10
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            contravariant T @10
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -37156,36 +37818,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @11
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @11
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -37196,36 +37859,37 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          invariant T @13
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                rightBracket: ] @0
-                staticType: List<E<dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            invariant T @13
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic>>
 ''');
   }
 
@@ -37236,40 +37900,41 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          invariant T @13
-            defaultType: dynamic
-          contravariant U @19
-            defaultType: dynamic
-          covariant V @26
-            defaultType: dynamic
-        supertype: Enum
-        fields
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E<dynamic, dynamic, dynamic>>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                rightBracket: ] @0
-                staticType: List<E<dynamic, dynamic, dynamic>>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E<dynamic, dynamic, dynamic>>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            invariant T @13
+              defaultType: dynamic
+            contravariant U @19
+              defaultType: dynamic
+            covariant V @26
+              defaultType: dynamic
+          supertype: Enum
+          fields
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E<dynamic, dynamic, dynamic>>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  rightBracket: ] @0
+                  staticType: List<E<dynamic, dynamic, dynamic>>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E<dynamic, dynamic, dynamic>>
 ''');
   }
 
@@ -37286,86 +37951,87 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant a @32
-            reference: <testLibraryFragment>::@enum::E::@field::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            documentationComment: /**\n   * aaa\n   */
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant b @47
-            reference: <testLibraryFragment>::@enum::E::@field::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            documentationComment: /// bbb
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: a @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::a
-                    staticType: E
-                  SimpleIdentifier
-                    token: b @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::b
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get b @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant a @32
+              reference: <testLibraryFragment>::@enum::E::@field::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              documentationComment: /**\n   * aaa\n   */
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant b @47
+              reference: <testLibraryFragment>::@enum::E::@field::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              documentationComment: /// bbb
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: a @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::a
+                      staticType: E
+                    SimpleIdentifier
+                      token: b @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::b
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get b @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -37387,117 +38053,118 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant a @46
-            reference: <testLibraryFragment>::@enum::E::@field::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            documentationComment: /**\n   * aaa\n   */
-            metadata
-              Annotation
-                atSign: @ @32
-                name: SimpleIdentifier
-                  token: annotation @33
-                  staticElement: <testLibraryFragment>::@getter::annotation
-                  staticType: null
-                element: <testLibraryFragment>::@getter::annotation
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant b @75
-            reference: <testLibraryFragment>::@enum::E::@field::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            documentationComment: /// bbb
-            metadata
-              Annotation
-                atSign: @ @61
-                name: SimpleIdentifier
-                  token: annotation @62
-                  staticElement: <testLibraryFragment>::@getter::annotation
-                  staticType: null
-                element: <testLibraryFragment>::@getter::annotation
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: a @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::a
-                    staticType: E
-                  SimpleIdentifier
-                    token: b @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::b
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get b @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
-    topLevelVariables
-      static const annotation @91
-        reference: <testLibraryFragment>::@topLevelVariable::annotation
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: true
-        constantInitializer
-          IntegerLiteral
-            literal: 0 @104
-            staticType: int
-    accessors
-      synthetic static get annotation @-1
-        reference: <testLibraryFragment>::@getter::annotation
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant a @46
+              reference: <testLibraryFragment>::@enum::E::@field::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              documentationComment: /**\n   * aaa\n   */
+              metadata
+                Annotation
+                  atSign: @ @32
+                  name: SimpleIdentifier
+                    token: annotation @33
+                    staticElement: <testLibraryFragment>::@getter::annotation
+                    staticType: null
+                  element: <testLibraryFragment>::@getter::annotation
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant b @75
+              reference: <testLibraryFragment>::@enum::E::@field::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              documentationComment: /// bbb
+              metadata
+                Annotation
+                  atSign: @ @61
+                  name: SimpleIdentifier
+                    token: annotation @62
+                    staticElement: <testLibraryFragment>::@getter::annotation
+                    staticType: null
+                  element: <testLibraryFragment>::@getter::annotation
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: a @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::a
+                      staticType: E
+                    SimpleIdentifier
+                      token: b @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::b
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get b @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
+      topLevelVariables
+        static const annotation @91
+          reference: <testLibraryFragment>::@topLevelVariable::annotation
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: true
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @104
+              staticType: int
+      accessors
+        synthetic static get annotation @-1
+          reference: <testLibraryFragment>::@getter::annotation
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -37506,84 +38173,85 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v1 @9
-            reference: <testLibraryFragment>::@enum::E::@field::v1
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant v2 @13
-            reference: <testLibraryFragment>::@enum::E::@field::v2
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v1 @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v1
-                    staticType: E
-                  SimpleIdentifier
-                    token: v2 @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::v2
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get v1 @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v1
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get v2 @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::v2
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v1 @9
+              reference: <testLibraryFragment>::@enum::E::@field::v1
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant v2 @13
+              reference: <testLibraryFragment>::@enum::E::@field::v2
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v1 @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v1
+                      staticType: E
+                    SimpleIdentifier
+                      token: v2 @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::v2
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get v1 @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v1
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get v2 @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::v2
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -37592,108 +38260,109 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    enums
-      enum E1 @5
-        reference: <testLibraryFragment>::@enum::E1
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v1 @10
-            reference: <testLibraryFragment>::@enum::E1::@field::v1
-            enclosingElement: <testLibraryFragment>::@enum::E1
-            type: E1
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E1 @-1
-                    element: <testLibraryFragment>::@enum::E1
-                    type: E1
-                  staticElement: <testLibraryFragment>::@enum::E1::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E1
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E1::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E1
-            type: List<E1>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v1 @-1
-                    staticElement: <testLibraryFragment>::@enum::E1::@getter::v1
-                    staticType: E1
-                rightBracket: ] @0
-                staticType: List<E1>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E1
-        accessors
-          synthetic static get v1 @-1
-            reference: <testLibraryFragment>::@enum::E1::@getter::v1
-            enclosingElement: <testLibraryFragment>::@enum::E1
-            returnType: E1
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E1::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E1
-            returnType: List<E1>
-      enum E2 @20
-        reference: <testLibraryFragment>::@enum::E2
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant v2 @25
-            reference: <testLibraryFragment>::@enum::E2::@field::v2
-            enclosingElement: <testLibraryFragment>::@enum::E2
-            type: E2
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E2 @-1
-                    element: <testLibraryFragment>::@enum::E2
-                    type: E2
-                  staticElement: <testLibraryFragment>::@enum::E2::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E2
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E2::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E2
-            type: List<E2>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: v2 @-1
-                    staticElement: <testLibraryFragment>::@enum::E2::@getter::v2
-                    staticType: E2
-                rightBracket: ] @0
-                staticType: List<E2>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E2::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E2
-        accessors
-          synthetic static get v2 @-1
-            reference: <testLibraryFragment>::@enum::E2::@getter::v2
-            enclosingElement: <testLibraryFragment>::@enum::E2
-            returnType: E2
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E2::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E2
-            returnType: List<E2>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      enums
+        enum E1 @5
+          reference: <testLibraryFragment>::@enum::E1
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v1 @10
+              reference: <testLibraryFragment>::@enum::E1::@field::v1
+              enclosingElement: <testLibraryFragment>::@enum::E1
+              type: E1
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E1 @-1
+                      element: <testLibraryFragment>::@enum::E1
+                      type: E1
+                    staticElement: <testLibraryFragment>::@enum::E1::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E1
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E1::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E1
+              type: List<E1>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v1 @-1
+                      staticElement: <testLibraryFragment>::@enum::E1::@getter::v1
+                      staticType: E1
+                  rightBracket: ] @0
+                  staticType: List<E1>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E1
+          accessors
+            synthetic static get v1 @-1
+              reference: <testLibraryFragment>::@enum::E1::@getter::v1
+              enclosingElement: <testLibraryFragment>::@enum::E1
+              returnType: E1
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E1::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E1
+              returnType: List<E1>
+        enum E2 @20
+          reference: <testLibraryFragment>::@enum::E2
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant v2 @25
+              reference: <testLibraryFragment>::@enum::E2::@field::v2
+              enclosingElement: <testLibraryFragment>::@enum::E2
+              type: E2
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E2 @-1
+                      element: <testLibraryFragment>::@enum::E2
+                      type: E2
+                    staticElement: <testLibraryFragment>::@enum::E2::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E2
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E2::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E2
+              type: List<E2>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: v2 @-1
+                      staticElement: <testLibraryFragment>::@enum::E2::@getter::v2
+                      staticType: E2
+                  rightBracket: ] @0
+                  staticType: List<E2>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E2::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E2
+          accessors
+            synthetic static get v2 @-1
+              reference: <testLibraryFragment>::@enum::E2::@getter::v2
+              enclosingElement: <testLibraryFragment>::@enum::E2
+              returnType: E2
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E2::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E2
+              returnType: List<E2>
 ''');
   }
 
@@ -37720,175 +38389,176 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class M @24
-        reference: <testLibraryFragment>::@class::M
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::M::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::M
-      class A @36
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          foo @52
-            reference: <testLibraryFragment>::@class::A::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: dynamic
-      class B @70
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-        methods
-          foo @92
-            reference: <testLibraryFragment>::@class::B::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: dynamic
-      class C @110
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          foo @141
-            reference: <testLibraryFragment>::@class::C::@method::foo
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
-      class alias D @159
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: Object
-        mixins
-          M
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: dart:core::<fragment>::@class::Object::@constructor::new
-    enums
-      enum E @5
-        reference: <testLibraryFragment>::@enum::E
-        enclosingElement: <testLibraryFragment>
-        supertype: Enum
-        fields
-          static const enumConstant a @8
-            reference: <testLibraryFragment>::@enum::E::@field::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant b @11
-            reference: <testLibraryFragment>::@enum::E::@field::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          static const enumConstant c @14
-            reference: <testLibraryFragment>::@enum::E::@field::c
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: E
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              InstanceCreationExpression
-                constructorName: ConstructorName
-                  type: NamedType
-                    name: E @-1
-                    element: <testLibraryFragment>::@enum::E
-                    type: E
-                  staticElement: <testLibraryFragment>::@enum::E::@constructor::new
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticType: E
-          synthetic static const values @-1
-            reference: <testLibraryFragment>::@enum::E::@field::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            type: List<E>
-            constantInitializer
-              ListLiteral
-                leftBracket: [ @0
-                elements
-                  SimpleIdentifier
-                    token: a @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::a
-                    staticType: E
-                  SimpleIdentifier
-                    token: b @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::b
-                    staticType: E
-                  SimpleIdentifier
-                    token: c @-1
-                    staticElement: <testLibraryFragment>::@enum::E::@getter::c
-                    staticType: E
-                rightBracket: ] @0
-                staticType: List<E>
-        constructors
-          synthetic const @-1
-            reference: <testLibraryFragment>::@enum::E::@constructor::new
-            enclosingElement: <testLibraryFragment>::@enum::E
-        accessors
-          synthetic static get a @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::a
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get b @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::b
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get c @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::c
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: E
-          synthetic static get values @-1
-            reference: <testLibraryFragment>::@enum::E::@getter::values
-            enclosingElement: <testLibraryFragment>::@enum::E
-            returnType: List<E>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class M @24
+          reference: <testLibraryFragment>::@class::M
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::M::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::M
+        class A @36
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            foo @52
+              reference: <testLibraryFragment>::@class::A::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: dynamic
+        class B @70
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+          methods
+            foo @92
+              reference: <testLibraryFragment>::@class::B::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: dynamic
+        class C @110
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            foo @141
+              reference: <testLibraryFragment>::@class::C::@method::foo
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
+        class alias D @159
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: Object
+          mixins
+            M
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: dart:core::<fragment>::@class::Object::@constructor::new
+      enums
+        enum E @5
+          reference: <testLibraryFragment>::@enum::E
+          enclosingElement: <testLibraryFragment>
+          supertype: Enum
+          fields
+            static const enumConstant a @8
+              reference: <testLibraryFragment>::@enum::E::@field::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant b @11
+              reference: <testLibraryFragment>::@enum::E::@field::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            static const enumConstant c @14
+              reference: <testLibraryFragment>::@enum::E::@field::c
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: E
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                InstanceCreationExpression
+                  constructorName: ConstructorName
+                    type: NamedType
+                      name: E @-1
+                      element: <testLibraryFragment>::@enum::E
+                      type: E
+                    staticElement: <testLibraryFragment>::@enum::E::@constructor::new
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticType: E
+            synthetic static const values @-1
+              reference: <testLibraryFragment>::@enum::E::@field::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              type: List<E>
+              constantInitializer
+                ListLiteral
+                  leftBracket: [ @0
+                  elements
+                    SimpleIdentifier
+                      token: a @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::a
+                      staticType: E
+                    SimpleIdentifier
+                      token: b @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::b
+                      staticType: E
+                    SimpleIdentifier
+                      token: c @-1
+                      staticElement: <testLibraryFragment>::@enum::E::@getter::c
+                      staticType: E
+                  rightBracket: ] @0
+                  staticType: List<E>
+          constructors
+            synthetic const @-1
+              reference: <testLibraryFragment>::@enum::E::@constructor::new
+              enclosingElement: <testLibraryFragment>::@enum::E
+          accessors
+            synthetic static get a @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::a
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get b @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::b
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get c @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::c
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: E
+            synthetic static get values @-1
+              reference: <testLibraryFragment>::@enum::E::@getter::values
+              enclosingElement: <testLibraryFragment>::@enum::E
+              returnType: List<E>
 ''');
   }
 
@@ -37900,27 +38570,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: dynamic Function(int)
-        aliasedElement: GenericFunctionTypeElement
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: dynamic Function(int)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional p @14
+                type: int
+            returnType: dynamic
+      functions
+        main @18
+          reference: <testLibraryFragment>::@function::main
+          enclosingElement: <testLibraryFragment>
           parameters
-            requiredPositional p @14
-              type: int
+            requiredPositional f @25
+              type: dynamic Function(int)
+                alias: <testLibraryFragment>::@typeAlias::F
           returnType: dynamic
-    functions
-      main @18
-        reference: <testLibraryFragment>::@function::main
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional f @25
-            type: dynamic Function(int)
-              alias: <testLibraryFragment>::@typeAlias::F
-        returnType: dynamic
 ''');
   }
 
@@ -37935,13 +38606,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::C
   exportNamespace
@@ -37964,13 +38636,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::C
   exportNamespace
@@ -37998,13 +38671,14 @@
     package:test/foo.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/foo.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/foo.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/foo.dart::<fragment>::@class::A
   exportNamespace
@@ -38035,13 +38709,14 @@
     package:test/foo_io.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/foo_io.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/foo_io.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/foo_io.dart::<fragment>::@class::A
   exportNamespace
@@ -38072,13 +38747,14 @@
     package:test/foo_html.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/foo_html.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/foo_html.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/foo_html.dart::<fragment>::@class::A
   exportNamespace
@@ -38106,21 +38782,22 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class X @23
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class X @23
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::A
     declared <testLibraryFragment>::@class::X
@@ -38141,13 +38818,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@function::f
   exportNamespace
@@ -38165,13 +38843,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
 ''');
   }
 
@@ -38195,15 +38874,16 @@
       enclosingElement3: <testLibraryFragment>
       combinators
         hide: A, C
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          hide: A, C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            hide: A, C
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::B
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::D
@@ -38234,16 +38914,17 @@
       combinators
         hide: A
         show: C
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          hide: A
-          show: C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            hide: A
+            show: C
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::C
   exportNamespace
@@ -38283,24 +38964,25 @@
     package:test/c.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/b.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      package:test/c.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class X @40
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/b.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        package:test/c.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class X @40
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
   exportedReferences
     exported[(0, 0), (0, 1)] package:test/a.dart::<fragment>::@class::A
     exported[(0, 0)] package:test/b.dart::<fragment>::@class::B
@@ -38325,13 +39007,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@setter::f
   exportNamespace
@@ -38359,15 +39042,16 @@
       enclosingElement3: <testLibraryFragment>
       combinators
         show: A, C
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          show: A, C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            show: A, C
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::A
     exported[(0, 0)] package:test/a.dart::<fragment>::@class::C
@@ -38393,15 +39077,16 @@
       enclosingElement3: <testLibraryFragment>
       combinators
         show: f
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          show: f
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            show: f
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@getter::f
     exported[(0, 0)] package:test/a.dart::<fragment>::@setter::f
@@ -38422,13 +39107,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@typeAlias::F
   exportNamespace
@@ -38456,13 +39142,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@getter::x
     exported[(0, 0)] package:test/a.dart::<fragment>::@setter::x
@@ -38483,13 +39170,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@getter::x
   exportNamespace
@@ -38508,13 +39196,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
     exported[(0, 0)] package:test/a.dart::<fragment>::@getter::x
   exportNamespace
@@ -38545,23 +39234,24 @@
     package:test/bar.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/bar.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @25
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/bar.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @25
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo.dart');
@@ -38591,23 +39281,24 @@
     package:test/bar.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/bar.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @25
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo_io.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/bar.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @25
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo_io.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo_io.dart');
@@ -38637,23 +39328,24 @@
     package:test/bar.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/bar.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @25
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo_html.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/bar.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @25
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo_html.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo_html.dart');
@@ -38674,16 +39366,17 @@
     package:test/b.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      package:test/b.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        package:test/b.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
   exportedReferences
   exportNamespace
 ''');
@@ -38703,41 +39396,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @31
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        augmented
-          constructors
-            <testLibraryFragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          augment class A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@class::A
-          class B @54
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @31
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          augmented
             constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
+              <testLibraryFragment>::@class::A::@constructor::new
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        augment class A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@classAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@class::A
+        class B @54
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::B
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::B::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::B
   exportedReferences
     declared <testLibrary>::@fragment::package:test/a.dart::@class::B
     declared <testLibraryFragment>::@class::A
@@ -38776,17 +39470,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class X @56
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/d.dart
       enclosingElement: <testLibrary>
@@ -38795,14 +39479,7 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/d.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/d.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/d.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryExports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/d.dart
+      definingUnit: <testLibrary>::@fragment::package:test/d.dart
     package:test/e.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/e.dart
@@ -38813,17 +39490,35 @@
         package:test/c.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/e.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/e.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/e.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryExports
-          package:test/b.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/e.dart
-          package:test/c.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/e.dart
+      definingUnit: <testLibrary>::@fragment::package:test/e.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class X @56
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+    <testLibrary>::@fragment::package:test/d.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/d.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/d.dart
+    <testLibrary>::@fragment::package:test/e.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/e.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryExports
+        package:test/b.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/e.dart
+        package:test/c.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/e.dart
   exportedReferences
     exported[(1, 0)] package:test/a.dart::<fragment>::@class::A
     exported[(2, 0)] package:test/b.dart::<fragment>::@class::B1
@@ -38858,17 +39553,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class X @31
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -38879,16 +39564,27 @@
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
           combinators
             hide: A2, A4
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryExports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-            combinators
-              hide: A2, A4
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class X @31
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+          combinators
+            hide: A2, A4
   exportedReferences
     exported[(1, 0)] package:test/a.dart::<fragment>::@class::A1
     exported[(1, 0)] package:test/a.dart::<fragment>::@class::A3
@@ -38918,17 +39614,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class X @31
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/b.dart
       enclosingElement: <testLibrary>
@@ -38939,16 +39625,27 @@
           enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
           combinators
             show: A1, A3
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/b.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryExports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
-            combinators
-              show: A1, A3
+      definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class X @31
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/b.dart
+          combinators
+            show: A1, A3
   exportedReferences
     exported[(1, 0)] package:test/a.dart::<fragment>::@class::A1
     exported[(1, 0)] package:test/a.dart::<fragment>::@class::A3
@@ -38974,37 +39671,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    mixins
-      mixin A @31
-        reference: <testLibraryFragment>::@mixin::A
-        enclosingElement: <testLibraryFragment>
-        augmentation: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
-        superclassConstraints
-          Object
-        augmented
-          superclassConstraints
-            Object
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        mixins
-          augment mixin A @43
-            reference: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            augmentationTarget: <testLibraryFragment>::@mixin::A
-          mixin B @54
-            reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::B
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      mixins
+        mixin A @31
+          reference: <testLibraryFragment>::@mixin::A
+          enclosingElement: <testLibraryFragment>
+          augmentation: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
+          superclassConstraints
+            Object
+          augmented
             superclassConstraints
               Object
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      mixins
+        augment mixin A @43
+          reference: <testLibrary>::@fragment::package:test/a.dart::@mixinAugmentation::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          augmentationTarget: <testLibraryFragment>::@mixin::A
+        mixin B @54
+          reference: <testLibrary>::@fragment::package:test/a.dart::@mixin::B
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          superclassConstraints
+            Object
   exportedReferences
     declared <testLibrary>::@fragment::package:test/a.dart::@mixin::B
     declared <testLibraryFragment>::@mixin::A
@@ -39032,49 +39730,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @31
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        classes
-          class A @60
-            reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            constructors
-              synthetic @-1
-                reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
-                enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
       augmentationImports
         package:test/b.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
           reference: <testLibrary>::@augmentation::package:test/b.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/b.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
-            classes
-              class B @32
-                reference: <testLibrary>::@fragment::package:test/b.dart::@class::B
-                enclosingElement: <testLibrary>::@fragment::package:test/b.dart
-                constructors
-                  synthetic @-1
-                    reference: <testLibrary>::@fragment::package:test/b.dart::@class::B::@constructor::new
-                    enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@class::B
+          definingUnit: <testLibrary>::@fragment::package:test/b.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @31
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      classes
+        class A @60
+          reference: <testLibrary>::@fragment::package:test/a.dart::@class::A
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/a.dart::@class::A::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/a.dart::@class::A
+    <testLibrary>::@fragment::package:test/b.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/b.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/a.dart
+      classes
+        class B @32
+          reference: <testLibrary>::@fragment::package:test/b.dart::@class::B
+          enclosingElement: <testLibrary>::@fragment::package:test/b.dart
+          constructors
+            synthetic @-1
+              reference: <testLibrary>::@fragment::package:test/b.dart::@class::B::@constructor::new
+              enclosingElement: <testLibrary>::@fragment::package:test/b.dart::@class::B
   exportedReferences
     declared <testLibrary>::@fragment::package:test/a.dart::@class::A
     declared <testLibrary>::@fragment::package:test/b.dart::@class::B
@@ -39110,17 +39809,7 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class X @31
-        reference: <testLibraryFragment>::@class::X
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/c.dart
       enclosingElement: <testLibrary>
@@ -39129,14 +39818,7 @@
         package:test/a.dart
           enclosingElement: <testLibrary>
           enclosingElement3: <testLibrary>::@fragment::package:test/c.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/c.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/c.dart
-        enclosingElement3: <testLibraryFragment>
-        libraryExports
-          package:test/a.dart
-            enclosingElement: <testLibrary>
-            enclosingElement3: <testLibrary>::@fragment::package:test/c.dart
+      definingUnit: <testLibrary>::@fragment::package:test/c.dart
       augmentationImports
         package:test/d.dart
           enclosingElement: <testLibrary>::@augmentation::package:test/c.dart
@@ -39145,14 +39827,32 @@
             package:test/b.dart
               enclosingElement: <testLibrary>
               enclosingElement3: <testLibrary>::@fragment::package:test/d.dart
-          definingUnit
-            reference: <testLibrary>::@fragment::package:test/d.dart
-            enclosingElement: <testLibrary>::@augmentation::package:test/d.dart
-            enclosingElement3: <testLibrary>::@fragment::package:test/c.dart
-            libraryExports
-              package:test/b.dart
-                enclosingElement: <testLibrary>
-                enclosingElement3: <testLibrary>::@fragment::package:test/d.dart
+          definingUnit: <testLibrary>::@fragment::package:test/d.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class X @31
+          reference: <testLibraryFragment>::@class::X
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X
+    <testLibrary>::@fragment::package:test/c.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/c.dart
+      enclosingElement3: <testLibraryFragment>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/c.dart
+    <testLibrary>::@fragment::package:test/d.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/d.dart
+      enclosingElement3: <testLibrary>::@fragment::package:test/c.dart
+      libraryExports
+        package:test/b.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibrary>::@fragment::package:test/d.dart
   exportedReferences
     exported[(1, 0)] package:test/a.dart::<fragment>::@class::A
     exported[(2, 0)] package:test/b.dart::<fragment>::@class::B
@@ -39176,35 +39876,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        topLevelVariables
-          static a @33
-            reference: <testLibrary>::@fragment::package:test/a.dart::@topLevelVariable::a
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            type: int
-            shouldUseTypeForInitializerInference: true
-        accessors
-          synthetic static get a @-1
-            reference: <testLibrary>::@fragment::package:test/a.dart::@getter::a
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            returnType: int
-          synthetic static set a= @-1
-            reference: <testLibrary>::@fragment::package:test/a.dart::@setter::a
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            parameters
-              requiredPositional _a @-1
-                type: int
-            returnType: void
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static a @33
+          reference: <testLibrary>::@fragment::package:test/a.dart::@topLevelVariable::a
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          type: int
+          shouldUseTypeForInitializerInference: true
+      accessors
+        synthetic static get a @-1
+          reference: <testLibrary>::@fragment::package:test/a.dart::@getter::a
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          returnType: int
+        synthetic static set a= @-1
+          reference: <testLibrary>::@fragment::package:test/a.dart::@setter::a
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          parameters
+            requiredPositional _a @-1
+              type: int
+          returnType: void
   exportedReferences
     declared <testLibrary>::@fragment::package:test/a.dart::@getter::a
     declared <testLibrary>::@fragment::package:test/a.dart::@setter::a
@@ -39226,32 +39927,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
+  definingUnit: <testLibraryFragment>
   augmentationImports
     package:test/a.dart
       enclosingElement: <testLibrary>
       reference: <testLibrary>::@augmentation::package:test/a.dart
-      definingUnit
-        reference: <testLibrary>::@fragment::package:test/a.dart
-        enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
-        enclosingElement3: <testLibraryFragment>
-        topLevelVariables
-          static const a @35
-            reference: <testLibrary>::@fragment::package:test/a.dart::@topLevelVariable::a
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @39
-                staticType: int
-        accessors
-          synthetic static get a @-1
-            reference: <testLibrary>::@fragment::package:test/a.dart::@getter::a
-            enclosingElement: <testLibrary>::@fragment::package:test/a.dart
-            returnType: int
+      definingUnit: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+    <testLibrary>::@fragment::package:test/a.dart
+      enclosingElement: <testLibrary>::@augmentation::package:test/a.dart
+      enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const a @35
+          reference: <testLibrary>::@fragment::package:test/a.dart::@topLevelVariable::a
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          type: int
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            IntegerLiteral
+              literal: 0 @39
+              staticType: int
+      accessors
+        synthetic static get a @-1
+          reference: <testLibrary>::@fragment::package:test/a.dart::@getter::a
+          enclosingElement: <testLibrary>::@fragment::package:test/a.dart
+          returnType: int
   exportedReferences
     declared <testLibrary>::@fragment::package:test/a.dart::@getter::a
   exportNamespace
@@ -39268,31 +39970,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        fields
-          final f @21
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: InvalidType
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: InvalidType
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          fields
+            final f @21
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: InvalidType
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: InvalidType
 ''');
   }
 
@@ -39305,15 +40008,16 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    extensions
-      E @34
-        reference: <testLibraryFragment>::@extension::E
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /// aaa\n/// bbbb\n/// cc
-        extendedType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      extensions
+        E @34
+          reference: <testLibraryFragment>::@extension::E
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /// aaa\n/// bbbb\n/// cc
+          extendedType: int
 ''');
   }
 
@@ -39325,29 +40029,30 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    extensions
-      E @10
-        reference: <testLibraryFragment>::@extension::E
-        enclosingElement: <testLibraryFragment>
-        extendedType: int
-        fields
-          static const x @36
-            reference: <testLibraryFragment>::@extension::E::@field::x
-            enclosingElement: <testLibraryFragment>::@extension::E
-            type: int
-            shouldUseTypeForInitializerInference: false
-            constantInitializer
-              IntegerLiteral
-                literal: 0 @40
-                staticType: int
-        accessors
-          synthetic static get x @-1
-            reference: <testLibraryFragment>::@extension::E::@getter::x
-            enclosingElement: <testLibraryFragment>::@extension::E
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      extensions
+        E @10
+          reference: <testLibraryFragment>::@extension::E
+          enclosingElement: <testLibraryFragment>
+          extendedType: int
+          fields
+            static const x @36
+              reference: <testLibraryFragment>::@extension::E::@field::x
+              enclosingElement: <testLibraryFragment>::@extension::E
+              type: int
+              shouldUseTypeForInitializerInference: false
+              constantInitializer
+                IntegerLiteral
+                  literal: 0 @40
+                  staticType: int
+          accessors
+            synthetic static get x @-1
+              reference: <testLibraryFragment>::@extension::E::@getter::x
+              enclosingElement: <testLibraryFragment>::@extension::E
+              returnType: int
 ''');
   }
 
@@ -39358,18 +40063,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    extensions
-      E @10
-        reference: <testLibraryFragment>::@extension::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @12
-            bound: num
-            defaultType: num
-        extendedType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      extensions
+        E @10
+          reference: <testLibraryFragment>::@extension::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @12
+              bound: num
+              defaultType: num
+          extendedType: int
 ''');
   }
 
@@ -39380,17 +40086,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    extensions
-      E @10
-        reference: <testLibraryFragment>::@extension::E
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @12
-            defaultType: dynamic
-        extendedType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      extensions
+        E @10
+          reference: <testLibraryFragment>::@extension::E
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @12
+              defaultType: dynamic
+          extendedType: int
 ''');
   }
 
@@ -39406,18 +40113,19 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    functions
-      f @28 async
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<dynamic>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      functions
+        f @28 async
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<dynamic>
 ''');
   }
 
@@ -39433,18 +40141,19 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    functions
-      f @28 async*
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: Stream<dynamic>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      functions
+        f @28 async*
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: Stream<dynamic>
 ''');
   }
 
@@ -39458,15 +40167,16 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @60
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @60
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          returnType: dynamic
 ''');
   }
 
@@ -39475,14 +40185,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      main @0
-        reference: <testLibraryFragment>::@function::main
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        main @0
+          reference: <testLibraryFragment>::@function::main
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -39496,13 +40207,14 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
 ''');
   }
 
@@ -39518,15 +40230,16 @@
       enclosingElement3: <testLibraryFragment>
       combinators
         hide: main
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryExports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          hide: main
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryExports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            hide: main
 ''');
   }
 
@@ -39538,15 +40251,19 @@
   name: my.lib
   nameOffset: 8
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    parts
-      part_0
+  definingUnit: <testLibraryFragment>
   parts
     part_0
-      uri: package:test/a.dart
-      reference: <testLibrary>::@fragment::package:test/a.dart
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      parts
+        part_0
+          uri: package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          unit: <testLibrary>::@fragment::package:test/a.dart
+    <testLibrary>::@fragment::package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
       functions
@@ -39562,14 +40279,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      external f @9
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        external f @9
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -39596,17 +40314,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional x @13
-            type: dynamic
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional x @13
+              type: dynamic
+          returnType: void
 ''');
   }
 
@@ -39617,18 +40336,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional final this.a @16
-            type: int
-            field: <null>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional final this.a @16
+              type: int
+              field: <null>
+          returnType: void
 ''');
   }
 
@@ -39639,23 +40359,24 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default final this.a @17
-            reference: <testLibraryFragment>::@function::f::@parameter::a
-            type: int
-            constantInitializer
-              IntegerLiteral
-                literal: 42 @20
-                staticType: int
-            field: <null>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default final this.a @17
+              reference: <testLibraryFragment>::@function::f::@parameter::a
+              type: int
+              constantInitializer
+                IntegerLiteral
+                  literal: 42 @20
+                  staticType: int
+              field: <null>
+          returnType: void
 ''');
   }
 
@@ -39666,21 +40387,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional final this.a @16
-            type: int Function(int)
-            parameters
-              requiredPositional b @22
-                type: int
-            field: <null>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional final this.a @16
+              type: int Function(int)
+              parameters
+                requiredPositional b @22
+                  type: int
+              field: <null>
+          returnType: void
 ''');
   }
 
@@ -39689,17 +40411,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional final x @8
-            type: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional final x @8
+              type: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -39708,18 +40431,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default x @3
-            reference: <testLibraryFragment>::@function::f::@parameter::x
-            type: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default x @3
+              reference: <testLibraryFragment>::@function::f::@parameter::x
+              type: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -39728,17 +40452,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalPositional default x @3
-            type: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalPositional default x @3
+              type: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -39747,17 +40472,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional x @2
-            type: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional x @2
+              type: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -39766,22 +40492,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional g @2
-            type: dynamic Function(dynamic, dynamic)
-            parameters
-              requiredPositional x @4
-                type: dynamic
-              requiredPositional y @7
-                type: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional g @2
+              type: dynamic Function(dynamic, dynamic)
+              parameters
+                requiredPositional x @4
+                  type: dynamic
+                requiredPositional y @7
+                  type: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -39790,17 +40517,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional g @6
-            type: int Function()
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional g @6
+              type: int Function()
+          returnType: dynamic
 ''');
   }
 
@@ -39809,17 +40537,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional g @7
-            type: void Function()
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional g @7
+              type: void Function()
+          returnType: dynamic
 ''');
   }
 
@@ -39828,17 +40557,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional i @6
-            type: int
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional i @6
+              type: int
+          returnType: dynamic
 ''');
   }
 
@@ -39849,20 +40579,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        parameters
-          requiredPositional a @12
-            type: T
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          parameters
+            requiredPositional a @12
+              type: T
+          returnType: void
 ''');
   }
 
@@ -39873,17 +40604,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional a @9
-            type: InvalidType
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional a @9
+              type: InvalidType
+          returnType: void
 ''');
   }
 
@@ -39892,19 +40624,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional x @2
-            type: dynamic
-          requiredPositional y @5
-            type: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional x @2
+              type: dynamic
+            requiredPositional y @5
+              type: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -39913,14 +40646,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -39931,14 +40665,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @2
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @2
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
 ''');
   }
 
@@ -39947,14 +40682,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: void
 ''');
   }
 
@@ -39965,14 +40701,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @4
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @4
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -39983,17 +40720,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @2
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @4
-            defaultType: dynamic
-        returnType: T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @2
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @4
+              defaultType: dynamic
+          returnType: T
 ''');
   }
 
@@ -40002,25 +40740,26 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-          covariant U @10
-            defaultType: dynamic
-        parameters
-          requiredPositional x @15
-            type: T Function(U)
-            parameters
-              requiredPositional u @19
-                type: U
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+            covariant U @10
+              defaultType: dynamic
+          parameters
+            requiredPositional x @15
+              type: T Function(U)
+              parameters
+                requiredPositional u @19
+                  type: U
+          returnType: void
 ''');
   }
 
@@ -40039,18 +40778,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            bound: num
-            defaultType: num
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              bound: num
+              defaultType: num
+          returnType: void
 ''');
   }
 
@@ -40061,17 +40801,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @7
-            defaultType: dynamic
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @7
+              defaultType: dynamic
+          returnType: void
 ''');
   }
 
@@ -40080,18 +40821,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      g @7
-        reference: <testLibraryFragment>::@function::g
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        g @7
+          reference: <testLibraryFragment>::@function::g
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -40135,21 +40877,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @13
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          contravariant T @15
-            defaultType: dynamic
-        aliasedType: void Function(T)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @20
-              type: T
-          returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @13
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            contravariant T @15
+              defaultType: dynamic
+          aliasedType: void Function(T)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @20
+                type: T
+            returnType: void
 ''');
   }
 
@@ -40161,32 +40904,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F1 @13
-        reference: <testLibraryFragment>::@typeAlias::F1
-        typeParameters
-          contravariant T @16
-            defaultType: dynamic
-        aliasedType: void Function(T)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @21
-              type: T
-          returnType: void
-      functionTypeAliasBased F2 @39
-        reference: <testLibraryFragment>::@typeAlias::F2
-        typeParameters
-          contravariant T @42
-            defaultType: dynamic
-        aliasedType: void Function(T) Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: void Function(T)
-            alias: <testLibraryFragment>::@typeAlias::F1
-              typeArguments
-                T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F1 @13
+          reference: <testLibraryFragment>::@typeAlias::F1
+          typeParameters
+            contravariant T @16
+              defaultType: dynamic
+          aliasedType: void Function(T)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @21
+                type: T
+            returnType: void
+        functionTypeAliasBased F2 @39
+          reference: <testLibraryFragment>::@typeAlias::F2
+          typeParameters
+            contravariant T @42
+              defaultType: dynamic
+          aliasedType: void Function(T) Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: void Function(T)
+              alias: <testLibraryFragment>::@typeAlias::F1
+                typeArguments
+                  T
 ''');
   }
 
@@ -40198,32 +40942,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F2 @14
-        reference: <testLibraryFragment>::@typeAlias::F2
-        typeParameters
-          contravariant T @17
-            defaultType: dynamic
-        aliasedType: void Function(T) Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: void Function(T)
-            alias: <testLibraryFragment>::@typeAlias::F1
-              typeArguments
-                T
-      functionTypeAliasBased F1 @36
-        reference: <testLibraryFragment>::@typeAlias::F1
-        typeParameters
-          contravariant T @39
-            defaultType: dynamic
-        aliasedType: void Function(T)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @44
-              type: T
-          returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F2 @14
+          reference: <testLibraryFragment>::@typeAlias::F2
+          typeParameters
+            contravariant T @17
+              defaultType: dynamic
+          aliasedType: void Function(T) Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: void Function(T)
+              alias: <testLibraryFragment>::@typeAlias::F1
+                typeArguments
+                  T
+        functionTypeAliasBased F1 @36
+          reference: <testLibraryFragment>::@typeAlias::F1
+          typeParameters
+            contravariant T @39
+              defaultType: dynamic
+          aliasedType: void Function(T)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @44
+                type: T
+            returnType: void
 ''');
   }
 
@@ -40234,18 +40979,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @10
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          covariant T @12
-            defaultType: dynamic
-        aliasedType: T Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @10
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            covariant T @12
+              defaultType: dynamic
+          aliasedType: T Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: T
 ''');
   }
 
@@ -40256,18 +41002,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @16
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          covariant T @18
-            defaultType: dynamic
-        aliasedType: List<T> Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: List<T>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @16
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            covariant T @18
+              defaultType: dynamic
+          aliasedType: List<T> Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: List<T>
 ''');
   }
 
@@ -40279,29 +41026,30 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F1 @10
-        reference: <testLibraryFragment>::@typeAlias::F1
-        typeParameters
-          covariant T @13
-            defaultType: dynamic
-        aliasedType: T Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: T
-      functionTypeAliasBased F2 @33
-        reference: <testLibraryFragment>::@typeAlias::F2
-        typeParameters
-          covariant T @36
-            defaultType: dynamic
-        aliasedType: T Function() Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: T Function()
-            alias: <testLibraryFragment>::@typeAlias::F1
-              typeArguments
-                T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F1 @10
+          reference: <testLibraryFragment>::@typeAlias::F1
+          typeParameters
+            covariant T @13
+              defaultType: dynamic
+          aliasedType: T Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: T
+        functionTypeAliasBased F2 @33
+          reference: <testLibraryFragment>::@typeAlias::F2
+          typeParameters
+            covariant T @36
+              defaultType: dynamic
+          aliasedType: T Function() Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: T Function()
+              alias: <testLibraryFragment>::@typeAlias::F1
+                typeArguments
+                  T
 ''');
   }
 
@@ -40313,35 +41061,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F1 @13
-        reference: <testLibraryFragment>::@typeAlias::F1
-        typeParameters
-          contravariant T @16
-            defaultType: dynamic
-        aliasedType: void Function(T)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @21
-              type: T
-          returnType: void
-      functionTypeAliasBased F2 @38
-        reference: <testLibraryFragment>::@typeAlias::F2
-        typeParameters
-          covariant T @41
-            defaultType: dynamic
-        aliasedType: void Function(void Function(T))
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @50
-              type: void Function(T)
-                alias: <testLibraryFragment>::@typeAlias::F1
-                  typeArguments
-                    T
-          returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F1 @13
+          reference: <testLibraryFragment>::@typeAlias::F1
+          typeParameters
+            contravariant T @16
+              defaultType: dynamic
+          aliasedType: void Function(T)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @21
+                type: T
+            returnType: void
+        functionTypeAliasBased F2 @38
+          reference: <testLibraryFragment>::@typeAlias::F2
+          typeParameters
+            covariant T @41
+              defaultType: dynamic
+          aliasedType: void Function(void Function(T))
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @50
+                type: void Function(T)
+                  alias: <testLibraryFragment>::@typeAlias::F1
+                    typeArguments
+                      T
+            returnType: void
 ''');
   }
 
@@ -40352,21 +41101,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @10
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          invariant T @12
-            defaultType: dynamic
-        aliasedType: T Function(T)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @17
-              type: T
-          returnType: T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @10
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            invariant T @12
+              defaultType: dynamic
+          aliasedType: T Function(T)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @17
+                type: T
+            returnType: T
 ''');
   }
 
@@ -40378,32 +41128,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F1 @10
-        reference: <testLibraryFragment>::@typeAlias::F1
-        typeParameters
-          covariant T @13
-            defaultType: dynamic
-        aliasedType: T Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: T
-      functionTypeAliasBased F2 @33
-        reference: <testLibraryFragment>::@typeAlias::F2
-        typeParameters
-          invariant T @36
-            defaultType: dynamic
-        aliasedType: T Function() Function(T)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @41
-              type: T
-          returnType: T Function()
-            alias: <testLibraryFragment>::@typeAlias::F1
-              typeArguments
-                T
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F1 @10
+          reference: <testLibraryFragment>::@typeAlias::F1
+          typeParameters
+            covariant T @13
+              defaultType: dynamic
+          aliasedType: T Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: T
+        functionTypeAliasBased F2 @33
+          reference: <testLibraryFragment>::@typeAlias::F2
+          typeParameters
+            invariant T @36
+              defaultType: dynamic
+          aliasedType: T Function() Function(T)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @41
+                type: T
+            returnType: T Function()
+              alias: <testLibraryFragment>::@typeAlias::F1
+                typeArguments
+                  T
 ''');
   }
 
@@ -40414,21 +41165,22 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @13
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          unrelated T @15
-            defaultType: dynamic
-        aliasedType: void Function(int)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional a @22
-              type: int
-          returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @13
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            unrelated T @15
+              defaultType: dynamic
+          aliasedType: void Function(int)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional a @22
+                type: int
+            returnType: void
 ''');
   }
 
@@ -40441,30 +41193,31 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static x @35
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: FutureOr<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: FutureOr<int>
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: FutureOr<int>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static x @35
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: FutureOr<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: FutureOr<int>
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: FutureOr<int>
+          returnType: void
 ''');
     var variables = library.definingCompilationUnit.topLevelVariables;
     expect(variables, hasLength(1));
@@ -40481,29 +41234,30 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static const x @27
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Type
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          SimpleIdentifier
-            token: FutureOr @31
-            staticElement: dart:async::<fragment>::@class::FutureOr
-            staticType: Type
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Type
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static const x @27
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Type
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            SimpleIdentifier
+              token: FutureOr @31
+              staticElement: dart:async::<fragment>::@class::FutureOr
+              staticType: Type
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Type
 ''');
     var variables = library.definingCompilationUnit.topLevelVariables;
     expect(variables, hasLength(1));
@@ -40526,52 +41280,53 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static x @52
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: FutureOr<int>
-        shouldUseTypeForInitializerInference: false
-      static y @65
-        reference: <testLibraryFragment>::@topLevelVariable::y
-        enclosingElement: <testLibraryFragment>
-        type: InvalidType
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: FutureOr<int>
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: FutureOr<int>
-        returnType: void
-      synthetic static get y @-1
-        reference: <testLibraryFragment>::@getter::y
-        enclosingElement: <testLibraryFragment>
-        returnType: InvalidType
-      synthetic static set y= @-1
-        reference: <testLibraryFragment>::@setter::y
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _y @-1
-            type: InvalidType
-        returnType: void
-    functions
-      f @35
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: FutureOr<int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static x @52
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: FutureOr<int>
+          shouldUseTypeForInitializerInference: false
+        static y @65
+          reference: <testLibraryFragment>::@topLevelVariable::y
+          enclosingElement: <testLibraryFragment>
+          type: InvalidType
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: FutureOr<int>
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: FutureOr<int>
+          returnType: void
+        synthetic static get y @-1
+          reference: <testLibraryFragment>::@getter::y
+          enclosingElement: <testLibraryFragment>
+          returnType: InvalidType
+        synthetic static set y= @-1
+          reference: <testLibraryFragment>::@setter::y
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _y @-1
+              type: InvalidType
+          returnType: void
+      functions
+        f @35
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: FutureOr<int>
 ''');
     var variables = library.definingCompilationUnit.topLevelVariables;
     expect(variables, hasLength(2));
@@ -40590,26 +41345,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static f @16
-        reference: <testLibraryFragment>::@topLevelVariable::f
-        enclosingElement: <testLibraryFragment>
-        type: void Function()
-    accessors
-      synthetic static get f @-1
-        reference: <testLibraryFragment>::@getter::f
-        enclosingElement: <testLibraryFragment>
-        returnType: void Function()
-      synthetic static set f= @-1
-        reference: <testLibraryFragment>::@setter::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _f @-1
-            type: void Function()
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static f @16
+          reference: <testLibraryFragment>::@topLevelVariable::f
+          enclosingElement: <testLibraryFragment>
+          type: void Function()
+      accessors
+        synthetic static get f @-1
+          reference: <testLibraryFragment>::@getter::f
+          enclosingElement: <testLibraryFragment>
+          returnType: void Function()
+        synthetic static set f= @-1
+          reference: <testLibraryFragment>::@setter::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _f @-1
+              type: void Function()
+          returnType: void
 ''');
   }
 
@@ -40620,26 +41376,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static f @17
-        reference: <testLibraryFragment>::@topLevelVariable::f
-        enclosingElement: <testLibraryFragment>
-        type: void Function()?
-    accessors
-      synthetic static get f @-1
-        reference: <testLibraryFragment>::@getter::f
-        enclosingElement: <testLibraryFragment>
-        returnType: void Function()?
-      synthetic static set f= @-1
-        reference: <testLibraryFragment>::@setter::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _f @-1
-            type: void Function()?
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static f @17
+          reference: <testLibraryFragment>::@topLevelVariable::f
+          enclosingElement: <testLibraryFragment>
+          type: void Function()?
+      accessors
+        synthetic static get f @-1
+          reference: <testLibraryFragment>::@getter::f
+          enclosingElement: <testLibraryFragment>
+          returnType: void Function()?
+        synthetic static set f= @-1
+          reference: <testLibraryFragment>::@setter::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _f @-1
+              type: void Function()?
+          returnType: void
 ''');
   }
 
@@ -40655,37 +41412,38 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          static m @30
-            reference: <testLibraryFragment>::@class::C::@method::m
-            enclosingElement: <testLibraryFragment>::@class::C
-            typeParameters
-              covariant V @32
-                defaultType: dynamic
-              covariant W @35
-                defaultType: dynamic
-            parameters
-              requiredPositional v @40
-                type: V
-              requiredPositional w @45
-                type: W
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            static m @30
+              reference: <testLibraryFragment>::@class::C::@method::m
+              enclosingElement: <testLibraryFragment>::@class::C
+              typeParameters
+                covariant V @32
+                  defaultType: dynamic
+                covariant W @35
+                  defaultType: dynamic
+              parameters
+                requiredPositional v @40
+                  type: V
+                requiredPositional w @45
+                  type: W
+              returnType: void
 ''');
   }
 
@@ -40696,14 +41454,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @30
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function(int, String)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @30
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function(int, String)
 ''');
   }
 
@@ -40714,20 +41473,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional p @37
-            type: int Function(int, String) Function(num)
-            parameters
-              requiredPositional c @43
-                type: num
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional p @37
+              type: int Function(int, String) Function(num)
+              parameters
+                requiredPositional c @43
+                  type: num
+          returnType: void
 ''');
   }
 
@@ -40738,18 +41498,19 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: void Function(String) Function(int)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional b @49
-              type: int
-          returnType: void Function(String)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: void Function(String) Function(int)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional b @49
+                type: int
+            returnType: void Function(String)
 ''');
   }
 
@@ -40762,22 +41523,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          m @42
-            reference: <testLibraryFragment>::@class::C::@method::m
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int Function(int, String)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            m @42
+              reference: <testLibraryFragment>::@class::C::@method::m
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int Function(int, String)
 ''');
   }
 
@@ -40788,17 +41550,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional p @37
-            type: int Function(int, String)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional p @37
+              type: int Function(int, String)
+          returnType: void
 ''');
   }
 
@@ -40809,26 +41572,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static v @30
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int Function(int, String)
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function(int, String)
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: int Function(int, String)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static v @30
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int Function(int, String)
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function(int, String)
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: int Function(int, String)
+          returnType: void
 ''');
   }
 
@@ -40844,69 +41608,70 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @64
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @29
-            name: SimpleIdentifier
-              token: A @30
-              staticElement: <testLibraryFragment>::@class::A
-              staticType: null
-            typeArguments: TypeArgumentList
-              leftBracket: < @31
-              arguments
-                GenericFunctionType
-                  returnType: NamedType
-                    name: int @32
-                    element: dart:core::<fragment>::@class::int
-                    type: int
-                  functionKeyword: Function @36
-                  parameters: FormalParameterList
-                    leftParenthesis: ( @44
-                    parameter: SimpleFormalParameter
-                      type: NamedType
-                        name: String @45
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                      name: a @52
-                      declaredElement: a@52
-                        type: String
-                    rightParenthesis: ) @53
-                  declaredElement: GenericFunctionTypeElement
-                    parameters
-                      a
-                        kind: required positional
-                        type: String
-                    returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @64
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @29
+              name: SimpleIdentifier
+                token: A @30
+                staticElement: <testLibraryFragment>::@class::A
+                staticType: null
+              typeArguments: TypeArgumentList
+                leftBracket: < @31
+                arguments
+                  GenericFunctionType
+                    returnType: NamedType
+                      name: int @32
+                      element: dart:core::<fragment>::@class::int
+                      type: int
+                    functionKeyword: Function @36
+                    parameters: FormalParameterList
+                      leftParenthesis: ( @44
+                      parameter: SimpleFormalParameter
+                        type: NamedType
+                          name: String @45
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                        name: a @52
+                        declaredElement: a@52
+                          type: String
+                      rightParenthesis: ) @53
+                    declaredElement: GenericFunctionTypeElement
+                      parameters
+                        a
+                          kind: required positional
+                          type: String
+                      returnType: int
+                      type: int Function(String)
                     type: int Function(String)
-                  type: int Function(String)
-              rightBracket: > @54
-            arguments: ArgumentList
-              leftParenthesis: ( @55
-              rightParenthesis: ) @56
-            element: ConstructorMember
-              base: <testLibraryFragment>::@class::A::@constructor::new
-              substitution: {T: int Function(String)}
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
+                rightBracket: > @54
+              arguments: ArgumentList
+                leftParenthesis: ( @55
+                rightParenthesis: ) @56
+              element: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::new
+                substitution: {T: int Function(String)}
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
 ''');
   }
 
@@ -40922,80 +41687,81 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    topLevelVariables
-      static v @62
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @29
-            name: SimpleIdentifier
-              token: A @30
-              staticElement: <testLibraryFragment>::@class::A
-              staticType: null
-            typeArguments: TypeArgumentList
-              leftBracket: < @31
-              arguments
-                GenericFunctionType
-                  returnType: NamedType
-                    name: int @32
-                    element: dart:core::<fragment>::@class::int
-                    type: int
-                  functionKeyword: Function @36
-                  parameters: FormalParameterList
-                    leftParenthesis: ( @44
-                    parameter: SimpleFormalParameter
-                      type: NamedType
-                        name: String @45
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                      name: a @52
-                      declaredElement: a@52
-                        type: String
-                    rightParenthesis: ) @53
-                  declaredElement: GenericFunctionTypeElement
-                    parameters
-                      a
-                        kind: required positional
-                        type: String
-                    returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      topLevelVariables
+        static v @62
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @29
+              name: SimpleIdentifier
+                token: A @30
+                staticElement: <testLibraryFragment>::@class::A
+                staticType: null
+              typeArguments: TypeArgumentList
+                leftBracket: < @31
+                arguments
+                  GenericFunctionType
+                    returnType: NamedType
+                      name: int @32
+                      element: dart:core::<fragment>::@class::int
+                      type: int
+                    functionKeyword: Function @36
+                    parameters: FormalParameterList
+                      leftParenthesis: ( @44
+                      parameter: SimpleFormalParameter
+                        type: NamedType
+                          name: String @45
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                        name: a @52
+                        declaredElement: a@52
+                          type: String
+                      rightParenthesis: ) @53
+                    declaredElement: GenericFunctionTypeElement
+                      parameters
+                        a
+                          kind: required positional
+                          type: String
+                      returnType: int
+                      type: int Function(String)
                     type: int Function(String)
-                  type: int Function(String)
-              rightBracket: > @54
-            arguments: ArgumentList
-              leftParenthesis: ( @55
-              rightParenthesis: ) @56
-            element: ConstructorMember
-              base: <testLibraryFragment>::@class::A::@constructor::new
-              substitution: {T: int Function(String)}
-        type: int
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: int
-        returnType: void
+                rightBracket: > @54
+              arguments: ArgumentList
+                leftParenthesis: ( @55
+                rightParenthesis: ) @56
+              element: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::new
+                substitution: {T: int Function(String)}
+          type: int
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: int
+          returnType: void
 ''');
   }
 
@@ -41010,80 +41776,81 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    topLevelVariables
-      static const v @35
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: A<String Function({int? a})>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            constructorName: ConstructorName
-              type: NamedType
-                name: A @39
-                typeArguments: TypeArgumentList
-                  leftBracket: < @40
-                  arguments
-                    GenericFunctionType
-                      returnType: NamedType
-                        name: String @41
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        leftDelimiter: { @57
-                        parameter: DefaultFormalParameter
-                          parameter: SimpleFormalParameter
-                            type: NamedType
-                              name: int @58
-                              question: ? @61
-                              element: dart:core::<fragment>::@class::int
-                              type: int?
-                            name: a @63
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      topLevelVariables
+        static const v @35
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: A<String Function({int? a})>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              constructorName: ConstructorName
+                type: NamedType
+                  name: A @39
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @40
+                    arguments
+                      GenericFunctionType
+                        returnType: NamedType
+                          name: String @41
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                        functionKeyword: Function @48
+                        parameters: FormalParameterList
+                          leftParenthesis: ( @56
+                          leftDelimiter: { @57
+                          parameter: DefaultFormalParameter
+                            parameter: SimpleFormalParameter
+                              type: NamedType
+                                name: int @58
+                                question: ? @61
+                                element: dart:core::<fragment>::@class::int
+                                type: int?
+                              name: a @63
+                              declaredElement: a@63
+                                type: int?
                             declaredElement: a@63
                               type: int?
-                          declaredElement: a@63
-                            type: int?
-                        rightDelimiter: } @64
-                        rightParenthesis: ) @65
-                      declaredElement: GenericFunctionTypeElement
-                        parameters
-                          a
-                            kind: optional named
-                            type: int?
-                        returnType: String
+                          rightDelimiter: } @64
+                          rightParenthesis: ) @65
+                        declaredElement: GenericFunctionTypeElement
+                          parameters
+                            a
+                              kind: optional named
+                              type: int?
+                          returnType: String
+                          type: String Function({int? a})
                         type: String Function({int? a})
-                      type: String Function({int? a})
-                  rightBracket: > @66
-                element: <testLibraryFragment>::@class::A
-                type: A<String Function({int? a})>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::A::@constructor::new
-                substitution: {T: String Function({int? a})}
-            argumentList: ArgumentList
-              leftParenthesis: ( @67
-              rightParenthesis: ) @68
-            staticType: A<String Function({int? a})>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: A<String Function({int? a})>
+                    rightBracket: > @66
+                  element: <testLibraryFragment>::@class::A
+                  type: A<String Function({int? a})>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::A::@constructor::new
+                  substitution: {T: String Function({int? a})}
+              argumentList: ArgumentList
+                leftParenthesis: ( @67
+                rightParenthesis: ) @68
+              staticType: A<String Function({int? a})>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: A<String Function({int? a})>
 ''');
   }
 
@@ -41098,80 +41865,81 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    topLevelVariables
-      static const v @35
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: A<String Function([int?])>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            constructorName: ConstructorName
-              type: NamedType
-                name: A @39
-                typeArguments: TypeArgumentList
-                  leftBracket: < @40
-                  arguments
-                    GenericFunctionType
-                      returnType: NamedType
-                        name: String @41
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        leftDelimiter: [ @57
-                        parameter: DefaultFormalParameter
-                          parameter: SimpleFormalParameter
-                            type: NamedType
-                              name: int @58
-                              question: ? @61
-                              element: dart:core::<fragment>::@class::int
-                              type: int?
-                            name: a @63
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      topLevelVariables
+        static const v @35
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: A<String Function([int?])>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              constructorName: ConstructorName
+                type: NamedType
+                  name: A @39
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @40
+                    arguments
+                      GenericFunctionType
+                        returnType: NamedType
+                          name: String @41
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                        functionKeyword: Function @48
+                        parameters: FormalParameterList
+                          leftParenthesis: ( @56
+                          leftDelimiter: [ @57
+                          parameter: DefaultFormalParameter
+                            parameter: SimpleFormalParameter
+                              type: NamedType
+                                name: int @58
+                                question: ? @61
+                                element: dart:core::<fragment>::@class::int
+                                type: int?
+                              name: a @63
+                              declaredElement: a@63
+                                type: int?
                             declaredElement: a@63
                               type: int?
-                          declaredElement: a@63
-                            type: int?
-                        rightDelimiter: ] @64
-                        rightParenthesis: ) @65
-                      declaredElement: GenericFunctionTypeElement
-                        parameters
-                          a
-                            kind: optional positional
-                            type: int?
-                        returnType: String
+                          rightDelimiter: ] @64
+                          rightParenthesis: ) @65
+                        declaredElement: GenericFunctionTypeElement
+                          parameters
+                            a
+                              kind: optional positional
+                              type: int?
+                          returnType: String
+                          type: String Function([int?])
                         type: String Function([int?])
-                      type: String Function([int?])
-                  rightBracket: > @66
-                element: <testLibraryFragment>::@class::A
-                type: A<String Function([int?])>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::A::@constructor::new
-                substitution: {T: String Function([int?])}
-            argumentList: ArgumentList
-              leftParenthesis: ( @67
-              rightParenthesis: ) @68
-            staticType: A<String Function([int?])>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: A<String Function([int?])>
+                    rightBracket: > @66
+                  element: <testLibraryFragment>::@class::A
+                  type: A<String Function([int?])>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::A::@constructor::new
+                  substitution: {T: String Function([int?])}
+              argumentList: ArgumentList
+                leftParenthesis: ( @67
+                rightParenthesis: ) @68
+              staticType: A<String Function([int?])>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: A<String Function([int?])>
 ''');
   }
 
@@ -41186,80 +41954,81 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    topLevelVariables
-      static const v @35
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: A<String Function({required int a})>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            constructorName: ConstructorName
-              type: NamedType
-                name: A @39
-                typeArguments: TypeArgumentList
-                  leftBracket: < @40
-                  arguments
-                    GenericFunctionType
-                      returnType: NamedType
-                        name: String @41
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        leftDelimiter: { @57
-                        parameter: DefaultFormalParameter
-                          parameter: SimpleFormalParameter
-                            requiredKeyword: required @58
-                            type: NamedType
-                              name: int @67
-                              element: dart:core::<fragment>::@class::int
-                              type: int
-                            name: a @71
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      topLevelVariables
+        static const v @35
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: A<String Function({required int a})>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              constructorName: ConstructorName
+                type: NamedType
+                  name: A @39
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @40
+                    arguments
+                      GenericFunctionType
+                        returnType: NamedType
+                          name: String @41
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                        functionKeyword: Function @48
+                        parameters: FormalParameterList
+                          leftParenthesis: ( @56
+                          leftDelimiter: { @57
+                          parameter: DefaultFormalParameter
+                            parameter: SimpleFormalParameter
+                              requiredKeyword: required @58
+                              type: NamedType
+                                name: int @67
+                                element: dart:core::<fragment>::@class::int
+                                type: int
+                              name: a @71
+                              declaredElement: a@71
+                                type: int
                             declaredElement: a@71
                               type: int
-                          declaredElement: a@71
-                            type: int
-                        rightDelimiter: } @72
-                        rightParenthesis: ) @73
-                      declaredElement: GenericFunctionTypeElement
-                        parameters
-                          a
-                            kind: required named
-                            type: int
-                        returnType: String
+                          rightDelimiter: } @72
+                          rightParenthesis: ) @73
+                        declaredElement: GenericFunctionTypeElement
+                          parameters
+                            a
+                              kind: required named
+                              type: int
+                          returnType: String
+                          type: String Function({required int a})
                         type: String Function({required int a})
-                      type: String Function({required int a})
-                  rightBracket: > @74
-                element: <testLibraryFragment>::@class::A
-                type: A<String Function({required int a})>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::A::@constructor::new
-                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
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: A<String Function({required int a})>
+                    rightBracket: > @74
+                  element: <testLibraryFragment>::@class::A
+                  type: A<String Function({required int a})>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::A::@constructor::new
+                  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
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: A<String Function({required int a})>
 ''');
   }
 
@@ -41274,74 +42043,75 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          const @21
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-    topLevelVariables
-      static const v @35
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: A<String Function(int)>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            constructorName: ConstructorName
-              type: NamedType
-                name: A @39
-                typeArguments: TypeArgumentList
-                  leftBracket: < @40
-                  arguments
-                    GenericFunctionType
-                      returnType: NamedType
-                        name: String @41
-                        element: dart:core::<fragment>::@class::String
-                        type: String
-                      functionKeyword: Function @48
-                      parameters: FormalParameterList
-                        leftParenthesis: ( @56
-                        parameter: SimpleFormalParameter
-                          type: NamedType
-                            name: int @57
-                            element: dart:core::<fragment>::@class::int
-                            type: int
-                          name: a @61
-                          declaredElement: a@61
-                            type: int
-                        rightParenthesis: ) @62
-                      declaredElement: GenericFunctionTypeElement
-                        parameters
-                          a
-                            kind: required positional
-                            type: int
-                        returnType: String
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            const @21
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+      topLevelVariables
+        static const v @35
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: A<String Function(int)>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              constructorName: ConstructorName
+                type: NamedType
+                  name: A @39
+                  typeArguments: TypeArgumentList
+                    leftBracket: < @40
+                    arguments
+                      GenericFunctionType
+                        returnType: NamedType
+                          name: String @41
+                          element: dart:core::<fragment>::@class::String
+                          type: String
+                        functionKeyword: Function @48
+                        parameters: FormalParameterList
+                          leftParenthesis: ( @56
+                          parameter: SimpleFormalParameter
+                            type: NamedType
+                              name: int @57
+                              element: dart:core::<fragment>::@class::int
+                              type: int
+                            name: a @61
+                            declaredElement: a@61
+                              type: int
+                          rightParenthesis: ) @62
+                        declaredElement: GenericFunctionTypeElement
+                          parameters
+                            a
+                              kind: required positional
+                              type: int
+                          returnType: String
+                          type: String Function(int)
                         type: String Function(int)
-                      type: String Function(int)
-                  rightBracket: > @63
-                element: <testLibraryFragment>::@class::A
-                type: A<String Function(int)>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::A::@constructor::new
-                substitution: {T: String Function(int)}
-            argumentList: ArgumentList
-              leftParenthesis: ( @64
-              rightParenthesis: ) @65
-            staticType: A<String Function(int)>
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: A<String Function(int)>
+                    rightBracket: > @63
+                  element: <testLibraryFragment>::@class::A
+                  type: A<String Function(int)>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::A::@constructor::new
+                  substitution: {T: String Function(int)}
+              argumentList: ArgumentList
+                leftParenthesis: ( @64
+                rightParenthesis: ) @65
+              staticType: A<String Function(int)>
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: A<String Function(int)>
 ''');
   }
 
@@ -41352,19 +42122,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    mixins
-      mixin B @6
-        reference: <testLibraryFragment>::@mixin::B
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant X @8
-            bound: void Function()
-            defaultType: void Function()
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      mixins
+        mixin B @6
+          reference: <testLibraryFragment>::@mixin::B
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant X @8
+              bound: void Function()
+              defaultType: void Function()
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -41377,46 +42148,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class alias B @31
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A<void Function()>
-        mixins
-          M
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            constantInitializers
-              SuperConstructorInvocation
-                superKeyword: super @0
-                argumentList: ArgumentList
-                  leftParenthesis: ( @0
-                  rightParenthesis: ) @0
-                staticElement: <testLibraryFragment>::@class::A::@constructor::new
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::A::@constructor::new
-              substitution: {T: void Function()}
-    mixins
-      mixin M @20
-        reference: <testLibraryFragment>::@mixin::M
-        enclosingElement: <testLibraryFragment>
-        superclassConstraints
-          Object
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class alias B @31
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A<void Function()>
+          mixins
+            M
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              constantInitializers
+                SuperConstructorInvocation
+                  superKeyword: super @0
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @0
+                    rightParenthesis: ) @0
+                  staticElement: <testLibraryFragment>::@class::A::@constructor::new
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::A::@constructor::new
+                substitution: {T: void Function()}
+      mixins
+        mixin M @20
+          reference: <testLibraryFragment>::@mixin::M
+          enclosingElement: <testLibraryFragment>
+          superclassConstraints
+            Object
 ''');
   }
 
@@ -41428,31 +42200,32 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      F1 @8
-        reference: <testLibraryFragment>::@typeAlias::F1
-        aliasedType: dynamic Function<V1>(V1 Function())
-        aliasedElement: GenericFunctionTypeElement
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        F1 @8
+          reference: <testLibraryFragment>::@typeAlias::F1
+          aliasedType: dynamic Function<V1>(V1 Function())
+          aliasedElement: GenericFunctionTypeElement
+            typeParameters
+              covariant V1 @22
+            parameters
+              requiredPositional @-1
+                type: V1 Function()
+                  alias: <testLibraryFragment>::@typeAlias::F2
+                    typeArguments
+                      V1
+            returnType: dynamic
+        F2 @43
+          reference: <testLibraryFragment>::@typeAlias::F2
           typeParameters
-            covariant V1 @22
-          parameters
-            requiredPositional @-1
-              type: V1 Function()
-                alias: <testLibraryFragment>::@typeAlias::F2
-                  typeArguments
-                    V1
-          returnType: dynamic
-      F2 @43
-        reference: <testLibraryFragment>::@typeAlias::F2
-        typeParameters
-          covariant V2 @46
-            defaultType: dynamic
-        aliasedType: V2 Function()
-        aliasedElement: GenericFunctionTypeElement
-          returnType: V2
+            covariant V2 @46
+              defaultType: dynamic
+          aliasedType: V2 Function()
+          aliasedElement: GenericFunctionTypeElement
+            returnType: V2
 ''');
   }
 
@@ -41488,22 +42261,23 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      notSimplyBounded F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          unrelated X @10
-            bound: dynamic
-            defaultType: dynamic
-        aliasedType: dynamic Function(dynamic)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional @-1
-              type: dynamic
-          returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        notSimplyBounded F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            unrelated X @10
+              bound: dynamic
+              defaultType: dynamic
+          aliasedType: dynamic Function(dynamic)
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional @-1
+                type: dynamic
+            returnType: dynamic
 ''');
   }
 
@@ -41514,19 +42288,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static foo @-1
-        reference: <testLibraryFragment>::@topLevelVariable::foo
-        enclosingElement: <testLibraryFragment>
-        type: Future<int>
-    accessors
-      static get foo @16 async
-        reference: <testLibraryFragment>::@getter::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static foo @-1
+          reference: <testLibraryFragment>::@topLevelVariable::foo
+          enclosingElement: <testLibraryFragment>
+          type: Future<int>
+      accessors
+        static get foo @16 async
+          reference: <testLibraryFragment>::@getter::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<int>
 ''');
   }
 
@@ -41542,23 +42317,24 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      synthetic static foo @-1
-        reference: <testLibraryFragment>::@topLevelVariable::foo
-        enclosingElement: <testLibraryFragment>
-        type: Stream<int>
-    accessors
-      static get foo @37 async*
-        reference: <testLibraryFragment>::@getter::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: Stream<int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        synthetic static foo @-1
+          reference: <testLibraryFragment>::@topLevelVariable::foo
+          enclosingElement: <testLibraryFragment>
+          type: Stream<int>
+      accessors
+        static get foo @37 async*
+          reference: <testLibraryFragment>::@getter::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: Stream<int>
 ''');
   }
 
@@ -41572,20 +42348,21 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static x @-1
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-    accessors
-      static get x @64
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        documentationComment: /**\n * Docs\n */
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static x @-1
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+      accessors
+        static get x @64
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          documentationComment: /**\n * Docs\n */
+          returnType: dynamic
 ''');
   }
 
@@ -41594,19 +42371,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static x @-1
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int
-    accessors
-      static external get x @17
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static x @-1
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int
+      accessors
+        static external get x @17
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -41616,46 +42394,47 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        fields
-          synthetic f @-1
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        accessors
-          get f @24
-            reference: <testLibraryFragment>::@class::C::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-      abstract class D @52
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic f @-1
-            reference: <testLibraryFragment>::@class::D::@field::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          abstract get f @64
-            reference: <testLibraryFragment>::@class::D::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          fields
+            synthetic f @-1
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          accessors
+            get f @24
+              reference: <testLibraryFragment>::@class::C::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+        abstract class D @52
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic f @-1
+              reference: <testLibraryFragment>::@class::D::@field::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            abstract get f @64
+              reference: <testLibraryFragment>::@class::D::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: int
 ''');
   }
 
@@ -41666,19 +42445,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static foo @-1
-        reference: <testLibraryFragment>::@topLevelVariable::foo
-        enclosingElement: <testLibraryFragment>
-        type: Iterator<int>
-    accessors
-      static get foo @18 sync*
-        reference: <testLibraryFragment>::@getter::foo
-        enclosingElement: <testLibraryFragment>
-        returnType: Iterator<int>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static foo @-1
+          reference: <testLibraryFragment>::@topLevelVariable::foo
+          enclosingElement: <testLibraryFragment>
+          type: Iterator<int>
+      accessors
+        static get foo @18 sync*
+          reference: <testLibraryFragment>::@getter::foo
+          enclosingElement: <testLibraryFragment>
+          returnType: Iterator<int>
 ''');
   }
 
@@ -41687,27 +42467,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static x @-1
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int
-      synthetic static y @-1
-        reference: <testLibraryFragment>::@topLevelVariable::y
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-    accessors
-      static get x @8
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      static get y @23
-        reference: <testLibraryFragment>::@getter::y
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static x @-1
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int
+        synthetic static y @-1
+          reference: <testLibraryFragment>::@topLevelVariable::y
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+      accessors
+        static get x @8
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        static get y @23
+          reference: <testLibraryFragment>::@getter::y
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
 ''');
   }
 
@@ -41726,61 +42507,62 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          call @17
-            reference: <testLibraryFragment>::@class::C::@method::call
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: void
-      class D @36
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @48
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional c @52
-                type: C
-            constantInitializers
-              RedirectingConstructorInvocation
-                thisKeyword: this @57
-                period: . @61
-                constructorName: SimpleIdentifier
-                  token: named @62
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            call @17
+              reference: <testLibraryFragment>::@class::C::@method::call
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: void
+        class D @36
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @48
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional c @52
+                  type: C
+              constantInitializers
+                RedirectingConstructorInvocation
+                  thisKeyword: this @57
+                  period: . @61
+                  constructorName: SimpleIdentifier
+                    token: named @62
+                    staticElement: <testLibraryFragment>::@class::D::@constructor::named
+                    staticType: null
+                  argumentList: ArgumentList
+                    leftParenthesis: ( @67
+                    arguments
+                      ImplicitCallReference
+                        expression: SimpleIdentifier
+                          token: c @68
+                          staticElement: <testLibraryFragment>::@class::D::@constructor::new::@parameter::c
+                          staticType: C
+                        staticElement: <testLibraryFragment>::@class::C::@method::call
+                        staticType: void Function()
+                    rightParenthesis: ) @69
                   staticElement: <testLibraryFragment>::@class::D::@constructor::named
-                  staticType: null
-                argumentList: ArgumentList
-                  leftParenthesis: ( @67
-                  arguments
-                    ImplicitCallReference
-                      expression: SimpleIdentifier
-                        token: c @68
-                        staticElement: <testLibraryFragment>::@class::D::@constructor::new::@parameter::c
-                        staticType: C
-                      staticElement: <testLibraryFragment>::@class::C::@method::call
-                      staticType: void Function()
-                  rightParenthesis: ) @69
-                staticElement: <testLibraryFragment>::@class::D::@constructor::named
-            redirectedConstructor: <testLibraryFragment>::@class::D::@constructor::named
-          const named @83
-            reference: <testLibraryFragment>::@class::D::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::D
-            periodOffset: 82
-            nameEnd: 88
-            parameters
-              requiredPositional f @105
-                type: void Function()
+              redirectedConstructor: <testLibraryFragment>::@class::D::@constructor::named
+            const named @83
+              reference: <testLibraryFragment>::@class::D::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::D
+              periodOffset: 82
+              nameEnd: 88
+              parameters
+                requiredPositional f @105
+                  type: void Function()
 ''');
   }
 
@@ -41795,65 +42577,66 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          final x @25
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: Object
-        constructors
-          const named @38
-            reference: <testLibraryFragment>::@class::C::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 37
-            nameEnd: 43
-            parameters
-              requiredPositional final this.x @49
-                type: Object
-                field: <testLibraryFragment>::@class::C::@field::x
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: Object
-    topLevelVariables
-      static const x @61
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @65
-                element: <testLibraryFragment>::@class::C
-                type: C
-              period: . @66
-              name: SimpleIdentifier
-                token: named @67
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            final x @25
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: Object
+          constructors
+            const named @38
+              reference: <testLibraryFragment>::@class::C::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 37
+              nameEnd: 43
+              parameters
+                requiredPositional final this.x @49
+                  type: Object
+                  field: <testLibraryFragment>::@class::C::@field::x
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: Object
+      topLevelVariables
+        static const x @61
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @65
+                  element: <testLibraryFragment>::@class::C
+                  type: C
+                period: . @66
+                name: SimpleIdentifier
+                  token: named @67
+                  staticElement: <testLibraryFragment>::@class::C::@constructor::named
+                  staticType: null
                 staticElement: <testLibraryFragment>::@class::C::@constructor::named
-                staticType: null
-              staticElement: <testLibraryFragment>::@class::C::@constructor::named
-            argumentList: ArgumentList
-              leftParenthesis: ( @72
-              arguments
-                IntegerLiteral
-                  literal: 42 @73
-                  staticType: int
-              rightParenthesis: ) @75
-            staticType: C
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: C
+              argumentList: ArgumentList
+                leftParenthesis: ( @72
+                arguments
+                  IntegerLiteral
+                    literal: 42 @73
+                    staticType: int
+                rightParenthesis: ) @75
+              staticType: C
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: C
 ''');
   }
 
@@ -41864,33 +42647,34 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static x @-1
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int
-        id: variable_0
-        getter: getter_0
-        setter: setter_0
-    accessors
-      static get x @8
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-        id: getter_0
-        variable: variable_0
-      static set x= @25
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional value @31
-            type: int
-        returnType: void
-        id: setter_0
-        variable: variable_0
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static x @-1
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int
+          id: variable_0
+          getter: getter_0
+          setter: setter_0
+      accessors
+        static get x @8
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+          id: getter_0
+          variable: variable_0
+        static set x= @25
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional value @31
+              type: int
+          returnType: void
+          id: setter_0
+          variable: variable_0
 ''');
   }
 
@@ -41900,26 +42684,27 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      synthetic static x @-1
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int
-    accessors
-      static set x= @9
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional value @15
-            type: int
-        returnType: void
-      static get x @33
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        synthetic static x @-1
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int
+      accessors
+        static set x= @9
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional value @15
+              type: int
+          returnType: void
+        static get x @33
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int
 ''');
   }
 
@@ -41944,23 +42729,24 @@
     package:test/foo.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @104
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @104
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo.dart');
@@ -41988,23 +42774,24 @@
     package:test/foo_io.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo_io.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @104
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo_io.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo_io.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @104
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo_io.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo_io.dart');
@@ -42032,23 +42819,24 @@
     package:test/foo_io.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo_io.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @124
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo_io.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo_io.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @124
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo_io.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo_io.dart');
@@ -42076,23 +42864,24 @@
     package:test/foo_html.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo_html.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @104
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo_html.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo_html.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @104
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo_html.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo_html.dart');
@@ -42120,23 +42909,24 @@
     package:test/foo_html.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo_html.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @124
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/foo_html.dart::<fragment>::@class::A::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo_html.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @124
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/foo_html.dart::<fragment>::@class::A::@constructor::new
 ''');
     var typeA = library.definingCompilationUnit.getClass('B')!.supertype!;
     expect(typeA.element.source.shortName, 'foo_html.dart');
@@ -42157,16 +42947,17 @@
     dart:math
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:core
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      dart:math
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:core
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        dart:math
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
 ''');
   }
 
@@ -42181,13 +42972,14 @@
     dart:math
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:math
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:math
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
 ''');
   }
 
@@ -42208,18 +43000,19 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart deferred as p @28
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @28
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart deferred as p @28
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @28
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
 ''');
   }
 
@@ -42268,42 +43061,43 @@
     dart:math
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async as i1 @23
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      dart:async as i2 @70
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      dart:async as i3 @117
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      i1 @23
-        reference: <testLibraryFragment>::@prefix::i1
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      i2 @70
-        reference: <testLibraryFragment>::@prefix::i2
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      i3 @117
-        reference: <testLibraryFragment>::@prefix::i3
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryExports
-      dart:math
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      dart:math
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      dart:math
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async as i1 @23
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        dart:async as i2 @70
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        dart:async as i3 @117
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        i1 @23
+          reference: <testLibraryFragment>::@prefix::i1
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        i2 @70
+          reference: <testLibraryFragment>::@prefix::i2
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        i3 @117
+          reference: <testLibraryFragment>::@prefix::i3
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryExports
+        dart:math
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        dart:math
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        dart:math
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
 ''');
   }
 
@@ -42320,32 +43114,33 @@
       enclosingElement3: <testLibraryFragment>
       combinators
         hide: Stream, Completer
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          hide: Stream, Completer
-    topLevelVariables
-      static f @51
-        reference: <testLibraryFragment>::@topLevelVariable::f
-        enclosingElement: <testLibraryFragment>
-        type: Future<dynamic>
-    accessors
-      synthetic static get f @-1
-        reference: <testLibraryFragment>::@getter::f
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<dynamic>
-      synthetic static set f= @-1
-        reference: <testLibraryFragment>::@setter::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _f @-1
-            type: Future<dynamic>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            hide: Stream, Completer
+      topLevelVariables
+        static f @51
+          reference: <testLibraryFragment>::@topLevelVariable::f
+          enclosingElement: <testLibraryFragment>
+          type: Future<dynamic>
+      accessors
+        synthetic static get f @-1
+          reference: <testLibraryFragment>::@getter::f
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<dynamic>
+        synthetic static set f= @-1
+          reference: <testLibraryFragment>::@setter::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _f @-1
+              type: Future<dynamic>
+          returnType: void
 ''');
   }
 
@@ -42387,21 +43182,22 @@
             staticElement: <null>
             staticType: null
           element: <null>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      relativeUri 'ht:'
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        metadata
-          Annotation
-            atSign: @ @0
-            name: SimpleIdentifier
-              token: foo @1
-              staticElement: <null>
-              staticType: null
-            element: <null>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        relativeUri 'ht:'
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          metadata
+            Annotation
+              atSign: @ @0
+              name: SimpleIdentifier
+                token: foo @1
+                staticElement: <null>
+                staticType: null
+              element: <null>
 ''');
   }
 
@@ -42420,33 +43216,34 @@
       combinators
         hide: Stream
         show: Future
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          hide: Stream
-          show: Future
-    topLevelVariables
-      static f @52
-        reference: <testLibraryFragment>::@topLevelVariable::f
-        enclosingElement: <testLibraryFragment>
-        type: Future<dynamic>
-    accessors
-      synthetic static get f @-1
-        reference: <testLibraryFragment>::@getter::f
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<dynamic>
-      synthetic static set f= @-1
-        reference: <testLibraryFragment>::@setter::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _f @-1
-            type: Future<dynamic>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            hide: Stream
+            show: Future
+      topLevelVariables
+        static f @52
+          reference: <testLibraryFragment>::@topLevelVariable::f
+          enclosingElement: <testLibraryFragment>
+          type: Future<dynamic>
+      accessors
+        synthetic static get f @-1
+          reference: <testLibraryFragment>::@getter::f
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<dynamic>
+        synthetic static set f= @-1
+          reference: <testLibraryFragment>::@setter::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _f @-1
+              type: Future<dynamic>
+          returnType: void
 ''');
   }
 
@@ -42469,35 +43266,36 @@
       reference: <testLibraryFragment>::@prefix::a
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart as a @19
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      a @19
-        reference: <testLibraryFragment>::@prefix::a
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static c @26
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: C
-    accessors
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: C
-      synthetic static set c= @-1
-        reference: <testLibraryFragment>::@setter::c
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _c @-1
-            type: C
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart as a @19
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        a @19
+          reference: <testLibraryFragment>::@prefix::a
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static c @26
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: C
+      accessors
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: C
+        synthetic static set c= @-1
+          reference: <testLibraryFragment>::@setter::c
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _c @-1
+              type: C
+          returnType: void
 ''');
   }
 
@@ -42523,35 +43321,36 @@
       reference: <testLibraryFragment>::@prefix::p
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/test.dart as p @22
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      p @22
-        reference: <testLibraryFragment>::@prefix::p
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @31
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @42
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: C
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            superConstructor: <testLibraryFragment>::@class::C::@constructor::new
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/test.dart as p @22
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        p @22
+          reference: <testLibraryFragment>::@prefix::p
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @31
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @42
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: C
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              superConstructor: <testLibraryFragment>::@class::C::@constructor::new
 ''');
   }
 
@@ -42570,47 +43369,48 @@
       enclosingElement3: <testLibraryFragment>
       combinators
         show: Future, Stream
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-        combinators
-          show: Future, Stream
-    topLevelVariables
-      static f @48
-        reference: <testLibraryFragment>::@topLevelVariable::f
-        enclosingElement: <testLibraryFragment>
-        type: Future<dynamic>
-      static s @58
-        reference: <testLibraryFragment>::@topLevelVariable::s
-        enclosingElement: <testLibraryFragment>
-        type: Stream<dynamic>
-    accessors
-      synthetic static get f @-1
-        reference: <testLibraryFragment>::@getter::f
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<dynamic>
-      synthetic static set f= @-1
-        reference: <testLibraryFragment>::@setter::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _f @-1
-            type: Future<dynamic>
-        returnType: void
-      synthetic static get s @-1
-        reference: <testLibraryFragment>::@getter::s
-        enclosingElement: <testLibraryFragment>
-        returnType: Stream<dynamic>
-      synthetic static set s= @-1
-        reference: <testLibraryFragment>::@setter::s
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _s @-1
-            type: Stream<dynamic>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+          combinators
+            show: Future, Stream
+      topLevelVariables
+        static f @48
+          reference: <testLibraryFragment>::@topLevelVariable::f
+          enclosingElement: <testLibraryFragment>
+          type: Future<dynamic>
+        static s @58
+          reference: <testLibraryFragment>::@topLevelVariable::s
+          enclosingElement: <testLibraryFragment>
+          type: Stream<dynamic>
+      accessors
+        synthetic static get f @-1
+          reference: <testLibraryFragment>::@getter::f
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<dynamic>
+        synthetic static set f= @-1
+          reference: <testLibraryFragment>::@setter::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _f @-1
+              type: Future<dynamic>
+          returnType: void
+        synthetic static get s @-1
+          reference: <testLibraryFragment>::@getter::s
+          enclosingElement: <testLibraryFragment>
+          returnType: Stream<dynamic>
+        synthetic static set s= @-1
+          reference: <testLibraryFragment>::@setter::s
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _s @-1
+              type: Stream<dynamic>
+          returnType: void
 ''');
   }
 
@@ -42648,48 +43448,49 @@
     package:test/b.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-      package:test/b.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static c @36
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: C
-      static d @41
-        reference: <testLibraryFragment>::@topLevelVariable::d
-        enclosingElement: <testLibraryFragment>
-        type: D
-    accessors
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: C
-      synthetic static set c= @-1
-        reference: <testLibraryFragment>::@setter::c
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _c @-1
-            type: C
-        returnType: void
-      synthetic static get d @-1
-        reference: <testLibraryFragment>::@getter::d
-        enclosingElement: <testLibraryFragment>
-        returnType: D
-      synthetic static set d= @-1
-        reference: <testLibraryFragment>::@setter::d
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _d @-1
-            type: D
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+        package:test/b.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static c @36
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: C
+        static d @41
+          reference: <testLibraryFragment>::@topLevelVariable::d
+          enclosingElement: <testLibraryFragment>
+          type: D
+      accessors
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: C
+        synthetic static set c= @-1
+          reference: <testLibraryFragment>::@setter::c
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _c @-1
+              type: C
+          returnType: void
+        synthetic static get d @-1
+          reference: <testLibraryFragment>::@getter::d
+          enclosingElement: <testLibraryFragment>
+          returnType: D
+        synthetic static set d= @-1
+          reference: <testLibraryFragment>::@setter::d
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _d @-1
+              type: D
+          returnType: void
 ''');
   }
 
@@ -42706,88 +43507,89 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @43
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant V @45
-            defaultType: dynamic
-        constructors
-          const @58
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional f @65
-                type: D<V, U> Function<U>()
-                  alias: <testLibraryFragment>::@typeAlias::F
-                    typeArguments
-                      V
-      class D @77
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @79
-            defaultType: dynamic
-          covariant U @81
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-    typeAliases
-      F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        typeParameters
-          covariant T @10
-            defaultType: dynamic
-        aliasedType: D<T, U> Function<U>()
-        aliasedElement: GenericFunctionTypeElement
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @43
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
           typeParameters
-            covariant U @31
-          returnType: D<T, U>
-    topLevelVariables
-      static const x @118
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: C<int>
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @122
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @128
-                element: <testLibraryFragment>::@class::C
-                type: C<int>
-              staticElement: ConstructorMember
-                base: <testLibraryFragment>::@class::C::@constructor::new
-                substitution: {V: int}
-            argumentList: ArgumentList
-              leftParenthesis: ( @129
-              arguments
-                SimpleIdentifier
-                  token: f @130
-                  staticElement: <testLibraryFragment>::@function::f
-                  staticType: D<int, U> Function<U>()
-              rightParenthesis: ) @131
-            staticType: C<int>
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: C<int>
-    functions
-      f @96
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @98
-            defaultType: dynamic
-        returnType: D<int, U>
+            covariant V @45
+              defaultType: dynamic
+          constructors
+            const @58
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional f @65
+                  type: D<V, U> Function<U>()
+                    alias: <testLibraryFragment>::@typeAlias::F
+                      typeArguments
+                        V
+        class D @77
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @79
+              defaultType: dynamic
+            covariant U @81
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+      typeAliases
+        F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          typeParameters
+            covariant T @10
+              defaultType: dynamic
+          aliasedType: D<T, U> Function<U>()
+          aliasedElement: GenericFunctionTypeElement
+            typeParameters
+              covariant U @31
+            returnType: D<T, U>
+      topLevelVariables
+        static const x @118
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: C<int>
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @122
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @128
+                  element: <testLibraryFragment>::@class::C
+                  type: C<int>
+                staticElement: ConstructorMember
+                  base: <testLibraryFragment>::@class::C::@constructor::new
+                  substitution: {V: int}
+              argumentList: ArgumentList
+                leftParenthesis: ( @129
+                arguments
+                  SimpleIdentifier
+                    token: f @130
+                    staticElement: <testLibraryFragment>::@function::f
+                    staticType: D<int, U> Function<U>()
+                rightParenthesis: ) @131
+              staticType: C<int>
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: C<int>
+      functions
+        f @96
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @98
+              defaultType: dynamic
+          returnType: D<int, U>
 ''');
   }
 
@@ -42804,76 +43606,77 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @38
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          const @50
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional f @54
-                type: D<T> Function<T>()
-                  alias: <testLibraryFragment>::@typeAlias::F
-      class D @66
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @68
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-    typeAliases
-      F @8
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: D<T> Function<T>()
-        aliasedElement: GenericFunctionTypeElement
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @38
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            const @50
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional f @54
+                  type: D<T> Function<T>()
+                    alias: <testLibraryFragment>::@typeAlias::F
+        class D @66
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
           typeParameters
-            covariant T @26
+            covariant T @68
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+      typeAliases
+        F @8
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: D<T> Function<T>()
+          aliasedElement: GenericFunctionTypeElement
+            typeParameters
+              covariant T @26
+            returnType: D<T>
+      topLevelVariables
+        static const x @101
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+          constantInitializer
+            InstanceCreationExpression
+              keyword: const @105
+              constructorName: ConstructorName
+                type: NamedType
+                  name: C @111
+                  element: <testLibraryFragment>::@class::C
+                  type: C
+                staticElement: <testLibraryFragment>::@class::C::@constructor::new
+              argumentList: ArgumentList
+                leftParenthesis: ( @112
+                arguments
+                  SimpleIdentifier
+                    token: f @113
+                    staticElement: <testLibraryFragment>::@function::f
+                    staticType: D<T> Function<T>()
+                rightParenthesis: ) @114
+              staticType: C
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: C
+      functions
+        f @79
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @81
+              defaultType: dynamic
           returnType: D<T>
-    topLevelVariables
-      static const x @101
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-        constantInitializer
-          InstanceCreationExpression
-            keyword: const @105
-            constructorName: ConstructorName
-              type: NamedType
-                name: C @111
-                element: <testLibraryFragment>::@class::C
-                type: C
-              staticElement: <testLibraryFragment>::@class::C::@constructor::new
-            argumentList: ArgumentList
-              leftParenthesis: ( @112
-              arguments
-                SimpleIdentifier
-                  token: f @113
-                  staticElement: <testLibraryFragment>::@function::f
-                  staticType: D<T> Function<T>()
-              rightParenthesis: ) @114
-            staticType: C
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: C
-    functions
-      f @79
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @81
-            defaultType: dynamic
-        returnType: D<T>
 ''');
   }
 
@@ -42892,58 +43695,59 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-      class B @18
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: <testLibraryFragment>::@class::A::@constructor::new
-      class S @40
-        reference: <testLibraryFragment>::@class::S
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @42
-            bound: A
-            defaultType: A
-        constructors
-          @59
-            reference: <testLibraryFragment>::@class::S::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::S
-            parameters
-              requiredPositional _ @63
-                type: T
-    topLevelVariables
-      static s @74
-        reference: <testLibraryFragment>::@topLevelVariable::s
-        enclosingElement: <testLibraryFragment>
-        type: S<B>
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get s @-1
-        reference: <testLibraryFragment>::@getter::s
-        enclosingElement: <testLibraryFragment>
-        returnType: S<B>
-      synthetic static set s= @-1
-        reference: <testLibraryFragment>::@setter::s
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _s @-1
-            type: S<B>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+        class B @18
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: <testLibraryFragment>::@class::A::@constructor::new
+        class S @40
+          reference: <testLibraryFragment>::@class::S
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @42
+              bound: A
+              defaultType: A
+          constructors
+            @59
+              reference: <testLibraryFragment>::@class::S::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::S
+              parameters
+                requiredPositional _ @63
+                  type: T
+      topLevelVariables
+        static s @74
+          reference: <testLibraryFragment>::@topLevelVariable::s
+          enclosingElement: <testLibraryFragment>
+          type: S<B>
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get s @-1
+          reference: <testLibraryFragment>::@getter::s
+          enclosingElement: <testLibraryFragment>
+          returnType: S<B>
+        synthetic static set s= @-1
+          reference: <testLibraryFragment>::@setter::s
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _s @-1
+              type: S<B>
+          returnType: void
 ''');
   }
 
@@ -42964,108 +43768,109 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          b @14
-            reference: <testLibraryFragment>::@class::A::@field::b
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: B
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic get b @-1
-            reference: <testLibraryFragment>::@class::A::@getter::b
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: B
-          synthetic set b= @-1
-            reference: <testLibraryFragment>::@class::A::@setter::b
-            enclosingElement: <testLibraryFragment>::@class::A
-            parameters
-              requiredPositional _b @-1
-                type: B
-            returnType: void
-      class B @25
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic c @-1
-            reference: <testLibraryFragment>::@class::B::@field::c
-            enclosingElement: <testLibraryFragment>::@class::B
-            type: C
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-        accessors
-          get c @37
-            reference: <testLibraryFragment>::@class::B::@getter::c
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: C
-          set c= @59
-            reference: <testLibraryFragment>::@class::B::@setter::c
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional value @63
-                type: C
-            returnType: void
-      class C @81
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      class D @92
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: C
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            superConstructor: <testLibraryFragment>::@class::C::@constructor::new
-    topLevelVariables
-      static a @111
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        type: A
-        shouldUseTypeForInitializerInference: false
-      static x @128
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: C
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: A
-      synthetic static set a= @-1
-        reference: <testLibraryFragment>::@setter::a
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _a @-1
-            type: A
-        returnType: void
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: C
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: C
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            b @14
+              reference: <testLibraryFragment>::@class::A::@field::b
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: B
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic get b @-1
+              reference: <testLibraryFragment>::@class::A::@getter::b
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: B
+            synthetic set b= @-1
+              reference: <testLibraryFragment>::@class::A::@setter::b
+              enclosingElement: <testLibraryFragment>::@class::A
+              parameters
+                requiredPositional _b @-1
+                  type: B
+              returnType: void
+        class B @25
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic c @-1
+              reference: <testLibraryFragment>::@class::B::@field::c
+              enclosingElement: <testLibraryFragment>::@class::B
+              type: C
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+          accessors
+            get c @37
+              reference: <testLibraryFragment>::@class::B::@getter::c
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: C
+            set c= @59
+              reference: <testLibraryFragment>::@class::B::@setter::c
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional value @63
+                  type: C
+              returnType: void
+        class C @81
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        class D @92
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: C
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              superConstructor: <testLibraryFragment>::@class::C::@constructor::new
+      topLevelVariables
+        static a @111
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          type: A
+          shouldUseTypeForInitializerInference: false
+        static x @128
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: C
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+        synthetic static set a= @-1
+          reference: <testLibraryFragment>::@setter::a
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _a @-1
+              type: A
+          returnType: void
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: C
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: C
+          returnType: void
 ''');
   }
 
@@ -43079,59 +43884,60 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static x @4
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: Iterable<String>
-        shouldUseTypeForInitializerInference: false
-      static y @40
-        reference: <testLibraryFragment>::@topLevelVariable::y
-        enclosingElement: <testLibraryFragment>
-        type: List<int>
-        shouldUseTypeForInitializerInference: false
-      static z @53
-        reference: <testLibraryFragment>::@topLevelVariable::z
-        enclosingElement: <testLibraryFragment>
-        type: List<String>
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: Iterable<String>
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: Iterable<String>
-        returnType: void
-      synthetic static get y @-1
-        reference: <testLibraryFragment>::@getter::y
-        enclosingElement: <testLibraryFragment>
-        returnType: List<int>
-      synthetic static set y= @-1
-        reference: <testLibraryFragment>::@setter::y
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _y @-1
-            type: List<int>
-        returnType: void
-      synthetic static get z @-1
-        reference: <testLibraryFragment>::@getter::z
-        enclosingElement: <testLibraryFragment>
-        returnType: List<String>
-      synthetic static set z= @-1
-        reference: <testLibraryFragment>::@setter::z
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _z @-1
-            type: List<String>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static x @4
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: Iterable<String>
+          shouldUseTypeForInitializerInference: false
+        static y @40
+          reference: <testLibraryFragment>::@topLevelVariable::y
+          enclosingElement: <testLibraryFragment>
+          type: List<int>
+          shouldUseTypeForInitializerInference: false
+        static z @53
+          reference: <testLibraryFragment>::@topLevelVariable::z
+          enclosingElement: <testLibraryFragment>
+          type: List<String>
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: Iterable<String>
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: Iterable<String>
+          returnType: void
+        synthetic static get y @-1
+          reference: <testLibraryFragment>::@getter::y
+          enclosingElement: <testLibraryFragment>
+          returnType: List<int>
+        synthetic static set y= @-1
+          reference: <testLibraryFragment>::@setter::y
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _y @-1
+              type: List<int>
+          returnType: void
+        synthetic static get z @-1
+          reference: <testLibraryFragment>::@getter::z
+          enclosingElement: <testLibraryFragment>
+          returnType: List<String>
+        synthetic static set z= @-1
+          reference: <testLibraryFragment>::@setter::z
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _z @-1
+              type: List<String>
+          returnType: void
 ''');
   }
 
@@ -43146,68 +43952,69 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          p @16
-            reference: <testLibraryFragment>::@class::C::@field::p
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get p @-1
-            reference: <testLibraryFragment>::@class::C::@getter::p
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int
-          synthetic set p= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::p
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _p @-1
-                type: int
-            returnType: void
-    topLevelVariables
-      static x @25
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: List<C>
-        shouldUseTypeForInitializerInference: false
-      static y @40
-        reference: <testLibraryFragment>::@topLevelVariable::y
-        enclosingElement: <testLibraryFragment>
-        type: Iterable<int>
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: List<C>
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: List<C>
-        returnType: void
-      synthetic static get y @-1
-        reference: <testLibraryFragment>::@getter::y
-        enclosingElement: <testLibraryFragment>
-        returnType: Iterable<int>
-      synthetic static set y= @-1
-        reference: <testLibraryFragment>::@setter::y
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _y @-1
-            type: Iterable<int>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            p @16
+              reference: <testLibraryFragment>::@class::C::@field::p
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get p @-1
+              reference: <testLibraryFragment>::@class::C::@getter::p
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int
+            synthetic set p= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::p
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _p @-1
+                  type: int
+              returnType: void
+      topLevelVariables
+        static x @25
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: List<C>
+          shouldUseTypeForInitializerInference: false
+        static y @40
+          reference: <testLibraryFragment>::@topLevelVariable::y
+          enclosingElement: <testLibraryFragment>
+          type: Iterable<int>
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: List<C>
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: List<C>
+          returnType: void
+        synthetic static get y @-1
+          reference: <testLibraryFragment>::@getter::y
+          enclosingElement: <testLibraryFragment>
+          returnType: Iterable<int>
+        synthetic static set y= @-1
+          reference: <testLibraryFragment>::@setter::y
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _y @-1
+              type: Iterable<int>
+          returnType: void
 ''');
   }
 
@@ -43222,19 +44029,20 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @2
-            defaultType: dynamic
-          covariant V @5
-            defaultType: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @2
+              defaultType: dynamic
+            covariant V @5
+              defaultType: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -43250,32 +44058,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @8
-            defaultType: dynamic
-          covariant V @11
-            defaultType: dynamic
-        fields
-          final x @24
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          @29
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get x @-1
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @8
+              defaultType: dynamic
+            covariant V @11
+              defaultType: dynamic
+          fields
+            final x @24
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            @29
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get x @-1
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -43290,32 +44099,33 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @8
-            defaultType: dynamic
-          covariant V @11
-            defaultType: dynamic
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          get x @22
-            reference: <testLibraryFragment>::@class::C::@getter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @8
+              defaultType: dynamic
+            covariant V @11
+              defaultType: dynamic
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            get x @22
+              reference: <testLibraryFragment>::@class::C::@getter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: dynamic
 ''');
   }
 
@@ -43333,30 +44143,31 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        methods
-          f @15
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            typeParameters
-              covariant U @17
-                defaultType: dynamic
-              covariant V @20
-                defaultType: dynamic
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          methods
+            f @15
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              typeParameters
+                covariant U @17
+                  defaultType: dynamic
+                covariant V @20
+                  defaultType: dynamic
+              returnType: dynamic
 ''');
   }
 
@@ -43373,35 +44184,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @8
-            defaultType: dynamic
-          covariant V @11
-            defaultType: dynamic
-        fields
-          synthetic x @-1
-            reference: <testLibraryFragment>::@class::C::@field::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          set x= @27
-            reference: <testLibraryFragment>::@class::C::@setter::x
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional value @29
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @8
+              defaultType: dynamic
+            covariant V @11
+              defaultType: dynamic
+          fields
+            synthetic x @-1
+              reference: <testLibraryFragment>::@class::C::@field::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            set x= @27
+              reference: <testLibraryFragment>::@class::C::@setter::x
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional value @29
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -43416,17 +44228,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @2
-            defaultType: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @2
+              defaultType: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -43441,17 +44254,18 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @2
-            defaultType: dynamic
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @2
+              defaultType: dynamic
+          returnType: dynamic
 ''');
   }
 
@@ -43467,47 +44281,48 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant P @8
-            bound: num
-            defaultType: num
-        constructors
-          factory @35
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional p @49
-                type: Iterable<P>
-          _ @66
-            reference: <testLibraryFragment>::@class::C::@constructor::_
-            enclosingElement: <testLibraryFragment>::@class::C
-            periodOffset: 65
-            nameEnd: 67
-    topLevelVariables
-      static c @78
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: C<dynamic>
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: C<dynamic>
-      synthetic static set c= @-1
-        reference: <testLibraryFragment>::@setter::c
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _c @-1
-            type: C<dynamic>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant P @8
+              bound: num
+              defaultType: num
+          constructors
+            factory @35
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional p @49
+                  type: Iterable<P>
+            _ @66
+              reference: <testLibraryFragment>::@class::C::@constructor::_
+              enclosingElement: <testLibraryFragment>::@class::C
+              periodOffset: 65
+              nameEnd: 67
+      topLevelVariables
+        static c @78
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: C<dynamic>
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: C<dynamic>
+        synthetic static set c= @-1
+          reference: <testLibraryFragment>::@setter::c
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _c @-1
+              type: C<dynamic>
+          returnType: void
 ''');
   }
 
@@ -43523,42 +44338,43 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        fields
-          static final foo @25
-            reference: <testLibraryFragment>::@class::A::@field::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int
-            shouldUseTypeForInitializerInference: false
-          static final bar @56
-            reference: <testLibraryFragment>::@class::A::@field::bar
-            enclosingElement: <testLibraryFragment>::@class::A
-            type: int Function(double)
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        accessors
-          synthetic static get foo @-1
-            reference: <testLibraryFragment>::@class::A::@getter::foo
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-          synthetic static get bar @-1
-            reference: <testLibraryFragment>::@class::A::@getter::bar
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int Function(double)
-        methods
-          static baz @100
-            reference: <testLibraryFragment>::@class::A::@method::baz
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int Function(double)
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          fields
+            static final foo @25
+              reference: <testLibraryFragment>::@class::A::@field::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int
+              shouldUseTypeForInitializerInference: false
+            static final bar @56
+              reference: <testLibraryFragment>::@class::A::@field::bar
+              enclosingElement: <testLibraryFragment>::@class::A
+              type: int Function(double)
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          accessors
+            synthetic static get foo @-1
+              reference: <testLibraryFragment>::@class::A::@getter::foo
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+            synthetic static get bar @-1
+              reference: <testLibraryFragment>::@class::A::@getter::bar
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int Function(double)
+          methods
+            static baz @100
+              reference: <testLibraryFragment>::@class::A::@method::baz
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int Function(double)
 ''');
   }
 
@@ -43575,35 +44391,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static x @21
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: int
-        returnType: void
-    functions
-      m @4
-        reference: <testLibraryFragment>::@function::m
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @6
-            defaultType: dynamic
-        returnType: int
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static x @21
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: int
+          returnType: void
+      functions
+        m @4
+          reference: <testLibraryFragment>::@function::m
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @6
+              defaultType: dynamic
+          returnType: int
 ''');
   }
 
@@ -43621,59 +44438,60 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static m @19
-        reference: <testLibraryFragment>::@topLevelVariable::m
-        enclosingElement: <testLibraryFragment>
-        type: int Function<T>()?
-        shouldUseTypeForInitializerInference: true
-      static n @53
-        reference: <testLibraryFragment>::@topLevelVariable::n
-        enclosingElement: <testLibraryFragment>
-        type: int Function<T>()
-        shouldUseTypeForInitializerInference: true
-      static x @73
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get m @-1
-        reference: <testLibraryFragment>::@getter::m
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function<T>()?
-      synthetic static set m= @-1
-        reference: <testLibraryFragment>::@setter::m
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _m @-1
-            type: int Function<T>()?
-        returnType: void
-      synthetic static get n @-1
-        reference: <testLibraryFragment>::@getter::n
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function<T>()
-      synthetic static set n= @-1
-        reference: <testLibraryFragment>::@setter::n
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _n @-1
-            type: int Function<T>()
-        returnType: void
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: int
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static m @19
+          reference: <testLibraryFragment>::@topLevelVariable::m
+          enclosingElement: <testLibraryFragment>
+          type: int Function<T>()?
+          shouldUseTypeForInitializerInference: true
+        static n @53
+          reference: <testLibraryFragment>::@topLevelVariable::n
+          enclosingElement: <testLibraryFragment>
+          type: int Function<T>()
+          shouldUseTypeForInitializerInference: true
+        static x @73
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get m @-1
+          reference: <testLibraryFragment>::@getter::m
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function<T>()?
+        synthetic static set m= @-1
+          reference: <testLibraryFragment>::@setter::m
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _m @-1
+              type: int Function<T>()?
+          returnType: void
+        synthetic static get n @-1
+          reference: <testLibraryFragment>::@getter::n
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function<T>()
+        synthetic static set n= @-1
+          reference: <testLibraryFragment>::@setter::n
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _n @-1
+              type: int Function<T>()
+          returnType: void
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: int
+          returnType: void
 ''');
   }
 
@@ -43694,31 +44512,32 @@
     dart:collection
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:collection
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static m @30
-        reference: <testLibraryFragment>::@topLevelVariable::m
-        enclosingElement: <testLibraryFragment>
-        type: HashMap<dynamic, dynamic>
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get m @-1
-        reference: <testLibraryFragment>::@getter::m
-        enclosingElement: <testLibraryFragment>
-        returnType: HashMap<dynamic, dynamic>
-      synthetic static set m= @-1
-        reference: <testLibraryFragment>::@setter::m
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _m @-1
-            type: HashMap<dynamic, dynamic>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:collection
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static m @30
+          reference: <testLibraryFragment>::@topLevelVariable::m
+          enclosingElement: <testLibraryFragment>
+          type: HashMap<dynamic, dynamic>
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get m @-1
+          reference: <testLibraryFragment>::@getter::m
+          enclosingElement: <testLibraryFragment>
+          returnType: HashMap<dynamic, dynamic>
+        synthetic static set m= @-1
+          reference: <testLibraryFragment>::@setter::m
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _m @-1
+              type: HashMap<dynamic, dynamic>
+          returnType: void
 ''');
   }
 
@@ -43732,81 +44551,82 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static a @4
-        reference: <testLibraryFragment>::@topLevelVariable::a
-        enclosingElement: <testLibraryFragment>
-        typeInferenceError: dependencyCycle
-          arguments: [a, b, c]
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-      static b @19
-        reference: <testLibraryFragment>::@topLevelVariable::b
-        enclosingElement: <testLibraryFragment>
-        typeInferenceError: dependencyCycle
-          arguments: [a, b, c]
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-      static c @34
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        typeInferenceError: dependencyCycle
-          arguments: [a, b, c]
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-      static d @49
-        reference: <testLibraryFragment>::@topLevelVariable::d
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get a @-1
-        reference: <testLibraryFragment>::@getter::a
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      synthetic static set a= @-1
-        reference: <testLibraryFragment>::@setter::a
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _a @-1
-            type: dynamic
-        returnType: void
-      synthetic static get b @-1
-        reference: <testLibraryFragment>::@getter::b
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      synthetic static set b= @-1
-        reference: <testLibraryFragment>::@setter::b
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _b @-1
-            type: dynamic
-        returnType: void
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      synthetic static set c= @-1
-        reference: <testLibraryFragment>::@setter::c
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _c @-1
-            type: dynamic
-        returnType: void
-      synthetic static get d @-1
-        reference: <testLibraryFragment>::@getter::d
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set d= @-1
-        reference: <testLibraryFragment>::@setter::d
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _d @-1
-            type: int
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static a @4
+          reference: <testLibraryFragment>::@topLevelVariable::a
+          enclosingElement: <testLibraryFragment>
+          typeInferenceError: dependencyCycle
+            arguments: [a, b, c]
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+        static b @19
+          reference: <testLibraryFragment>::@topLevelVariable::b
+          enclosingElement: <testLibraryFragment>
+          typeInferenceError: dependencyCycle
+            arguments: [a, b, c]
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+        static c @34
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          typeInferenceError: dependencyCycle
+            arguments: [a, b, c]
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+        static d @49
+          reference: <testLibraryFragment>::@topLevelVariable::d
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get a @-1
+          reference: <testLibraryFragment>::@getter::a
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        synthetic static set a= @-1
+          reference: <testLibraryFragment>::@setter::a
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _a @-1
+              type: dynamic
+          returnType: void
+        synthetic static get b @-1
+          reference: <testLibraryFragment>::@getter::b
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        synthetic static set b= @-1
+          reference: <testLibraryFragment>::@setter::b
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _b @-1
+              type: dynamic
+          returnType: void
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        synthetic static set c= @-1
+          reference: <testLibraryFragment>::@setter::c
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _c @-1
+              type: dynamic
+          returnType: void
+        synthetic static get d @-1
+          reference: <testLibraryFragment>::@getter::d
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set d= @-1
+          reference: <testLibraryFragment>::@setter::d
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _d @-1
+              type: int
+          returnType: void
 ''');
   }
 
@@ -43817,67 +44637,68 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @31
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        fields
-          v @49
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int Function(String)
-              alias: <testLibraryFragment>::@typeAlias::F
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        accessors
-          synthetic get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int Function(String)
-              alias: <testLibraryFragment>::@typeAlias::F
-          synthetic set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @31
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          fields
+            v @49
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int Function(String)
+                alias: <testLibraryFragment>::@typeAlias::F
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          accessors
+            synthetic get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int Function(String)
+                alias: <testLibraryFragment>::@typeAlias::F
+            synthetic set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: int Function(String)
+                    alias: <testLibraryFragment>::@typeAlias::F
+              returnType: void
+        abstract class D @69
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic v @-1
+              reference: <testLibraryFragment>::@class::D::@field::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: int Function(String)
+                alias: <testLibraryFragment>::@typeAlias::F
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            abstract get v @79
+              reference: <testLibraryFragment>::@class::D::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: int Function(String)
+                alias: <testLibraryFragment>::@typeAlias::F
+      typeAliases
+        functionTypeAliasBased F @12
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: int Function(String)
+          aliasedElement: GenericFunctionTypeElement
             parameters
-              requiredPositional _v @-1
-                type: int Function(String)
-                  alias: <testLibraryFragment>::@typeAlias::F
-            returnType: void
-      abstract class D @69
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic v @-1
-            reference: <testLibraryFragment>::@class::D::@field::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: int Function(String)
-              alias: <testLibraryFragment>::@typeAlias::F
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          abstract get v @79
-            reference: <testLibraryFragment>::@class::D::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: int Function(String)
-              alias: <testLibraryFragment>::@typeAlias::F
-    typeAliases
-      functionTypeAliasBased F @12
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: int Function(String)
-        aliasedElement: GenericFunctionTypeElement
-          parameters
-            requiredPositional s @21
-              type: String
-          returnType: int
+              requiredPositional s @21
+                type: String
+            returnType: int
 ''');
   }
 
@@ -43894,31 +44715,32 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static x @21
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: int
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static x @21
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: int
+          returnType: void
 ''');
   }
 
@@ -43935,31 +44757,32 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static x @21
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: int?
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: int?
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: int?
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static x @21
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: int?
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: int?
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: int?
+          returnType: void
 ''');
   }
 
@@ -43976,31 +44799,32 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static x @21
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: void Function()
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: void Function()
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: void Function()
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static x @21
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: void Function()
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: void Function()
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: void Function()
+          returnType: void
 ''');
   }
 
@@ -44017,31 +44841,32 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static x @21
-        reference: <testLibraryFragment>::@topLevelVariable::x
-        enclosingElement: <testLibraryFragment>
-        type: void Function()?
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get x @-1
-        reference: <testLibraryFragment>::@getter::x
-        enclosingElement: <testLibraryFragment>
-        returnType: void Function()?
-      synthetic static set x= @-1
-        reference: <testLibraryFragment>::@setter::x
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _x @-1
-            type: void Function()?
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static x @21
+          reference: <testLibraryFragment>::@topLevelVariable::x
+          enclosingElement: <testLibraryFragment>
+          type: void Function()?
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get x @-1
+          reference: <testLibraryFragment>::@getter::x
+          enclosingElement: <testLibraryFragment>
+          returnType: void Function()?
+        synthetic static set x= @-1
+          reference: <testLibraryFragment>::@setter::x
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _x @-1
+              type: void Function()?
+          returnType: void
 ''');
   }
 
@@ -44057,63 +44882,64 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-        supertype: D<int, T>
-        fields
-          v @37
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: Map<T, int>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::D::@constructor::new
-              substitution: {U: int, V: T}
-        accessors
-          synthetic get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: Map<T, int>
-          synthetic set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _v @-1
-                type: Map<T, int>
-            returnType: void
-      abstract class D @57
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant U @59
-            defaultType: dynamic
-          covariant V @62
-            defaultType: dynamic
-        fields
-          synthetic v @-1
-            reference: <testLibraryFragment>::@class::D::@field::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: Map<V, U>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          abstract get v @83
-            reference: <testLibraryFragment>::@class::D::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: Map<V, U>
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+          supertype: D<int, T>
+          fields
+            v @37
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: Map<T, int>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::D::@constructor::new
+                substitution: {U: int, V: T}
+          accessors
+            synthetic get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: Map<T, int>
+            synthetic set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: Map<T, int>
+              returnType: void
+        abstract class D @57
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant U @59
+              defaultType: dynamic
+            covariant V @62
+              defaultType: dynamic
+          fields
+            synthetic v @-1
+              reference: <testLibraryFragment>::@class::D::@field::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: Map<V, U>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            abstract get v @83
+              reference: <testLibraryFragment>::@class::D::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: Map<V, U>
 ''');
   }
 
@@ -44126,48 +44952,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    typeAliases
-      functionTypeAliasBased F @13
-        reference: <testLibraryFragment>::@typeAlias::F
-        aliasedType: void Function(int Function(String))
-        aliasedElement: GenericFunctionTypeElement
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      typeAliases
+        functionTypeAliasBased F @13
+          reference: <testLibraryFragment>::@typeAlias::F
+          aliasedType: void Function(int Function(String))
+          aliasedElement: GenericFunctionTypeElement
+            parameters
+              requiredPositional g @19
+                type: int Function(String)
+                parameters
+                  requiredPositional s @28
+                    type: String
+            returnType: void
+      topLevelVariables
+        static v @53
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
           parameters
-            requiredPositional g @19
-              type: int Function(String)
-              parameters
-                requiredPositional s @28
-                  type: String
+            requiredPositional _v @-1
+              type: dynamic
           returnType: void
-    topLevelVariables
-      static v @53
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: dynamic
-        returnType: void
-    functions
-      h @33
-        reference: <testLibraryFragment>::@function::h
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional f @37
-            type: void Function(int Function(String))
-              alias: <testLibraryFragment>::@typeAlias::F
-        returnType: dynamic
+      functions
+        h @33
+          reference: <testLibraryFragment>::@function::h
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional f @37
+              type: void Function(int Function(String))
+                alias: <testLibraryFragment>::@typeAlias::F
+          returnType: dynamic
 ''');
   }
 
@@ -44182,61 +45009,62 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant T @8
-            defaultType: dynamic
-          covariant U @11
-            defaultType: dynamic
-        supertype: D<U, int>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: ConstructorMember
-              base: <testLibraryFragment>::@class::D::@constructor::new
-              substitution: {V: U, W: int}
-        methods
-          f @41
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional x @47
-                type: int
-              requiredPositional g @50
-                type: int Function(U)
-            returnType: void
-      abstract class D @73
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant V @75
-            defaultType: dynamic
-          covariant W @78
-            defaultType: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        methods
-          abstract f @90
-            reference: <testLibraryFragment>::@class::D::@method::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional x @96
-                type: int
-              requiredPositional g @101
-                type: W Function(V)
-                parameters
-                  requiredPositional s @105
-                    type: V
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant T @8
+              defaultType: dynamic
+            covariant U @11
+              defaultType: dynamic
+          supertype: D<U, int>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: ConstructorMember
+                base: <testLibraryFragment>::@class::D::@constructor::new
+                substitution: {V: U, W: int}
+          methods
+            f @41
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional x @47
+                  type: int
+                requiredPositional g @50
+                  type: int Function(U)
+              returnType: void
+        abstract class D @73
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant V @75
+              defaultType: dynamic
+            covariant W @78
+              defaultType: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          methods
+            abstract f @90
+              reference: <testLibraryFragment>::@class::D::@method::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional x @96
+                  type: int
+                requiredPositional g @101
+                  type: W Function(V)
+                  parameters
+                    requiredPositional s @105
+                      type: V
+              returnType: void
 ''');
   }
 
@@ -44263,33 +45091,34 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class C @23
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: package:test/a.dart::<fragment>::@class::D::@constructor::new
-        methods
-          f @44
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional x @50
-                type: int
-              requiredPositional g @53
-                type: int Function(String)
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class C @23
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: package:test/a.dart::<fragment>::@class::D::@constructor::new
+          methods
+            f @44
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional x @50
+                  type: int
+                requiredPositional g @53
+                  type: int Function(String)
+              returnType: void
 ''');
   }
 
@@ -44299,49 +45128,50 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        methods
-          f @25
-            reference: <testLibraryFragment>::@class::C::@method::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional x @31
-                type: int
-              requiredPositional g @34
-                type: int Function(String)
-            returnType: void
-      abstract class D @57
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        methods
-          abstract f @66
-            reference: <testLibraryFragment>::@class::D::@method::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional x @72
-                type: int
-              requiredPositional g @79
-                type: int Function(String)
-                parameters
-                  requiredPositional s @88
-                    type: String
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          methods
+            f @25
+              reference: <testLibraryFragment>::@class::C::@method::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional x @31
+                  type: int
+                requiredPositional g @34
+                  type: int Function(String)
+              returnType: void
+        abstract class D @57
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          methods
+            abstract f @66
+              reference: <testLibraryFragment>::@class::D::@method::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional x @72
+                  type: int
+                requiredPositional g @79
+                  type: int Function(String)
+                  parameters
+                    requiredPositional s @88
+                      type: String
+              returnType: void
 ''');
   }
 
@@ -44353,40 +45183,41 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static v @40
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: dynamic
-        returnType: void
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional g @7
-            type: void Function(int, void Function())
-            parameters
-              requiredPositional x @13
-                type: int
-              requiredPositional h @21
-                type: void Function()
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static v @40
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: dynamic
+          returnType: void
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional g @7
+              type: void Function(int, void Function())
+              parameters
+                requiredPositional x @13
+                  type: int
+                requiredPositional h @21
+                  type: void Function()
+          returnType: dynamic
 ''');
   }
 
@@ -44398,41 +45229,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static v @42
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: dynamic
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: dynamic
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: dynamic
-        returnType: void
-    functions
-      f @0
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          optionalNamed default g @8
-            reference: <testLibraryFragment>::@function::f::@parameter::g
-            type: void Function(int, void Function())
-            parameters
-              requiredPositional x @14
-                type: int
-              requiredPositional h @22
-                type: void Function()
-        returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static v @42
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: dynamic
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: dynamic
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: dynamic
+          returnType: void
+      functions
+        f @0
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            optionalNamed default g @8
+              reference: <testLibraryFragment>::@function::f::@parameter::g
+              type: void Function(int, void Function())
+              parameters
+                requiredPositional x @14
+                  type: int
+                requiredPositional h @22
+                  type: void Function()
+          returnType: dynamic
 ''');
   }
 
@@ -44442,55 +45274,56 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        supertype: D
-        fields
-          synthetic f @-1
-            reference: <testLibraryFragment>::@class::C::@field::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int Function(String)
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-            superConstructor: <testLibraryFragment>::@class::D::@constructor::new
-        accessors
-          set f= @29
-            reference: <testLibraryFragment>::@class::C::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional g @31
-                type: int Function(String)
-            returnType: void
-      abstract class D @54
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        fields
-          synthetic f @-1
-            reference: <testLibraryFragment>::@class::D::@field::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: int Function(String)
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-        accessors
-          abstract set f= @67
-            reference: <testLibraryFragment>::@class::D::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional g @73
-                type: int Function(String)
-                parameters
-                  requiredPositional s @82
-                    type: String
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          supertype: D
+          fields
+            synthetic f @-1
+              reference: <testLibraryFragment>::@class::C::@field::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int Function(String)
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+              superConstructor: <testLibraryFragment>::@class::D::@constructor::new
+          accessors
+            set f= @29
+              reference: <testLibraryFragment>::@class::C::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional g @31
+                  type: int Function(String)
+              returnType: void
+        abstract class D @54
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          fields
+            synthetic f @-1
+              reference: <testLibraryFragment>::@class::D::@field::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: int Function(String)
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+          accessors
+            abstract set f= @67
+              reference: <testLibraryFragment>::@class::D::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional g @73
+                  type: int Function(String)
+                  parameters
+                    requiredPositional s @82
+                      type: String
+              returnType: void
 ''');
   }
 
@@ -44514,31 +45347,32 @@
     package:test/a.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/a.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class B @23
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        supertype: A
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-            superConstructor: package:test/a.dart::<fragment>::@class::A::@constructor::new
-        methods
-          m @39
-            reference: <testLibraryFragment>::@class::B::@method::m
-            enclosingElement: <testLibraryFragment>::@class::B
-            parameters
-              requiredPositional p @41
-                type: Stream<dynamic>
-            returnType: dynamic
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/a.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class B @23
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          supertype: A
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+              superConstructor: package:test/a.dart::<fragment>::@class::A::@constructor::new
+          methods
+            m @39
+              reference: <testLibraryFragment>::@class::B::@method::m
+              enclosingElement: <testLibraryFragment>::@class::B
+              parameters
+                requiredPositional p @41
+                  type: Stream<dynamic>
+              returnType: dynamic
 ''');
     ClassElement b = library.definingCompilationUnit.classes[0];
     ParameterElement p = b.methods[0].parameters[0];
@@ -44561,56 +45395,57 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class A @6
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          @12
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-          named @21
-            reference: <testLibraryFragment>::@class::A::@constructor::named
-            enclosingElement: <testLibraryFragment>::@class::A
-            periodOffset: 20
-            nameEnd: 26
-    topLevelVariables
-      static a1 @36
-        reference: <testLibraryFragment>::@topLevelVariable::a1
-        enclosingElement: <testLibraryFragment>
-        type: A
-        shouldUseTypeForInitializerInference: false
-      static a2 @50
-        reference: <testLibraryFragment>::@topLevelVariable::a2
-        enclosingElement: <testLibraryFragment>
-        type: A
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get a1 @-1
-        reference: <testLibraryFragment>::@getter::a1
-        enclosingElement: <testLibraryFragment>
-        returnType: A
-      synthetic static set a1= @-1
-        reference: <testLibraryFragment>::@setter::a1
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _a1 @-1
-            type: A
-        returnType: void
-      synthetic static get a2 @-1
-        reference: <testLibraryFragment>::@getter::a2
-        enclosingElement: <testLibraryFragment>
-        returnType: A
-      synthetic static set a2= @-1
-        reference: <testLibraryFragment>::@setter::a2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _a2 @-1
-            type: A
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class A @6
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            @12
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+            named @21
+              reference: <testLibraryFragment>::@class::A::@constructor::named
+              enclosingElement: <testLibraryFragment>::@class::A
+              periodOffset: 20
+              nameEnd: 26
+      topLevelVariables
+        static a1 @36
+          reference: <testLibraryFragment>::@topLevelVariable::a1
+          enclosingElement: <testLibraryFragment>
+          type: A
+          shouldUseTypeForInitializerInference: false
+        static a2 @50
+          reference: <testLibraryFragment>::@topLevelVariable::a2
+          enclosingElement: <testLibraryFragment>
+          type: A
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get a1 @-1
+          reference: <testLibraryFragment>::@getter::a1
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+        synthetic static set a1= @-1
+          reference: <testLibraryFragment>::@setter::a1
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _a1 @-1
+              type: A
+          returnType: void
+        synthetic static get a2 @-1
+          reference: <testLibraryFragment>::@getter::a2
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+        synthetic static set a2= @-1
+          reference: <testLibraryFragment>::@setter::a2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _a2 @-1
+              type: A
+          returnType: void
 ''');
   }
 
@@ -44638,52 +45473,53 @@
       reference: <testLibraryFragment>::@prefix::foo
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/foo.dart as foo @21
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    libraryImportPrefixes
-      foo @21
-        reference: <testLibraryFragment>::@prefix::foo
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static a1 @30
-        reference: <testLibraryFragment>::@topLevelVariable::a1
-        enclosingElement: <testLibraryFragment>
-        type: A
-        shouldUseTypeForInitializerInference: false
-      static a2 @48
-        reference: <testLibraryFragment>::@topLevelVariable::a2
-        enclosingElement: <testLibraryFragment>
-        type: A
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get a1 @-1
-        reference: <testLibraryFragment>::@getter::a1
-        enclosingElement: <testLibraryFragment>
-        returnType: A
-      synthetic static set a1= @-1
-        reference: <testLibraryFragment>::@setter::a1
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _a1 @-1
-            type: A
-        returnType: void
-      synthetic static get a2 @-1
-        reference: <testLibraryFragment>::@getter::a2
-        enclosingElement: <testLibraryFragment>
-        returnType: A
-      synthetic static set a2= @-1
-        reference: <testLibraryFragment>::@setter::a2
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _a2 @-1
-            type: A
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/foo.dart as foo @21
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      libraryImportPrefixes
+        foo @21
+          reference: <testLibraryFragment>::@prefix::foo
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static a1 @30
+          reference: <testLibraryFragment>::@topLevelVariable::a1
+          enclosingElement: <testLibraryFragment>
+          type: A
+          shouldUseTypeForInitializerInference: false
+        static a2 @48
+          reference: <testLibraryFragment>::@topLevelVariable::a2
+          enclosingElement: <testLibraryFragment>
+          type: A
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get a1 @-1
+          reference: <testLibraryFragment>::@getter::a1
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+        synthetic static set a1= @-1
+          reference: <testLibraryFragment>::@setter::a1
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _a1 @-1
+              type: A
+          returnType: void
+        synthetic static get a2 @-1
+          reference: <testLibraryFragment>::@getter::a2
+          enclosingElement: <testLibraryFragment>
+          returnType: A
+        synthetic static set a2= @-1
+          reference: <testLibraryFragment>::@setter::a2
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _a2 @-1
+              type: A
+          returnType: void
 ''');
   }
 
@@ -44698,48 +45534,49 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static v @71
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: List<Object Function(int Function(String))>
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: List<Object Function(int Function(String))>
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: List<Object Function(int Function(String))>
-        returnType: void
-    functions
-      f @4
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional x @10
-            type: int Function(String)
-            parameters
-              requiredPositional y @19
-                type: String
-        returnType: int
-      g @39
-        reference: <testLibraryFragment>::@function::g
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional x @45
-            type: int Function(String)
-            parameters
-              requiredPositional y @54
-                type: String
-        returnType: String
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static v @71
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: List<Object Function(int Function(String))>
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: List<Object Function(int Function(String))>
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: List<Object Function(int Function(String))>
+          returnType: void
+      functions
+        f @4
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional x @10
+              type: int Function(String)
+              parameters
+                requiredPositional y @19
+                  type: String
+          returnType: int
+        g @39
+          reference: <testLibraryFragment>::@function::g
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional x @45
+              type: int Function(String)
+              parameters
+                requiredPositional y @54
+                  type: String
+          returnType: String
 ''');
   }
 
@@ -44762,70 +45599,71 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      abstract class A @15
-        reference: <testLibraryFragment>::@class::A
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::A::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::A
-        methods
-          abstract m @25
-            reference: <testLibraryFragment>::@class::A::@method::m
-            enclosingElement: <testLibraryFragment>::@class::A
-            returnType: int
-      abstract class B @48
-        reference: <testLibraryFragment>::@class::B
-        enclosingElement: <testLibraryFragment>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::B::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::B
-        methods
-          abstract m @61
-            reference: <testLibraryFragment>::@class::B::@method::m
-            enclosingElement: <testLibraryFragment>::@class::B
-            returnType: String
-      abstract class C @84
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        interfaces
-          A
-          B
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-      abstract class D @121
-        reference: <testLibraryFragment>::@class::D
-        enclosingElement: <testLibraryFragment>
-        supertype: C
-        fields
-          f @141
-            reference: <testLibraryFragment>::@class::D::@field::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            type: dynamic
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::D::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::D
-            superConstructor: <testLibraryFragment>::@class::C::@constructor::new
-        accessors
-          synthetic get f @-1
-            reference: <testLibraryFragment>::@class::D::@getter::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            returnType: dynamic
-          synthetic set f= @-1
-            reference: <testLibraryFragment>::@class::D::@setter::f
-            enclosingElement: <testLibraryFragment>::@class::D
-            parameters
-              requiredPositional _f @-1
-                type: dynamic
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        abstract class A @15
+          reference: <testLibraryFragment>::@class::A
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::A::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::A
+          methods
+            abstract m @25
+              reference: <testLibraryFragment>::@class::A::@method::m
+              enclosingElement: <testLibraryFragment>::@class::A
+              returnType: int
+        abstract class B @48
+          reference: <testLibraryFragment>::@class::B
+          enclosingElement: <testLibraryFragment>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::B::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::B
+          methods
+            abstract m @61
+              reference: <testLibraryFragment>::@class::B::@method::m
+              enclosingElement: <testLibraryFragment>::@class::B
+              returnType: String
+        abstract class C @84
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          interfaces
+            A
+            B
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+        abstract class D @121
+          reference: <testLibraryFragment>::@class::D
+          enclosingElement: <testLibraryFragment>
+          supertype: C
+          fields
+            f @141
+              reference: <testLibraryFragment>::@class::D::@field::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              type: dynamic
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::D::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::D
+              superConstructor: <testLibraryFragment>::@class::C::@constructor::new
+          accessors
+            synthetic get f @-1
+              reference: <testLibraryFragment>::@class::D::@getter::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              returnType: dynamic
+            synthetic set f= @-1
+              reference: <testLibraryFragment>::@class::D::@setter::f
+              enclosingElement: <testLibraryFragment>::@class::D
+              parameters
+                requiredPositional _f @-1
+                  type: dynamic
+              returnType: void
 ''');
   }
 
@@ -44834,27 +45672,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static v @4
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: int Function()
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: int Function()
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: int Function()
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static v @4
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: int Function()
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: int Function()
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: int Function()
+          returnType: void
 ''');
   }
 
@@ -44863,27 +45702,28 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    topLevelVariables
-      static v @4
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: Future<dynamic> Function(dynamic)
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<dynamic> Function(dynamic)
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: Future<dynamic> Function(dynamic)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      topLevelVariables
+        static v @4
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: Future<dynamic> Function(dynamic)
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<dynamic> Function(dynamic)
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: Future<dynamic> Function(dynamic)
+          returnType: void
 ''');
   }
 
@@ -44900,31 +45740,32 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static v @25
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: Future<int> Function(Future<Future<Future<int>>>)
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<int> Function(Future<Future<Future<int>>>)
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: Future<int> Function(Future<Future<Future<int>>>)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static v @25
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: Future<int> Function(Future<Future<Future<int>>>)
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<int> Function(Future<Future<Future<int>>>)
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: Future<int> Function(Future<Future<Future<int>>>)
+          returnType: void
 ''');
   }
 
@@ -44940,31 +45781,32 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static v @25
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: Future<int> Function(Future<int>)
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<int> Function(Future<int>)
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: Future<int> Function(Future<int>)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static v @25
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: Future<int> Function(Future<int>)
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<int> Function(Future<int>)
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: Future<int> Function(Future<int>)
+          returnType: void
 ''');
   }
 
@@ -44980,31 +45822,32 @@
     dart:async
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      dart:async
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    topLevelVariables
-      static v @25
-        reference: <testLibraryFragment>::@topLevelVariable::v
-        enclosingElement: <testLibraryFragment>
-        type: Future<dynamic> Function(Future<dynamic>)
-        shouldUseTypeForInitializerInference: false
-    accessors
-      synthetic static get v @-1
-        reference: <testLibraryFragment>::@getter::v
-        enclosingElement: <testLibraryFragment>
-        returnType: Future<dynamic> Function(Future<dynamic>)
-      synthetic static set v= @-1
-        reference: <testLibraryFragment>::@setter::v
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _v @-1
-            type: Future<dynamic> Function(Future<dynamic>)
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        dart:async
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      topLevelVariables
+        static v @25
+          reference: <testLibraryFragment>::@topLevelVariable::v
+          enclosingElement: <testLibraryFragment>
+          type: Future<dynamic> Function(Future<dynamic>)
+          shouldUseTypeForInitializerInference: false
+      accessors
+        synthetic static get v @-1
+          reference: <testLibraryFragment>::@getter::v
+          enclosingElement: <testLibraryFragment>
+          returnType: Future<dynamic> Function(Future<dynamic>)
+        synthetic static set v= @-1
+          reference: <testLibraryFragment>::@setter::v
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _v @-1
+              type: Future<dynamic> Function(Future<dynamic>)
+          returnType: void
 ''');
   }
 
@@ -45017,35 +45860,36 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        fields
-          v @16
-            reference: <testLibraryFragment>::@class::C::@field::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            type: int Function()
-            shouldUseTypeForInitializerInference: false
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-        accessors
-          synthetic get v @-1
-            reference: <testLibraryFragment>::@class::C::@getter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            returnType: int Function()
-          synthetic set v= @-1
-            reference: <testLibraryFragment>::@class::C::@setter::v
-            enclosingElement: <testLibraryFragment>::@class::C
-            parameters
-              requiredPositional _v @-1
-                type: int Function()
-            returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          fields
+            v @16
+              reference: <testLibraryFragment>::@class::C::@field::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              type: int Function()
+              shouldUseTypeForInitializerInference: false
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+          accessors
+            synthetic get v @-1
+              reference: <testLibraryFragment>::@class::C::@getter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              returnType: int Function()
+            synthetic set v= @-1
+              reference: <testLibraryFragment>::@class::C::@setter::v
+              enclosingElement: <testLibraryFragment>::@class::C
+              parameters
+                requiredPositional _v @-1
+                  type: int Function()
+              returnType: void
 ''');
   }
 
@@ -45059,14 +45903,15 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    functions
-      f @5
-        reference: <testLibraryFragment>::@function::f
-        enclosingElement: <testLibraryFragment>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      functions
+        f @5
+          reference: <testLibraryFragment>::@function::f
+          enclosingElement: <testLibraryFragment>
+          returnType: void
 ''');
   }
 
@@ -45101,65 +45946,66 @@
     package:test/nullSafe.dart
       enclosingElement: <testLibrary>
       enclosingElement3: <testLibraryFragment>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    libraryImports
-      package:test/nullSafe.dart
-        enclosingElement: <testLibrary>
-        enclosingElement3: <testLibraryFragment>
-    classes
-      class X1 @30
-        reference: <testLibraryFragment>::@class::X1
-        enclosingElement: <testLibraryFragment>
-        supertype: NullSafeDefault
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X1::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X1
-            superConstructor: package:test/nullSafe.dart::<fragment>::@class::NullSafeDefault::@constructor::new
-        methods
-          == @74
-            reference: <testLibraryFragment>::@class::X1::@method::==
-            enclosingElement: <testLibraryFragment>::@class::X1
-            parameters
-              requiredPositional other @77
-                type: Object
-            returnType: bool
-      class X2 @102
-        reference: <testLibraryFragment>::@class::X2
-        enclosingElement: <testLibraryFragment>
-        supertype: NullSafeObject
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X2::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X2
-            superConstructor: package:test/nullSafe.dart::<fragment>::@class::NullSafeObject::@constructor::new
-        methods
-          == @145
-            reference: <testLibraryFragment>::@class::X2::@method::==
-            enclosingElement: <testLibraryFragment>::@class::X2
-            parameters
-              requiredPositional other @148
-                type: Object
-            returnType: bool
-      class X3 @173
-        reference: <testLibraryFragment>::@class::X3
-        enclosingElement: <testLibraryFragment>
-        supertype: NullSafeInt
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::X3::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::X3
-            superConstructor: package:test/nullSafe.dart::<fragment>::@class::NullSafeInt::@constructor::new
-        methods
-          == @213
-            reference: <testLibraryFragment>::@class::X3::@method::==
-            enclosingElement: <testLibraryFragment>::@class::X3
-            parameters
-              requiredPositional other @216
-                type: int
-            returnType: bool
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      libraryImports
+        package:test/nullSafe.dart
+          enclosingElement: <testLibrary>
+          enclosingElement3: <testLibraryFragment>
+      classes
+        class X1 @30
+          reference: <testLibraryFragment>::@class::X1
+          enclosingElement: <testLibraryFragment>
+          supertype: NullSafeDefault
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X1::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X1
+              superConstructor: package:test/nullSafe.dart::<fragment>::@class::NullSafeDefault::@constructor::new
+          methods
+            == @74
+              reference: <testLibraryFragment>::@class::X1::@method::==
+              enclosingElement: <testLibraryFragment>::@class::X1
+              parameters
+                requiredPositional other @77
+                  type: Object
+              returnType: bool
+        class X2 @102
+          reference: <testLibraryFragment>::@class::X2
+          enclosingElement: <testLibraryFragment>
+          supertype: NullSafeObject
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X2::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X2
+              superConstructor: package:test/nullSafe.dart::<fragment>::@class::NullSafeObject::@constructor::new
+          methods
+            == @145
+              reference: <testLibraryFragment>::@class::X2::@method::==
+              enclosingElement: <testLibraryFragment>::@class::X2
+              parameters
+                requiredPositional other @148
+                  type: Object
+              returnType: bool
+        class X3 @173
+          reference: <testLibraryFragment>::@class::X3
+          enclosingElement: <testLibraryFragment>
+          supertype: NullSafeInt
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::X3::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::X3
+              superConstructor: package:test/nullSafe.dart::<fragment>::@class::NullSafeInt::@constructor::new
+          methods
+            == @213
+              reference: <testLibraryFragment>::@class::X3::@method::==
+              enclosingElement: <testLibraryFragment>::@class::X3
+              parameters
+                requiredPositional other @216
+                  type: int
+              returnType: bool
 ''');
   }
 
@@ -45171,41 +46017,42 @@
     checkElementText(library, r'''
 library
   reference: <testLibrary>
-  definingUnit
-    reference: <testLibraryFragment>
-    enclosingElement: <testLibrary>
-    classes
-      notSimplyBounded class C @6
-        reference: <testLibraryFragment>::@class::C
-        enclosingElement: <testLibraryFragment>
-        typeParameters
-          covariant S @8
-            bound: num
-            defaultType: num
-          covariant T @23
-            bound: C<S, T>
-            defaultType: C<num, dynamic>
-        constructors
-          synthetic @-1
-            reference: <testLibraryFragment>::@class::C::@constructor::new
-            enclosingElement: <testLibraryFragment>::@class::C
-    topLevelVariables
-      static c @47
-        reference: <testLibraryFragment>::@topLevelVariable::c
-        enclosingElement: <testLibraryFragment>
-        type: C<num, C<num, dynamic>>
-    accessors
-      synthetic static get c @-1
-        reference: <testLibraryFragment>::@getter::c
-        enclosingElement: <testLibraryFragment>
-        returnType: C<num, C<num, dynamic>>
-      synthetic static set c= @-1
-        reference: <testLibraryFragment>::@setter::c
-        enclosingElement: <testLibraryFragment>
-        parameters
-          requiredPositional _c @-1
-            type: C<num, C<num, dynamic>>
-        returnType: void
+  definingUnit: <testLibraryFragment>
+  units
+    <testLibraryFragment>
+      enclosingElement: <testLibrary>
+      classes
+        notSimplyBounded class C @6
+          reference: <testLibraryFragment>::@class::C
+          enclosingElement: <testLibraryFragment>
+          typeParameters
+            covariant S @8
+              bound: num
+              defaultType: num
+            covariant T @23
+              bound: C<S, T>
+              defaultType: C<num, dynamic>
+          constructors
+            synthetic @-1
+              reference: <testLibraryFragment>::@class::C::@constructor::new
+              enclosingElement: <testLibraryFragment>::@class::C
+      topLevelVariables
+        static c @47
+          reference: <testLibraryFragment>::@topLevelVariable::c
+          enclosingElement: <testLibraryFragment>
+          type: C<num, C<num, dynamic>>
+      accessors
+        synthetic static get c @-1
+          reference: <testLibraryFragment>::@getter::c
+          enclosingElement: <testLibraryFragment>
+          returnType: C<num, C<num, dynamic>>
+        synthetic static set c= @-1
+          reference: <testLibraryFragment>::@setter::c
+          enclosingElement: <testLibraryFragment>
+          parameters
+            requiredPositional _c @-1
+              type: C<num, C<num, dynamic>>
+          returnType: void
 ''');
   }
 
@@ -45221,7