blob: 4d103c8c13b1d156bcc91d78eee0eebff6af4c86 [file] [log] [blame]
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-ir %s | %FileCheck %s
// REQUIRES: objc_interop
import Foundation
open class AllSwift {}
open class Mixed: NSObject {}
// CHECK-LABEL: define{{.*@.*}}14typeOfAllSwift
public func typeOfAllSwift(_ x: AllSwift) -> AllSwift.Type {
// CHECK: [[ISA:%.*]] = load %swift.type*
// CHECK: ret %swift.type* [[ISA]]
return type(of: x)
}
// CHECK-LABEL: define{{.*@.*}}11typeOfMixed
public func typeOfMixed(_ x: Mixed) -> Mixed.Type {
// CHECK: [[ISA:%.*]] = call %swift.type* @swift_getObjectType
// CHECK: ret %swift.type* [[ISA]]
return type(of: x)
}
// CHECK-LABEL: define{{.*@.*}}14typeOfNSObject
public func typeOfNSObject(_ x: NSObject) -> NSObject.Type {
// CHECK: [[ISA:%.*]] = call %swift.type* @swift_getObjectType
// CHECK: ret %swift.type* [[ISA]]
return type(of: x)
}
// CHECK-LABEL: define{{.*@.*}}13typeOfUnknown
public func typeOfUnknown(_ x: AnyObject) -> AnyObject.Type {
// CHECK: [[ISA:%.*]] = call %swift.type* @swift_getObjectType
// CHECK: ret %swift.type* [[ISA]]
return type(of: x)
}