| // RUN: %target-swift-frontend -emit-sil %s | %FileCheck %s |
| |
| import Builtin |
| |
| sil_stage canonical |
| |
| sil @subject : $@convention(thin) (Builtin.Int64) -> () |
| |
| // CHECK-LABEL: sil @partial_apply_callee_owned_by_default : $@convention(thin) () -> @callee_owned () -> () { |
| sil @partial_apply_callee_owned_by_default : $@convention(thin) () -> @callee_owned () -> () { |
| entry: |
| %f = function_ref @subject : $@convention(thin) (Builtin.Int64) -> () |
| %z = integer_literal $Builtin.Int64, 0 |
| // CHECK: [[PA:%.*]] = partial_apply {{.*}} $@convention(thin) (Builtin.Int64) -> () |
| %g = partial_apply %f(%z) : $@convention(thin) (Builtin.Int64) -> () |
| // CHECK: return [[PA]] : $@callee_owned () -> () |
| return %g : $@callee_owned () -> () |
| } |
| |
| // CHECK-LABEL: sil @partial_apply_callee_guaranteed_by_attr : $@convention(thin) () -> @callee_guaranteed () -> () { |
| sil @partial_apply_callee_guaranteed_by_attr : $@convention(thin) () -> @callee_guaranteed () -> () { |
| entry: |
| %f = function_ref @subject : $@convention(thin) (Builtin.Int64) -> () |
| %z = integer_literal $Builtin.Int64, 0 |
| // CHECK: [[PA:%.*]] = partial_apply [callee_guaranteed] {{.*}} $@convention(thin) (Builtin.Int64) -> () |
| %g = partial_apply [callee_guaranteed] %f(%z) : $@convention(thin) (Builtin.Int64) -> () |
| // CHECK: return [[PA]] : $@callee_guaranteed () -> () |
| return %g : $@callee_guaranteed () -> () |
| } |