@@ -74,9 +74,9 @@ bb7(%64 : @owned $Optional<Data>):
74
74
return %102 : $()
75
75
}
76
76
77
+ // Not optimized
77
78
// CHECK-LABEL: sil [Osize] [ossa] @test2 :
78
- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC4take3arg10Foundation4DataVSgAI_tFZToTembgnn_ :
79
- // CHECK: apply [[FUNC]]
79
+ // CHECK: objc_method
80
80
// CHECK-LABEL: } // end sil function 'test2'
81
81
sil [Osize] [ossa] @test2 : $@convention(thin) (@owned MyObject) -> @owned Optional<NSData> {
82
82
bb0(%0: @owned $MyObject):
@@ -96,9 +96,9 @@ bb0(%0: @owned $MyObject):
96
96
return %51 : $Optional<NSData>
97
97
}
98
98
99
+ // Not optimized
99
100
// CHECK-LABEL: sil [Osize] [ossa] @test3 :
100
- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC4take3arg10Foundation4DataVSgAI_tFZToTembgnn_ :
101
- // CHECK: apply [[FUNC]]
101
+ // CHECK: objc_method
102
102
// CHECK-LABEL: } // end sil function 'test3'
103
103
sil [Osize] [ossa] @test3 : $@convention(thin) (@owned MyObject, @in Data) -> @owned Optional<NSData> {
104
104
bb0(%0: @owned $MyObject, %1 : $*Data):
@@ -116,9 +116,9 @@ bb0(%0: @owned $MyObject, %1 : $*Data):
116
116
return %51 : $Optional<NSData>
117
117
}
118
118
119
+ // Not optimized
119
120
// CHECK-LABEL: sil [Osize] [ossa] @test4 :
120
- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC8take_two4arg14arg210Foundation4DataVSgAJ_AJtFZToTembgbgnn_ :
121
- // CHECK: apply [[FUNC]]
121
+ // CHECK: objc_method
122
122
// CHECK-LABEL: } // end sil function 'test4'
123
123
sil [Osize] [ossa] @test4 : $@convention(thin) (@owned MyObject) -> @owned Optional<NSData> {
124
124
bb0(%0: @owned $MyObject):
177
177
return %51 : $Optional<NSData>
178
178
}
179
179
180
+ // Not optimized
180
181
// CHECK-LABEL: sil [Osize] [ossa] @test6 :
181
- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC4take3arg10Foundation4DataVSgAI_tFZToTembgnn_ :
182
- // CHECK: apply [[FUNC]]
182
+ // CHECK: objc_method
183
183
// CHECK-LABEL: } // end sil function 'test6'
184
184
sil [Osize] [ossa] @test6 : $@convention(thin) (@owned MyObject) -> @owned Optional<NSData> {
185
185
bb0(%0: @owned $MyObject):
@@ -305,3 +305,23 @@ sil [Osize] [ossa] @destroy_after_borrow : $@convention(thin) () -> @owned Sub {
305
305
apply undef(%162) : $@convention(thin) (Int) -> ()
306
306
return %107 : $Sub
307
307
}
308
+
309
+ // CHECK-LABEL: sil [Osize] [ossa] @test_consume :
310
+ // CHECK: objc_method
311
+ // CHECK-LABEL: } // end sil function 'test_consume'
312
+ sil [Osize] [ossa] @test_consume : $@convention(thin) (@owned MyObject) -> @owned Optional<NSData> {
313
+ bb0(%0: @owned $MyObject):
314
+ %35 = metatype $@objc_metatype MyObject.Type
315
+ %41 = function_ref @getData : $@convention(thin) () -> @owned Data
316
+ %43 = apply %41() : $@convention(thin) () -> @owned Data
317
+ %44 = function_ref @$s10Foundation4DataV19_bridgeToObjectiveCSo6NSDataCyF : $@convention(method) (@guaranteed Data) -> @owned NSData
318
+ %45 = apply %44(%43) : $@convention(method) (@guaranteed Data) -> @owned NSData
319
+ %46 = enum $Optional<NSData>, #Optional.some!enumelt, %45 : $NSData
320
+ destroy_value %0 : $MyObject
321
+ %48 = apply undef(%43) : $@convention(method) (@owned Data) -> ()
322
+ %50 = objc_method %35 : $@objc_metatype MyObject.Type, #MyObject.take!foreign : (MyObject.Type) -> (Data?) -> Data?, $@convention(objc_method) (Optional<NSData>, @objc_metatype MyObject.Type) -> @autoreleased Optional<NSData>
323
+ %51 = apply %50(%46, %35) : $@convention(objc_method) (Optional<NSData>, @objc_metatype MyObject.Type) -> @autoreleased Optional<NSData>
324
+ destroy_value %46 : $Optional<NSData>
325
+ return %51 : $Optional<NSData>
326
+ }
327
+
0 commit comments