@@ -9986,10 +9986,12 @@ class TopLevelVariableFragmentImpl extends PropertyInducingFragmentImpl
99869986  }
99879987}
99889988
9989+ @elementClass 
99899990class  TypeAliasElementImpl  extends  ElementImpl 
99909991    with  DeferredResolutionReadingMixin 
99919992    implements  TypeAliasElement  {
99929993  @override 
9994+   @trackedIncludedInId 
99939995  final  Reference  reference;
99949996
99959997  @override 
@@ -10003,6 +10005,7 @@ class TypeAliasElementImpl extends ElementImpl
1000310005  }
1000410006
1000510007  @override 
10008+   @trackedIncludedInId 
1000610009  ElementImpl ?  get  aliasedElement {
1000710010    switch  (_firstFragment.aliasedElement) {
1000810011      case  InstanceFragmentImpl  instance: 
@@ -10015,11 +10018,13 @@ class TypeAliasElementImpl extends ElementImpl
1001510018
1001610019  @Deprecated ('Use aliasedElement instead' )
1001710020  @override 
10021+   @trackedIndirectly 
1001810022  Element ?  get  aliasedElement2 {
1001910023    return  aliasedElement;
1002010024  }
1002110025
1002210026  @override 
10027+   @trackedIncludedInId 
1002310028  TypeImpl  get  aliasedType {
1002410029    _ensureReadResolution ();
1002510030    return  _aliasedType! ;
@@ -10032,39 +10037,44 @@ class TypeAliasElementImpl extends ElementImpl
1003210037  }
1003310038
1003410039  /// The aliased type, might be `null`  if not yet linked. 
10040+    @trackedInternal 
1003510041  TypeImpl ?  get  aliasedTypeRaw =>  _aliasedType;
1003610042
1003710043  @override 
10044+   @trackedIncludedInId 
1003810045  TypeAliasElementImpl  get  baseElement =>  this ;
1003910046
1004010047  @override 
10048+   @trackedIncludedInId 
1004110049  LibraryElementImpl  get  enclosingElement =>  library;
1004210050
1004310051  @Deprecated ('Use enclosingElement instead' )
1004410052  @override 
10053+   @trackedIndirectly 
1004510054  LibraryElement  get  enclosingElement2 =>  enclosingElement;
1004610055
1004710056  @override 
10048-   TypeAliasFragmentImpl  get  firstFragment =>  _firstFragment;
10057+   @trackedDirectlyOpaque 
10058+   TypeAliasFragmentImpl  get  firstFragment {
10059+     globalResultRequirements? .recordOpaqueApiUse (this , 'firstFragment' );
10060+     return  _firstFragment;
10061+   }
1004910062
1005010063  @override 
10064+   @trackedDirectlyOpaque 
1005110065  List <TypeAliasFragmentImpl > get  fragments {
10052-     return  [
10053-       for  (
10054-         TypeAliasFragmentImpl ?  fragment =  _firstFragment;
10055-         fragment !=  null ;
10056-         fragment =  fragment.nextFragment
10057-       )
10058-         fragment,
10059-     ];
10066+     globalResultRequirements? .recordOpaqueApiUse (this , 'fragments' );
10067+     return  _fragments;
1006010068  }
1006110069
10070+   @trackedIncludedInId 
1006210071  bool  get  isNonFunctionTypeAliasesEnabled {
1006310072    return  library.featureSet.isEnabled (Feature .nonfunction_type_aliases);
1006410073  }
1006510074
1006610075  /// Whether this alias is a "proper rename" of [aliasedType] , as defined in 
1006710076  /// the constructor-tearoffs specification. 
10077+    @trackedIndirectly 
1006810078  bool  get  isProperRename {
1006910079    var  aliasedType_ =  aliasedType;
1007010080    if  (aliasedType_ is !  InterfaceTypeImpl ) {
@@ -10106,21 +10116,26 @@ class TypeAliasElementImpl extends ElementImpl
1010610116  }
1010710117
1010810118  @override 
10119+   @trackedIncludedInId 
1010910120  bool  get  isSynthetic {
1011010121    return  _firstFragment.isSynthetic;
1011110122  }
1011210123
1011310124  @override 
10125+   @trackedIncludedInId 
1011410126  ElementKind  get  kind =>  ElementKind .TYPE_ALIAS ;
1011510127
1011610128  @override 
10129+   @trackedIncludedInId 
1011710130  LibraryElementImpl  get  library =>  super .library! ;
1011810131
1011910132  @Deprecated ('Use library instead' )
1012010133  @override 
10134+   @trackedIndirectly 
1012110135  LibraryElementImpl  get  library2 =>  library;
1012210136
1012310137  @override 
10138+   @trackedIncludedInId 
1012410139  MetadataImpl  get  metadata {
1012510140    var  annotations =  < ElementAnnotationImpl > [];
1012610141    for  (var  fragment in  _fragments) {
@@ -10131,16 +10146,20 @@ class TypeAliasElementImpl extends ElementImpl
1013110146
1013210147  @Deprecated ('Use metadata instead' )
1013310148  @override 
10149+   @trackedIndirectly 
1013410150  MetadataImpl  get  metadata2 =>  metadata;
1013510151
1013610152  @override 
10153+   @trackedIncludedInId 
1013710154  String ?  get  name =>  _firstFragment.name;
1013810155
1013910156  @Deprecated ('Use name instead' )
1014010157  @override 
10158+   @trackedIndirectly 
1014110159  String ?  get  name3 =>  name;
1014210160
1014310161  @override 
10162+   @trackedIncludedInId 
1014410163  List <TypeParameterElementImpl > get  typeParameters {
1014510164    return  _firstFragment.typeParameters
1014610165        .map ((fragment) =>  fragment.element)
@@ -10149,34 +10168,40 @@ class TypeAliasElementImpl extends ElementImpl
1014910168
1015010169  @Deprecated ('Use typeParameters instead' )
1015110170  @override 
10171+   @trackedIndirectly 
1015210172  List <TypeParameterElementImpl > get  typeParameters2 =>  typeParameters;
1015310173
10154-   /// A list of all of the fragments from which this element is composed. 
1015510174  List <TypeAliasFragmentImpl > get  _fragments {
10156-     var  result =  < TypeAliasFragmentImpl > [];
10157-     TypeAliasFragmentImpl ?  current =  _firstFragment;
10158-     while  (current !=  null ) {
10159-       result.add (current);
10160-       current =  current.nextFragment;
10161-     }
10162-     return  result;
10175+     return  [
10176+       for  (
10177+         TypeAliasFragmentImpl ?  fragment =  _firstFragment;
10178+         fragment !=  null ;
10179+         fragment =  fragment.nextFragment
10180+       )
10181+         fragment,
10182+     ];
1016310183  }
1016410184
1016510185  @override 
10186+   @trackedDirectlyOpaque 
1016610187  T ?  accept <T >(ElementVisitor2 <T > visitor) {
10188+     globalResultRequirements? .recordOpaqueApiUse (this , 'accept' );
1016710189    return  visitor.visitTypeAliasElement (this );
1016810190  }
1016910191
1017010192  @Deprecated ('Use accept instead' )
1017110193  @override 
10194+   @trackedIndirectly 
1017210195  T ?  accept2 <T >(ElementVisitor2 <T > visitor) =>  accept (visitor);
1017310196
1017410197  @override 
10198+   @trackedIndirectly 
1017510199  void  appendTo (ElementDisplayStringBuilder  builder) {
1017610200    builder.writeTypeAliasElement (this );
1017710201  }
1017810202
1017910203  @override 
10204+   @trackedIndirectly 
1018010205  TypeImpl  instantiate ({
1018110206    required  List <DartType > typeArguments,
1018210207    required  NullabilitySuffix  nullabilitySuffix,
@@ -10187,6 +10212,7 @@ class TypeAliasElementImpl extends ElementImpl
1018710212    );
1018810213  }
1018910214
10215+   @trackedIndirectly 
1019010216  TypeImpl  instantiateImpl ({
1019110217    required  List <TypeImpl > typeArguments,
1019210218    required  NullabilitySuffix  nullabilitySuffix,
0 commit comments