@@ -74,9 +74,9 @@ bb7(%64 : @owned $Optional<Data>):
7474 return %102 : $()
7575}
7676
77+ // Not optimized
7778// CHECK-LABEL: sil [Osize] [ossa] @test2 :
78- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC4take3arg10Foundation4DataVSgAI_tFZToTembgnn_ :
79- // CHECK: apply [[FUNC]]
79+ // CHECK: objc_method
8080// CHECK-LABEL: } // end sil function 'test2'
8181sil [Osize] [ossa] @test2 : $@convention(thin) (@owned MyObject) -> @owned Optional<NSData> {
8282bb0(%0: @owned $MyObject):
@@ -96,9 +96,9 @@ bb0(%0: @owned $MyObject):
9696 return %51 : $Optional<NSData>
9797}
9898
99+ // Not optimized
99100// CHECK-LABEL: sil [Osize] [ossa] @test3 :
100- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC4take3arg10Foundation4DataVSgAI_tFZToTembgnn_ :
101- // CHECK: apply [[FUNC]]
101+ // CHECK: objc_method
102102// CHECK-LABEL: } // end sil function 'test3'
103103sil [Osize] [ossa] @test3 : $@convention(thin) (@owned MyObject, @in Data) -> @owned Optional<NSData> {
104104bb0(%0: @owned $MyObject, %1 : $*Data):
@@ -116,9 +116,9 @@ bb0(%0: @owned $MyObject, %1 : $*Data):
116116 return %51 : $Optional<NSData>
117117}
118118
119+ // Not optimized
119120// CHECK-LABEL: sil [Osize] [ossa] @test4 :
120- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC8take_two4arg14arg210Foundation4DataVSgAJ_AJtFZToTembgbgnn_ :
121- // CHECK: apply [[FUNC]]
121+ // CHECK: objc_method
122122// CHECK-LABEL: } // end sil function 'test4'
123123sil [Osize] [ossa] @test4 : $@convention(thin) (@owned MyObject) -> @owned Optional<NSData> {
124124bb0(%0: @owned $MyObject):
177177 return %51 : $Optional<NSData>
178178}
179179
180+ // Not optimized
180181// CHECK-LABEL: sil [Osize] [ossa] @test6 :
181- // CHECK: [[FUNC:%.*]] = function_ref @$s4main8MyObjectC4take3arg10Foundation4DataVSgAI_tFZToTembgnn_ :
182- // CHECK: apply [[FUNC]]
182+ // CHECK: objc_method
183183// CHECK-LABEL: } // end sil function 'test6'
184184sil [Osize] [ossa] @test6 : $@convention(thin) (@owned MyObject) -> @owned Optional<NSData> {
185185bb0(%0: @owned $MyObject):
@@ -305,3 +305,23 @@ sil [Osize] [ossa] @destroy_after_borrow : $@convention(thin) () -> @owned Sub {
305305 apply undef(%162) : $@convention(thin) (Int) -> ()
306306 return %107 : $Sub
307307}
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