-
Notifications
You must be signed in to change notification settings - Fork 10.5k
/
Copy pathfixits-apply-objc.swift
111 lines (85 loc) · 2.13 KB
/
fixits-apply-objc.swift
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
}