| // 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 { } |