@@ -61,58 +61,66 @@ bb0(%0 : $*S):
61
61
return %6 : $()
62
62
}
63
63
64
- // Check that a specialization of address_closure_user was generated which does not
64
+ // CHECK-LABEL: sil @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> () {
65
+ sil @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> () {
66
+ bb0(%0 : $@callee_owned () -> ()):
67
+ %1 = apply %0() : $@callee_owned () -> ()
68
+ %9999 = tuple()
69
+ return %9999 : $()
70
+ }
71
+
72
+ // Check that a specialization of address_closure_noescape_user was generated which does not
65
73
// take a closure as a parameter anymore.
66
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user {{.*}} : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
74
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
67
75
// CHECK: function_ref @address_closure_trivial : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
68
76
// CHECK: partial_apply %{{.*}} : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
69
77
// CHECK: apply
70
78
// CHECK: return
71
79
72
- // Check that a specialization of address_closure_user was generated which does not
80
+ // Check that a specialization of address_closure_noescape_user was generated which does not
73
81
// take a closure as a parameter anymore.
74
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable Int32) -> ()
82
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable Int32) -> ()
75
83
// CHECK: function_ref @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int32) -> ()
76
84
// CHECK: partial_apply %{{.*}} : $@convention(thin) (@inout_aliasable Int32) -> ()
77
85
// CHECK: apply
78
86
// CHECK: return
79
87
80
- // Check that a specialization of address_closure_user was generated which does not
88
+ // Check that a specialization of address_closure_noescape_user was generated which does not
81
89
// take a closure as a parameter anymore.
82
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable P) -> ()
90
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable P) -> ()
83
91
// CHECK: function_ref @address_closure_existential : $@convention(thin) (@inout_aliasable P) -> ()
84
92
// CHECK: partial_apply %{{.*}} : $@convention(thin) (@inout_aliasable P) -> ()
85
93
// CHECK: apply
86
94
// CHECK: return
87
95
88
- // Check that a specialization of address_closure_user was generated which does not
96
+ // Check that a specialization of address_closure_noescape_user was generated which does not
89
97
// take a closure as a parameter anymore.
90
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
98
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
91
99
// CHECK: function_ref @address_closure_struct1 : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
92
100
// CHECK: partial_apply %{{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
93
101
// CHECK: apply
94
102
// CHECK: return
95
103
96
104
// Check that a specialization of address_closure_user was generated which does not
97
105
// take a closure as a parameter anymore.
98
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
106
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
99
107
// CHECK: function_ref @address_closure_struct2 : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
100
108
// CHECK: partial_apply %{{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
101
109
// CHECK: apply
102
110
// CHECK: return
103
111
104
112
// Check that a specialization of address_closure_user was generated which does not
105
113
// take a closure as a parameter anymore.
106
- // CHECK-LABEL: sil shared @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
114
+ // CHECK-LABEL: sil shared @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
107
115
// CHECK: function_ref @address_closure_class1 : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
108
116
// CHECK: partial_apply %{{.*}} : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
109
117
// CHECK: apply
110
118
// CHECK: return
111
119
112
- // CHECK-LABEL: sil @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> () {
113
- sil @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> () {
114
- bb0(%0 : $@callee_owned () -> ()):
115
- %1 = apply %0() : $@callee_owned () -> ()
120
+ // CHECK-LABEL: sil @address_closure_noescape_user : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> () {
121
+ sil @address_closure_noescape_user : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> () {
122
+ bb0(%0 : $@noescape @ callee_owned () -> ()):
123
+ %1 = apply %0() : $@noescape @ callee_owned () -> ()
116
124
%9999 = tuple()
117
125
return %9999 : $()
118
126
}
@@ -201,20 +209,21 @@ bb0(%0 : $Int32, %1 : $*Int32):
201
209
202
210
// CHECK-LABEL: sil @address_caller_trivial
203
211
// CHECK-NOT: partial_apply
204
- // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
212
+ // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
205
213
// CHECK: apply [[SPECIALIZED_FN1]]{{.*}}
206
214
// CHECK-NOT: partial_apply
207
215
// CHECK: return
208
216
sil @address_caller_trivial: $@convention(thin) (Int32) -> Int32 {
209
217
bb0(%0 : $Int32):
210
218
%2 = alloc_stack $Int32, var, name "xx"
211
219
store %0 to %2 : $*Int32
212
- // function_ref address_closure_user (f:)
213
- %4 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
220
+ // function_ref address_closure_noescape_user (f:)
221
+ %4 = function_ref @address_closure_noescape_user : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
214
222
// function_ref address_closure_trivial(x:)
215
223
%5 = function_ref @address_closure_trivial : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
216
224
%6 = partial_apply %5(%0, %2) : $@convention(thin) (Int32, @inout_aliasable Int32) -> ()
217
- %7 = apply %4(%6) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
225
+ %6b = convert_function %6 : $@callee_owned () -> () to $@noescape @callee_owned () -> ()
226
+ %7 = apply %4(%6b) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
218
227
%8 = load %2 : $*Int32
219
228
dealloc_stack %2 : $*Int32
220
229
return %8 : $Int32
@@ -238,18 +247,19 @@ bb0(%0 : $*Int32):
238
247
239
248
// CHECK-LABEL: sil @address_caller_trivial_mutating
240
249
// CHECK-NOT: partial_apply
241
- // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable Int32) -> ()
250
+ // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable Int32) -> ()
242
251
// CHECK: apply [[SPECIALIZED_FN1]]{{.*}}
243
252
// CHECK-NOT: partial_apply
244
253
// CHECK: return
245
254
sil @address_caller_trivial_mutating: $@convention(thin) (Int32) -> Int32 {
246
255
bb0(%0 : $Int32):
247
256
%2 = alloc_stack $Int32, var, name "xx"
248
257
store %0 to %2 : $*Int32
249
- %4 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
258
+ %4 = function_ref @address_closure_noescape_user : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
250
259
%5 = function_ref @address_closure_trivial_mutating : $@convention(thin) (@inout_aliasable Int32) -> ()
251
260
%6 = partial_apply %5(%2) : $@convention(thin) (@inout_aliasable Int32) -> ()
252
- %7 = apply %4(%6) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
261
+ %6b = convert_function %6 : $@callee_owned () -> () to $@noescape @callee_owned () -> ()
262
+ %7 = apply %4(%6b) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
253
263
%8 = load %2 : $*Int32
254
264
dealloc_stack %2 : $*Int32
255
265
return %8 : $Int32
@@ -294,17 +304,17 @@ bb0(%0 : $*Q, %1 : $*Q, %2 : $*Q, %3 : $*Q):
294
304
// CHECK: apply [[PARTIAL_APPLY]]
295
305
// CHECK: return
296
306
297
- sil @address_closure_user_out_result : $@convention(thin) (@owned @callee_owned (@in Q) -> @out Q) -> @out Q {
298
- bb0(%0 : $*Q, %1 : $@callee_owned (@in Q) -> @out Q):
307
+ sil @address_closure_user_out_result : $@convention(thin) (@owned @noescape @ callee_owned (@in Q) -> @out Q) -> @out Q {
308
+ bb0(%0 : $*Q, %1 : $@noescape @ callee_owned (@in Q) -> @out Q):
299
309
%4 = alloc_stack $Q
300
310
%5 = init_existential_addr %4 : $*Q, $S
301
311
%6 = function_ref @S_init : $@convention(method) (@thin S.Type) -> @owned S
302
312
%7 = metatype $@thin S.Type
303
313
%8 = apply %6(%7) : $@convention(method) (@thin S.Type) -> @owned S
304
314
store %8 to %5 : $*S
305
- %10 = apply %1(%0, %4) : $@callee_owned (@in Q) -> @out Q
315
+ %10 = apply %1(%0, %4) : $@noescape @ callee_owned (@in Q) -> @out Q
306
316
dealloc_stack %4 : $*Q
307
- strong_release %1 : $@callee_owned (@in Q) -> @out Q
317
+ strong_release %1 : $@noescape @ callee_owned (@in Q) -> @out Q
308
318
%13 = tuple ()
309
319
return %13 : $()
310
320
}
@@ -321,10 +331,11 @@ bb0(%0 : $*Q, %1 : $@callee_owned (@in Q) -> @out Q):
321
331
// CHECK: return
322
332
sil @address_caller_out_result: $@convention(thin) (@in Q, @in Q) -> @out Q {
323
333
bb0(%0 : $*Q, %1 : $*Q, %2 : $*Q):
324
- %5 = function_ref @address_closure_user_out_result : $@convention(thin) (@owned @callee_owned (@in Q) -> @out Q) -> @out Q
334
+ %5 = function_ref @address_closure_user_out_result : $@convention(thin) (@owned @noescape @ callee_owned (@in Q) -> @out Q) -> @out Q
325
335
%6 = function_ref @address_closure_out_result : $@convention(thin) (@in Q, @inout_aliasable Q, @inout_aliasable Q) -> @out Q
326
336
%7 = partial_apply %6(%1, %2) : $@convention(thin) (@in Q, @inout_aliasable Q, @inout_aliasable Q) -> @out Q
327
- %8 = apply %5(%0, %7) : $@convention(thin) (@owned @callee_owned (@in Q) -> @out Q) -> @out Q
337
+ %7b = convert_function %7 : $@callee_owned (@in Q) -> @out Q to $@noescape @callee_owned (@in Q) -> @out Q
338
+ %8 = apply %5(%0, %7b) : $@convention(thin) (@owned @noescape @callee_owned (@in Q) -> @out Q) -> @out Q
328
339
destroy_addr %2 : $*Q
329
340
destroy_addr %1 : $*Q
330
341
%11 = tuple ()
@@ -333,8 +344,8 @@ bb0(%0 : $*Q, %1 : $*Q, %2 : $*Q):
333
344
334
345
// CHECK-LABEL: sil @address_caller_existential
335
346
// CHECK-NOT: partial_apply
336
- // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable P) -> ()
337
- // CHECK: [[SPECIALIZED_FN2:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable P) -> ()
347
+ // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable P) -> ()
348
+ // CHECK: [[SPECIALIZED_FN2:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable P) -> ()
338
349
// CHECK: apply [[SPECIALIZED_FN2]]{{.*}}
339
350
// CHECK: apply [[SPECIALIZED_FN1]]{{.*}}
340
351
// CHECK-NOT: partial_apply
@@ -345,11 +356,12 @@ bb0(%0 : $*P, %1 : $*P, %2 : $*P, %3 : $Int32):
345
356
copy_addr %1 to [initialization] %7 : $*P
346
357
%9 = function_ref @address_closure_existential : $@convention(thin) (@inout_aliasable P) -> ()
347
358
%10 = partial_apply %9(%7) : $@convention(thin) (@inout_aliasable P) -> ()
348
- %12 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
359
+ %10b = convert_function %10 : $@callee_owned () -> () to $@noescape @callee_owned () -> ()
360
+ %12 = function_ref @address_closure_noescape_user : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
349
361
strong_retain %10 : $@callee_owned () -> ()
350
- %14 = apply %12(%10 ) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
362
+ %14 = apply %12(%10b ) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
351
363
strong_retain %10 : $@callee_owned () -> ()
352
- %16 = apply %12(%10 ) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
364
+ %16 = apply %12(%10b ) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
353
365
%17 = integer_literal $Builtin.Int32, 10
354
366
%18 = struct_extract %3 : $Int32, #Int32._value
355
367
%19 = builtin "cmp_slt_Int32"(%17 : $Builtin.Int32, %18 : $Builtin.Int32) : $Builtin.Int1
@@ -404,9 +416,9 @@ bb0(%0 : $*S, %1 : $S):
404
416
405
417
// CHECK-LABEL: sil @address_caller_struct
406
418
// CHECK-NOT: partial_apply
407
- // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
419
+ // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
408
420
// CHECK: apply [[SPECIALIZED_FN1]]
409
- // CHECK: [[SPECIALIZED_FN2:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
421
+ // CHECK: [[SPECIALIZED_FN2:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
410
422
// CHECK: apply [[SPECIALIZED_FN2]]
411
423
// CHECK-NOT: partial_apply
412
424
// CHECK: return
@@ -415,16 +427,18 @@ bb0(%0 : $S, %1 : $S):
415
427
%4 = alloc_stack $S, var, name "xx"
416
428
%5 = struct_extract %0 : $S, #S.c
417
429
store %0 to %4 : $*S
418
- %7 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
430
+ %7 = function_ref @address_closure_noescape_user : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
419
431
%8 = function_ref @address_closure_struct1 : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
420
432
%9 = partial_apply %8(%4, %1) : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
433
+ %9b = convert_function %9 : $@callee_owned () -> () to $@noescape @callee_owned () -> ()
421
434
retain_value %0 : $S
422
435
retain_value %1 : $S
423
- %12 = apply %7(%9 ) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
436
+ %12 = apply %7(%9b ) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
424
437
%13 = function_ref @address_closure_struct2 : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
425
438
%14 = partial_apply %13(%4, %0) : $@convention(thin) (@inout_aliasable S, @owned S) -> ()
439
+ %14b = convert_function %14 : $@callee_owned () -> () to $@noescape @callee_owned () -> ()
426
440
retain_value %5 : $Optional<C>
427
- %16 = apply %7(%14 ) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
441
+ %16 = apply %7(%14b ) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
428
442
%17 = load %4 : $*S
429
443
dealloc_stack %4 : $*S
430
444
return %17 : $S
@@ -441,8 +455,8 @@ bb0(%0 : $*C, %1 : $C):
441
455
442
456
// CHECK-LABEL: sil @address_caller_class1
443
457
// CHECK-NOT: partial_apply
444
- // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
445
- // CHECK: [[SPECIALIZED_FN2:%.*]] = function_ref @{{.*}}address_closure_user {{.*}} : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
458
+ // CHECK: [[SPECIALIZED_FN1:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
459
+ // CHECK: [[SPECIALIZED_FN2:%.*]] = function_ref @{{.*}}address_closure_noescape_user {{.*}} : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
446
460
// CHECK: apply [[SPECIALIZED_FN2]]{{.*}}
447
461
// CHECK: apply [[SPECIALIZED_FN1]]{{.*}}
448
462
// CHECK-NOT: partial_apply
@@ -453,13 +467,14 @@ bb0(%0 : $C, %1 : $C):
453
467
store %0 to %4 : $*C
454
468
%7 = function_ref @address_closure_class1 : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
455
469
%8 = partial_apply %7(%4, %1) : $@convention(thin) (@inout_aliasable C, @owned C) -> ()
456
- %10 = function_ref @address_closure_user : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
470
+ %8b = convert_function %8 : $@callee_owned () -> () to $@noescape @callee_owned () -> ()
471
+ %10 = function_ref @address_closure_noescape_user : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
457
472
strong_retain %0 : $C
458
473
strong_retain %1 : $C
459
474
strong_retain %8 : $@callee_owned () -> ()
460
- %14 = apply %10(%8 ) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
475
+ %14 = apply %10(%8b ) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
461
476
strong_retain %8 : $@callee_owned () -> ()
462
- %16 = apply %10(%8 ) : $@convention(thin) (@owned @callee_owned () -> ()) -> ()
477
+ %16 = apply %10(%8b ) : $@convention(thin) (@owned @noescape @callee_owned () -> ()) -> ()
463
478
%17 = load %4 : $*C
464
479
strong_retain %17 : $C
465
480
strong_release %8 : $@callee_owned () -> ()
@@ -661,13 +676,13 @@ bb4:
661
676
sil [noinline] @$S4test3barSiAA1P_p_SitF : $@convention(thin) (@in P, Int32) -> Int32 {
662
677
bb0(%0 : $*P, %1 : $Int32):
663
678
%2 = open_existential_addr mutable_access %0 : $*P to $*@opened("01234567-89ab-cdef-0123-000000000000") P
664
- %3 = witness_method $@opened("01234567-89ab-cdef-0123-000000000000") P, #P.foo!1, %2 : $*@opened("01234567-89ab-cdef-0123-000000000000") P : $@convention(witness_method: P) @callee_owned <T: P> (@owned @ callee_owned (Int32) -> Int32, Int32, @inout T) -> Int32
679
+ %3 = witness_method $@opened("01234567-89ab-cdef-0123-000000000000") P, #P.foo!1, %2 : $*@opened("01234567-89ab-cdef-0123-000000000000") P : $@convention(witness_method: P) @callee_owned <T: P> (@callee_owned (Int32) -> Int32, Int32, @inout T) -> Int32
665
680
%4 = integer_literal $Builtin.Int32, 2
666
681
%5 = struct $Int32 (%4 : $Builtin.Int32)
667
682
// function_ref test.baz (Swift.Int32)(m : Swift.Int32) -> Swift.Int32
668
683
%6 = function_ref @$S4test3bazSiSi1m_tcSiF : $@convention(thin) (Int32, Int32) -> Int32
669
684
%7 = partial_apply %6(%5) : $@convention(thin) (Int32, Int32) -> Int32
670
- %8 = apply %3<@opened("01234567-89ab-cdef-0123-000000000000") P>(%7, %1, %2) : $@convention(witness_method: P) @callee_owned <T: P> (@owned @ callee_owned (Int32) -> Int32, Int32, @inout T) -> Int32
685
+ %8 = apply %3<@opened("01234567-89ab-cdef-0123-000000000000") P>(%7, %1, %2) : $@convention(witness_method: P) @callee_owned <T: P> (@callee_owned (Int32) -> Int32, Int32, @inout T) -> Int32
671
686
destroy_addr %0 : $*P
672
687
return %8 : $Int32
673
688
}
@@ -687,7 +702,7 @@ bb0(%0 : $Builtin.Int32):
687
702
unreachable
688
703
}
689
704
690
- sil hidden [serialized] @thunk : $@convention(thin) (@owned @ callee_owned () -> ()) -> @out () {
705
+ sil hidden [serialized] @thunk : $@convention(thin) (@callee_owned () -> ()) -> @out () {
691
706
bb0(%0 : $*(), %1 : $@callee_owned () -> ()):
692
707
apply %1() : $@callee_owned () -> ()
693
708
%9999 = tuple()
702
717
%f1 = function_ref @callee : $@convention(thin) (Builtin.Int32) -> ()
703
718
%i1 = integer_literal $Builtin.Int32, 24
704
719
%p1 = partial_apply %f1(%i1) : $@convention(thin) (Builtin.Int32) -> ()
705
- %f2 = function_ref @thunk : $@convention(thin) (@owned @ callee_owned () -> ()) -> @out ()
720
+ %f2 = function_ref @thunk : $@convention(thin) (@callee_owned () -> ()) -> @out ()
706
721
%s1 = alloc_stack $()
707
- %a1 = apply %f2(%s1, %p1) : $@convention(thin) (@owned @ callee_owned () -> ()) -> @out ()
722
+ %a1 = apply %f2(%s1, %p1) : $@convention(thin) (@callee_owned () -> ()) -> @out ()
708
723
dealloc_stack %s1 : $*()
709
724
unreachable
710
725
}
0 commit comments