// RUN: rm -rf %t && mkdir %t
// RUN: %build-irgen-test-overlays
// RUN: %target-swift-frontend(mock-sdk: -sdk %S/Inputs -I %t) %s -emit-ir | FileCheck %s

// REQUIRES: CPU=x86_64
// REQUIRES: objc_interop

// CHECK: @"\01L_selector_data(initWithRed:green:blue:)"
// CHECK: @"\01L_selector_data(colorWithRed:green:blue:)"
// CHECK: @"\01L_selector_data(otherColorForRed:green:blue:)"

sil_stage raw

import Builtin
import Swift
import gizmo 

class SwiftGizmo : Gizmo {
  init(red: Float, green: Float, blue: Float) { }
  func color(red: Float, green: Float, blue: Float)
  func otherColorFor(red: Float, green: Float, blue: Float)
}
sil_vtable SwiftGizmo {}

sil @_TToFC18objc_implicit_with10SwiftGizmocfT3redSf5greenSf4blueSf_S0_ : $@convention(objc_method) (Float, Float, Float, @owned SwiftGizmo) -> @owned SwiftGizmo {
bb0(%0 : $Float, %1 : $Float, %2 : $Float, %3 : $SwiftGizmo):
  return %3 : $SwiftGizmo
}

sil @_TToFC18objc_implicit_with10SwiftGizmocfT7bellsOnSi_GSQS0__ : $@convention(objc_method) (Int, @owned SwiftGizmo) -> @owned SwiftGizmo! {
bb0(%0 : $Int, %1 : $SwiftGizmo):
  unreachable
}

sil @_TToFC18objc_implicit_with10SwiftGizmocfT_S0_ : $@convention(objc_method) (@owned SwiftGizmo) -> @owned SwiftGizmo {
bb0(%0 : $SwiftGizmo):
  return %0 : $SwiftGizmo
}

sil @_TToFC18objc_implicit_with10SwiftGizmo5colorfT3redSf5greenSf4blueSf_T_ : $@convention(objc_method) (Float, Float, Float, @owned SwiftGizmo) -> @owned SwiftGizmo {
bb0(%0 : $Float, %1 : $Float, %2 : $Float, %3 : $SwiftGizmo):
  return %3 : $SwiftGizmo
}

sil @_TToFC18objc_implicit_with10SwiftGizmo13otherColorForfT3redSf5greenSf4blueSf_T_ : $@convention(objc_method) (Float, Float, Float, @owned SwiftGizmo) -> @owned SwiftGizmo {
bb0(%0 : $Float, %1 : $Float, %2 : $Float, %3 : $SwiftGizmo):
  return %3 : $SwiftGizmo
}
