// RUN: %target-swift-frontend -emit-ir %s -module-name main | %FileCheck %s

sil_stage canonical

struct Box<T> {
  @inline(never)
  static func foo() {}
}

// Reference a function in a way that will be specialized.
sil @test : $@convention(thin) () -> () {
bb0:
  // function_ref static Box.foo() -> ()
  %0 = function_ref @_TZFV4main3Box3foofT_T_ : $@convention(thin) <τ_0_0> (@thin Box<τ_0_0>.Type) -> () // user: %2
  %1 = metatype $@thin Box<()>.Type               // user: %2
  %2 = apply %0<()>(%1) : $@convention(thin) <τ_0_0> (@thin Box<τ_0_0>.Type) -> ()
  %3 = tuple ()                                   // user: %4
  return %3 : $()                                 // id: %4
}

// This is the unspecialized form.
sil hidden @_TZFV4main3Box3foofT_T_ : $@convention(thin) <T> (@thin Box<T>.Type) -> () {
bb0(%0 : $@thin Box<T>.Type):
  %1 = tuple ()
  return %1 : $()
}

// generic specialization <()> of static main.Box.foo () -> ()
// This specialization is one that would be matched by the prespecialization
// pass.
sil shared @_TTSg5T____TZFV4main3Box3foofT_T_ : $@convention(thin) (@thin Box<()>.Type) -> () {
bb0(%0 : $@thin Box<()>.Type):
  %1 = tuple ()
  return %1 : $()
}

// CHECK-DAG: define linkonce_odr hidden void @_TTSg5T____TZFV4main3Box3foofT_T_() {{.*}}{
// CHECK-DAG: call void @_TTSg5T____TZFV4main3Box3foofT_T_()
