@@ -183,7 +183,7 @@ func testImplicitPropertyWrapper(projection: ProjectionWrapper<Int>) {
183
183
// CHECK: sil private [ossa] @$s26property_wrapper_parameter27testImplicitPropertyWrapper10projectionyAA010ProjectionG0VySiG_tFyAFcfu_yAFcfU_6$valueL_AFvg : $@convention(thin) (ProjectionWrapper<Int>) -> ProjectionWrapper<Int>
184
184
185
185
// getter of value #1 in closure #1 in implicit closure #1 in testImplicitPropertyWrapper(projection:)
186
- // CHECK: sil private [ossa] @$s26property_wrapper_parameter27testImplicitPropertyWrapper10projectionyAA010ProjectionG0VySiG_tFyAFcfu_yAFcfU_5valueL_Sivg : $@convention(thin) () -> Int
186
+ // CHECK: sil private [ossa] @$s26property_wrapper_parameter27testImplicitPropertyWrapper10projectionyAA010ProjectionG0VySiG_tFyAFcfu_yAFcfU_5valueL_Sivg : $@convention(thin) (ProjectionWrapper<Int> ) -> Int
187
187
188
188
let _: ( ProjectionWrapper < Int > ) -> ( Int , ProjectionWrapper < Int > ) = { $value in
189
189
( value, $value)
@@ -202,7 +202,7 @@ func testImplicitPropertyWrapper(projection: ProjectionWrapper<Int>) {
202
202
// CHECK: sil private [ossa] @$s26property_wrapper_parameter27testImplicitPropertyWrapper10projectionyAA010ProjectionG0VySiG_tFSi_AFtAFcfu0_Si_AFtAFcfU0_6$valueL_AFvg : $@convention(thin) (ProjectionWrapper<Int>) -> ProjectionWrapper<Int>
203
203
204
204
// getter of value #1 in closure #2 in implicit closure #2 in testImplicitPropertyWrapper(projection:)
205
- // CHECK: sil private [ossa] @$s26property_wrapper_parameter27testImplicitPropertyWrapper10projectionyAA010ProjectionG0VySiG_tFSi_AFtAFcfu0_Si_AFtAFcfU0_5valueL_Sivg : $@convention(thin) () -> Int
205
+ // CHECK: sil private [ossa] @$s26property_wrapper_parameter27testImplicitPropertyWrapper10projectionyAA010ProjectionG0VySiG_tFSi_AFtAFcfu0_Si_AFtAFcfU0_5valueL_Sivg : $@convention(thin) (ProjectionWrapper<Int> ) -> Int
206
206
}
207
207
208
208
@propertyWrapper
@@ -247,3 +247,39 @@ public func publicFunc(@PublicWrapper value: String) {
247
247
// CHECK: function_ref @$s26property_wrapper_parameter10publicFunc5valueyAA13PublicWrapperVySSG_tFACL_SSvpfP : $@convention(thin) (@owned String) -> @owned PublicWrapper<String>
248
248
// CHECK: function_ref @$s26property_wrapper_parameter10publicFunc5valueyAA13PublicWrapperVySSG_tF : $@convention(thin) (@guaranteed PublicWrapper<String>) -> ()
249
249
}
250
+
251
+ @propertyWrapper
252
+ struct NonmutatingSetter < Value> {
253
+ var wrappedValue : Value {
254
+ // CHECK-LABEL: sil hidden [ossa] @$s26property_wrapper_parameter17NonmutatingSetterV12wrappedValuexvg : $@convention(method) <Value> (NonmutatingSetter<Value>) -> @out Value
255
+ get { fatalError ( ) }
256
+ // CHECK-LABEL: sil hidden [ossa] @$s26property_wrapper_parameter17NonmutatingSetterV12wrappedValuexvs : $@convention(method) <Value> (@in Value, NonmutatingSetter<Value>) -> ()
257
+ nonmutating set { }
258
+ }
259
+ var projectedValue : Self { self }
260
+ init ( wrappedValue: Value ) { }
261
+ init ( projectedValue: Self ) { }
262
+ }
263
+
264
+ func genericClosure< T> ( arg: T , _ closure: ( T ) -> Int ) { }
265
+
266
+ // CHECK-LABEL: sil hidden [ossa] @$s26property_wrapper_parameter30testNonmutatingSetterSynthesis5valueyAA0eF0VySiG_tF : $@convention(thin) (NonmutatingSetter<Int>) -> ()
267
+ func testNonmutatingSetterSynthesis( @NonmutatingSetter value: Int ) {
268
+ genericClosure ( arg: $value) { $value in
269
+ ( value = 10 , value) . 1
270
+ }
271
+
272
+ // closure #1 in implicit closure #1 in testNonmutatingSetterSynthesis(value:)
273
+ // CHECK-LABEL: sil private [ossa] @$s26property_wrapper_parameter30testNonmutatingSetterSynthesis5valueyAA0eF0VySiG_tFSiAFcfu_SiAFcfU_ : $@convention(thin) (NonmutatingSetter<Int>) -> Int
274
+ // CHECK: function_ref @$s26property_wrapper_parameter30testNonmutatingSetterSynthesis5valueyAA0eF0VySiG_tFSiAFcfu_SiAFcfU_ACL_Sivs : $@convention(thin) (Int, NonmutatingSetter<Int>) -> ()
275
+ // CHECK: function_ref @$s26property_wrapper_parameter30testNonmutatingSetterSynthesis5valueyAA0eF0VySiG_tFSiAFcfu_SiAFcfU_ACL_Sivg : $@convention(thin) (NonmutatingSetter<Int>) -> Int
276
+ // CHECK: return
277
+
278
+ // getter of value #1 in closure #1 in implicit closure #1 in testNonmutatingSetterSynthesis(value:)
279
+ // CHECK-LABEL: sil private [ossa] @$s26property_wrapper_parameter30testNonmutatingSetterSynthesis5valueyAA0eF0VySiG_tFSiAFcfu_SiAFcfU_ACL_Sivg : $@convention(thin) (NonmutatingSetter<Int>) -> Int
280
+ // CHECK: function_ref @$s26property_wrapper_parameter17NonmutatingSetterV12wrappedValuexvg : $@convention(method) <τ_0_0> (NonmutatingSetter<τ_0_0>) -> @out τ_0_0
281
+
282
+ // setter of value #1 in closure #1 in implicit closure #1 in testNonmutatingSetterSynthesis(value:)
283
+ // CHECK-LABEL: sil private [ossa] @$s26property_wrapper_parameter30testNonmutatingSetterSynthesis5valueyAA0eF0VySiG_tFSiAFcfu_SiAFcfU_ACL_Sivs : $@convention(thin) (Int, NonmutatingSetter<Int>) -> ()
284
+ // CHECK: function_ref @$s26property_wrapper_parameter17NonmutatingSetterV12wrappedValuexvs : $@convention(method) <τ_0_0> (@in τ_0_0, NonmutatingSetter<τ_0_0>) -> ()
285
+ }
0 commit comments