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

// REQUIRES: CPU=i386 || CPU=x86_64
// REQUIRES: objc_interop

import Builtin
import Swift
import gizmo

// CHECK: @"$s20generic_classes_objc19GenericInheritsObjCCMP"

class GenericInheritsObjC<D> : Gizmo {
  var a : Int
  var x : D
  var z : Int

  override init()
}
sil_vtable GenericInheritsObjC {}

// __deallocating_deinit
sil @$s20generic_classes_objc19GenericInheritsObjCCfD : $@convention(method) <T> (GenericInheritsObjC<T>) -> () {
bb0(%0 : $GenericInheritsObjC<T>):
  unreachable
}

// @objc init
sil @$s20generic_classes_objc19GenericInheritsObjCCACyxGycfcTo : $@convention(objc_method) <T> (@owned GenericInheritsObjC<T>) -> @owned GenericInheritsObjC<T> {
bb0(%0 : $GenericInheritsObjC<T>):
  unreachable
}

sil @$s20generic_classes_objc19GenericInheritsObjCC7bellsOnACyxGSgSi_tcfcTo : $@convention(objc_method) <T> (Int, @owned GenericInheritsObjC<T>) -> @owned GenericInheritsObjC<T> {
bb0(%0 : $Int, %1 : $GenericInheritsObjC<T>):
  unreachable
}

// CHECK: @"$s20generic_classes_objc20GenericInheritsObjC2CMP"

class GenericInheritsObjC2<E> : Gizmo {
  var x : UInt8
  var y : E
  var z : UInt8

  override init()
}
sil_vtable GenericInheritsObjC2 {}

// __deallocating_deinit
sil @$s20generic_classes_objc20GenericInheritsObjC2CfD : $@convention(method) <T> (GenericInheritsObjC2<T>) -> () {
bb0(%0 : $GenericInheritsObjC2<T>):
  unreachable
}

// @objc init
sil @$s20generic_classes_objc20GenericInheritsObjC2CACyxGycfcTo : $@convention(objc_method) <T> (@owned GenericInheritsObjC2<T>) -> @owned GenericInheritsObjC2<T> {
bb0(%0 : $GenericInheritsObjC2<T>):
  unreachable
}

sil @$s20generic_classes_objc20GenericInheritsObjC2C7bellsOnACyxGSgSi_tcfcTo : $@convention(objc_method) <T> (Int, @owned GenericInheritsObjC<T>) -> @owned GenericInheritsObjC<T> {
bb0(%0 : $Int, %1 : $GenericInheritsObjC<T>):
  unreachable
}

@objc protocol P1 { }
protocol P2 { }

// CHECK: @"$s20generic_classes_objc16Generic3WithReqsCMn" = hidden constant
// CHECK-SAME: i16 3, i16 3, i16 5, i16 0
class Generic3WithReqs<T: P1, U: P2, V: P2> { }
sil_vtable Generic3WithReqs { }
