1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -disable-objc-attr-requires-foundation-module -typecheck %s -emit-fixits-path %t.remap
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %s.result
import ObjectiveC
// REQUIRES: objc_interop
@objc class Selectors {
func takeSel(_: Selector) {}
@objc func mySel() {}
func test() {
takeSel("mySel")
takeSel(Selector("mySel"))
}
}
@objc class OtherClass {
func test(s: Selectors) {
s.takeSel("mySel")
s.takeSel(Selector("mySel"))
}
}
@objc class Base {
@objc func baseSel() {}
}
@objc class Outer {
func takeSel(_: Selector) {}
@objc func outerSel() {}
@objc class Inner: Base {
func takeSel(_: Selector) {}
@objc func innerSel() {}
func test(s: Selectors, o: Outer) {
s.takeSel("mySel")
s.takeSel(Selector("mySel"))
takeSel("innerSel")
takeSel(Selector("innerSel"))
takeSel("baseSel")
takeSel(Selector("baseSel"))
o.takeSel("outerSel")
o.takeSel(Selector("outerSel"))
}
}
func test(s: Selectors, i: Inner) {
s.takeSel("mySel")
s.takeSel(Selector("mySel"))
i.takeSel("innerSel")
i.takeSel(Selector("innerSel"))
i.takeSel("baseSel")
i.takeSel(Selector("baseSel"))
takeSel("outerSel")
takeSel(Selector("outerSel"))
}
}
extension Outer {
func test2(s: Selectors, i: Inner) {
s.takeSel("mySel")
s.takeSel(Selector("mySel"))
i.takeSel("innerSel")
i.takeSel(Selector("innerSel"))
i.takeSel("baseSel")
i.takeSel(Selector("baseSel"))
takeSel("outerSel")
takeSel(Selector("outerSel"))
}
}
func freeTest(s: Selectors, o: Outer, i: Outer.Inner) {
s.takeSel("mySel")
s.takeSel(Selector("mySel"))
i.takeSel("innerSel")
i.takeSel(Selector("innerSel"))
i.takeSel("baseSel")
i.takeSel(Selector("baseSel"))
o.takeSel("outerSel")
o.takeSel(Selector("outerSel"))
}
func foo(an : Any) {
let a1 : AnyObject
a1 = an
let a2 : AnyObject?
a2 = an
let a3 : AnyObject!
a3 = an
}
func foo1(_ an : Any) {
let obj: AnyObject = an
}
func foo2(_ messageData: Any?) -> AnyObject? {
return messageData
}
|