@@ -9547,6 +9547,62 @@ class C {
9547
9547
''' );
9548
9548
}
9549
9549
9550
+ test_metadata_constructor_call_named_synthetic_ofClassAlias_generic () async {
9551
+ var library = await checkLibrary ('''
9552
+ class A {
9553
+ const A.named();
9554
+ }
9555
+
9556
+ mixin B {}
9557
+
9558
+ class C<T> = A with B;
9559
+
9560
+ @C.named()
9561
+ class D {}
9562
+ ''' );
9563
+ checkElementText (
9564
+ library,
9565
+ r'''
9566
+ class A {
9567
+ const A.named();
9568
+ }
9569
+ class alias C extends A with B {
9570
+ synthetic const C.named() = A.named;
9571
+ }
9572
+ typeParameters
9573
+ T
9574
+ bound: null
9575
+ defaultType: dynamic
9576
+ class D {
9577
+ }
9578
+ metadata
9579
+ Annotation
9580
+ arguments: ArgumentList
9581
+ element: ConstructorMember
9582
+ base: self::@class::C::@constructor::named
9583
+ substitution: {T: dynamic}
9584
+ name: PrefixedIdentifier
9585
+ identifier: SimpleIdentifier
9586
+ staticElement: ConstructorMember
9587
+ base: self::@class::C::@constructor::named
9588
+ substitution: {T: dynamic}
9589
+ staticType: null
9590
+ token: named
9591
+ period: .
9592
+ prefix: SimpleIdentifier
9593
+ staticElement: self::@class::C
9594
+ staticType: null
9595
+ token: C
9596
+ staticElement: ConstructorMember
9597
+ base: self::@class::C::@constructor::named
9598
+ substitution: {T: dynamic}
9599
+ staticType: null
9600
+ mixin B on Object {
9601
+ }
9602
+ ''' ,
9603
+ withFullyResolvedAst: true );
9604
+ }
9605
+
9550
9606
test_metadata_constructor_call_unnamed () async {
9551
9607
var library = await checkLibrary ('class A { const A(); } @A() class C {}' );
9552
9608
checkElementText (library, r'''
@@ -9574,6 +9630,50 @@ class C {
9574
9630
''' );
9575
9631
}
9576
9632
9633
+ test_metadata_constructor_call_unnamed_synthetic_ofClassAlias_generic () async {
9634
+ var library = await checkLibrary ('''
9635
+ class A {
9636
+ const A();
9637
+ }
9638
+
9639
+ mixin B {}
9640
+
9641
+ class C<T> = A with B;
9642
+
9643
+ @C()
9644
+ class D {}
9645
+ ''' );
9646
+ checkElementText (
9647
+ library,
9648
+ r'''
9649
+ class A {
9650
+ const A();
9651
+ }
9652
+ class alias C extends A with B {
9653
+ synthetic const C() = A;
9654
+ }
9655
+ typeParameters
9656
+ T
9657
+ bound: null
9658
+ defaultType: dynamic
9659
+ class D {
9660
+ }
9661
+ metadata
9662
+ Annotation
9663
+ arguments: ArgumentList
9664
+ element: ConstructorMember
9665
+ base: self::@class::C::@constructor::•
9666
+ substitution: {T: dynamic}
9667
+ name: SimpleIdentifier
9668
+ staticElement: self::@class::C
9669
+ staticType: null
9670
+ token: C
9671
+ mixin B on Object {
9672
+ }
9673
+ ''' ,
9674
+ withFullyResolvedAst: true );
9675
+ }
9676
+
9577
9677
test_metadata_constructor_call_with_args () async {
9578
9678
var library =
9579
9679
await checkLibrary ('class A { const A(x); } @A(null) class C {}' );
0 commit comments