Files
swift-mirror/test/SILGen/objc_deprecated_objc_thunks.swift
Doug Gregor 38fce28ac7 [SE-0160] Don't generate runtime warnings for deprecated @objc inference of 'dynamic'.
When a method is dynamic, we always call through the Objective-C
runtime, which leads to a huge number of false positives. Suppress the
runtime calls here.
2017-03-31 21:54:00 -07:00

44 lines
2.4 KiB
Swift

// RUN: %target-swift-frontend -sdk %S/Inputs %s -I %S/Inputs -enable-source-import -emit-silgen -enable-swift3-objc-inference | %FileCheck %s
// REQUIRES: objc_interop
import Foundation
class ObjCSubclass : NSObject {
// CHECK-LABEL: sil hidden [thunk] @_T0016objc_deprecated_A7_thunks12ObjCSubclassCACyt7nothing_tcfcTo : $@convention(objc_method) (@owned ObjCSubclass) -> @owned ObjCSubclass {
// CHECK: bb0(%0 : $ObjCSubclass):
// CHECK-NEXT: builtin "swift3ImplicitObjCEntrypoint"() : $()
init(nothing: ()) { super.init() }
// CHECK-LABEL: sil hidden [thunk] @_T0016objc_deprecated_A7_thunks12ObjCSubclassC3fooyyFTo : $@convention(objc_method) (ObjCSubclass) -> ()
// CHECK: bb0(%0 : $ObjCSubclass):
// CHECK-NEXT: builtin "swift3ImplicitObjCEntrypoint"() : $()
func foo() { }
// CHECK-LABEL: sil hidden [thunk] @_T0016objc_deprecated_A7_thunks12ObjCSubclassC3barSo8NSObjectCSgfgTo : $@convention(objc_method) (ObjCSubclass) -> @autoreleased Optional<NSObject>
// CHECK: bb0(%0 : $ObjCSubclass):
// CHECK-NEXT: builtin "swift3ImplicitObjCEntrypoint"() : $()
// CHECK-LABEL: sil hidden [thunk] @_T0016objc_deprecated_A7_thunks12ObjCSubclassC3barSo8NSObjectCSgfsTo : $@convention(objc_method) (Optional<NSObject>, ObjCSubclass) -> () {
// CHECK: %0 : $Optional<NSObject>, %1 : $ObjCSubclass
// CHECK-NEXT: builtin "swift3ImplicitObjCEntrypoint"() : $()
var bar: NSObject? = nil
// CHECK-LABEL: sil hidden [thunk] @_T0016objc_deprecated_A7_thunks12ObjCSubclassC9subscripts9AnyObject_pSicfgTo : $@convention(objc_method) (Int, ObjCSubclass) -> @autoreleased AnyObject
// CHECK: bb0(%0 : $Int, %1 : $ObjCSubclass):
// CHECK-NEXT: builtin "swift3ImplicitObjCEntrypoint"() : $()
// CHECK-LABEL: sil hidden [thunk] @_T0016objc_deprecated_A7_thunks12ObjCSubclassC9subscripts9AnyObject_pSicfsTo : $@convention(objc_method) (AnyObject, Int, ObjCSubclass) ->
// CHECK: bb0(%0 : $AnyObject, %1 : $Int, %2 : $ObjCSubclass):
// CHECK-NEXT: builtin "swift3ImplicitObjCEntrypoint"() : $()
subscript (i: Int) -> AnyObject { get { return self } set { } }
}
extension ObjCSubclass {
// CHECK-LABEL: sil hidden [thunk] @_T0016objc_deprecated_A7_thunks12ObjCSubclassC13falsePositiveyyFTo : $@convention(objc_method) (ObjCSubclass) -> ()
// CHECK: bb0(%0 : $ObjCSubclass):
// CHECK-NOT: builtin "swift3ImplicitObjCEntrypoint"() : $()
// CHECK: return
func falsePositive() { }
}