@@ -52,16 +52,24 @@ public struct ProjectedValueWrapper<T> {
5252 }
5353}
5454
55+ @propertyWrapper public struct HasTwoTypeParameters < Value, Other> {
56+ public var wrappedValue : Value
57+
58+ init ( wrappedValue: Value , _ other: Other ) {
59+ fatalError ( )
60+ }
61+ }
62+
5563// CHECK: public struct HasWrappers {
5664public struct HasWrappers {
57- // CHECK: @TestResilient.Wrapper public var x: {{(Swift.)?}}Int {
65+ // CHECK: @TestResilient.Wrapper<Swift.Int> public var x: {{(Swift.)?}}Int {
5866 // CHECK-NEXT: get
5967 // CHECK-NEXT: set
6068 // CHECK-NEXT: _modify
6169 // CHECK-NEXT: }
6270 @Wrapper public var x : Int
6371
64- // CHECK: @TestResilient.WrapperWithInitialValue @_projectedValueProperty($y) public var y: Swift.Int {
72+ // CHECK: @TestResilient.WrapperWithInitialValue<Swift.Int> @_projectedValueProperty($y) public var y: Swift.Int {
6573 // CHECK-NEXT: get
6674 // CHECK-NEXT: }
6775 @WrapperWithInitialValue public private( set) var y = 17
@@ -70,13 +78,41 @@ public struct HasWrappers {
7078 // CHECK-NEXT: get
7179 // CHECK-NEXT: }
7280
73- // CHECK: @TestResilient.WrapperWithInitialValue @_projectedValueProperty($z) public var z: Swift.Bool {
81+ // CHECK: @TestResilient.HasTwoTypeParameters<Swift.Int, Swift.String> public var w1: Swift.Int {
82+ // CHECK-NEXT: get
83+ // CHECK-NEXT: set
84+ // CHECK-NEXT: _modify
85+ // CHECK-NEXT: }
86+ @HasTwoTypeParameters ( wrappedValue: 0 , " other " ) public var w1 : Int
87+
88+ // CHECK: @TestResilient.HasTwoTypeParameters<Swift.Int, Swift.String> public var w2: Swift.Int {
89+ // CHECK-NEXT: get
90+ // CHECK-NEXT: set
91+ // CHECK-NEXT: _modify
92+ // CHECK-NEXT: }
93+ @HasTwoTypeParameters ( " other " ) public var w2 : Int = 0
94+
95+ // CHECK: @TestResilient.HasTwoTypeParameters<TestResilient.HasTwoTypeParameters<Swift.Int, Swift.Double>, Swift.String> @TestResilient.HasTwoTypeParameters public var w3: Swift.Int {
96+ // CHECK-NEXT: get
97+ // CHECK-NEXT: set
98+ // CHECK-NEXT: _modify
99+ // CHECK-NEXT: }
100+ @HasTwoTypeParameters ( " a " ) @HasTwoTypeParameters ( 1.0 ) public var w3 : Int = 0
101+
102+ // CHECK: @TestResilient.WrapperWithInitialValue<Swift.Bool> @_projectedValueProperty($z) public var z: Swift.Bool {
74103 // CHECK-NEXT: get
75104 // CHECK-NEXT: set
76105 // CHECK-NEXT: _modify
77106 // CHECK-NEXT: }
78107 @WrapperWithInitialValue ( alternate: false ) public var z
79108
109+ // CHECK: @TestResilient.HasTwoTypeParameters<TestResilient.Wrapper<Swift.Int>, Swift.String> @TestResilient.Wrapper public var composed: Swift.Int {
110+ // CHECK-NEXT: get
111+ // CHECK-NEXT: set
112+ // CHECK-NEXT: _modify
113+ // CHECK-NEXT: }
114+ @HasTwoTypeParameters ( " other " ) @Wrapper public var composed : Int = 42
115+
80116 // CHECK: public func hasParameterWithImplementationWrapper(x: Swift.Int)
81117 public func hasParameterWithImplementationWrapper( @Wrapper x: Int ) { }
82118
@@ -89,9 +125,9 @@ public struct HasWrappers {
89125 // CHECK: @_alwaysEmitIntoClient public func hasParameterWithImplementationWrapperAEIC(@TestResilient.Wrapper x: Swift.Int)
90126 @_alwaysEmitIntoClient public func hasParameterWithImplementationWrapperAEIC( @Wrapper x: Int ) { }
91127
92- // CHECK: public func hasParameterWithAPIWrapper(@TestResilient.ProjectedValueWrapper x: Swift.Int)
128+ // CHECK: public func hasParameterWithAPIWrapper(@TestResilient.ProjectedValueWrapper<Swift.Int> x: Swift.Int)
93129 public func hasParameterWithAPIWrapper( @ProjectedValueWrapper x: Int ) { }
94130
95- // CHECK: public func hasParameterWithAPIWrapperComposed(@TestResilient.ProjectedValueWrapper @TestResilient.Wrapper x: Swift.Int)
131+ // CHECK: public func hasParameterWithAPIWrapperComposed(@TestResilient.ProjectedValueWrapper<TestResilient.Wrapper<Swift.Int>> @TestResilient.Wrapper x: Swift.Int)
96132 public func hasParameterWithAPIWrapperComposed( @ProjectedValueWrapper @Wrapper x: Int ) { }
97133}
0 commit comments