// RUN: %target-sil-opt -enable-sil-verify-all %s -sil-combine | %FileCheck %s

sil_stage canonical

import Builtin
import Swift

//CHECK: sil @a_function1
//CHECK-NOT: partial_apply
//CHECK: return
sil @a_function1 : $@convention(thin) (Int64) -> () {
bb0(%0 : $Int64):
  %1 = function_ref @our_closure_function1 : $@convention(thin) (Int64) -> Bool // user: %2
  %2 = partial_apply %1(%0) : $@convention(thin) (Int64) -> Bool // user: %3
  strong_release %2 : $@callee_owned () -> Bool   // id: %3
  %4 = tuple ()                                   // user: %5
  return %4 : $()                                 // id: %5
}

class K {
}

//CHECK: sil @a_function2
// The release_value of $K is optimized to a strong_release.
sil @a_function2 : $@convention(thin) (@owned K) -> () {
bb0(%0 : $K):
  %1 = alloc_ref $K
  %2 = function_ref @our_closure_function2 : $@convention(thin) (@owned K) -> Bool // user: %2
//CHECK-NOT: partial_apply
  %3 = partial_apply %2(%0) : $@convention(thin) (@owned K) -> Bool // user: %3
//CHECK: br
  br bb1
 bb1:
//CHECK: strong_release
  strong_release %3 : $@callee_owned () -> Bool   // id: %3
  %5 = tuple ()                                   // user: %5
//CHECK: return
  return %5 : $()                                 // id: %5
}

sil @our_closure_function2 : $@convention(thin) (@owned K) -> Bool
sil @our_closure_function1 : $@convention(thin) (Int64) -> Bool
