forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomplete_override_access_control_class.swift
190 lines (157 loc) · 10.2 KB
/
complete_override_access_control_class.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
// RUN: sed -n -e '1,/NO_ERRORS_UP_TO_HERE$/ p' %s > %t_no_errors.swift
// RUN: %target-swift-frontend -typecheck -verify -disable-objc-attr-requires-foundation-module %t_no_errors.swift
//
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_PRIVATE_AD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PRIVATE_AD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_FILEPRIVATE_AD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PRIVATE_AD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_INTERNAL_AD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_INTERNAL_AD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_PUBLIC_AD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PUBLIC_AD
//
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_PRIVATE_BD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PRIVATE_BD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_FILEPRIVATE_BD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PRIVATE_BD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_INTERNAL_BD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_INTERNAL_BD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_PUBLIC_BD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PUBLIC_BD
//
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_PRIVATE_CD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PRIVATE_CD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_FILEPRIVATE_CD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PRIVATE_CD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_INTERNAL_CD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_INTERNAL_CD
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TEST_PUBLIC_CD -code-completion-keywords=false | %FileCheck %s -check-prefix=TEST_PUBLIC_CD
@objc
private class TagPA {}
@objc
class TagPB {}
@objc
public class TagPC {}
@objc
private class BaseAPrivate {
fileprivate init(fromBase: TagPA) {}
fileprivate func baseAFunc(x: TagPA) {}
fileprivate subscript(a: TagPA) -> Int { return 1 }
fileprivate var baseAVarRW: TagPA
fileprivate let baseAVarRO: TagPA
fileprivate func colliding() {}
fileprivate func collidingGeneric<T>(x: T) {}
}
@objc
class BaseBInternal {
init(fromBaseB: TagPB) {}
func baseBFunc(x: TagPB) {}
subscript(a: TagPB) -> Int { return 1 }
var baseBVarRW: TagPB
let baseBVarRO: TagPB
func colliding() {}
func collidingGeneric<T>(x: T) {}
}
@objc
public class BaseCPublic {
public init(fromBaseC: TagPC) {}
public func baseCFunc(x: TagPC) {}
public subscript(a: TagPC) -> Int { return 1 }
public var baseCVarRW: TagPC
public let baseCVarRO: TagPC
public func colliding() {}
public func collidingGeneric<T>(x: T) {}
}
public protocol ProtocolD {
func colliding()
func collidingGeneric<T>(x: T)
}
// NO_ERRORS_UP_TO_HERE
private class TestPrivateAD : BaseAPrivate, ProtocolD {
#^TEST_PRIVATE_AD^#
}
fileprivate class TestFilePrivateAD : BaseAPrivate, ProtocolD {
#^TEST_FILEPRIVATE_AD^#
// Same as TEST_PRIVATE_AD.
}
class TestInternalAD : BaseAPrivate, ProtocolD {
#^TEST_INTERNAL_AD^#
}
public class TestPublicAD : ProtocolAPrivate, ProtocolD {
#^TEST_PUBLIC_AD^#
}
// TEST_PRIVATE_AD: Begin completions, 5 items
// TEST_PRIVATE_AD-DAG: Decl[InstanceMethod]/Super: override func baseAFunc(x: TagPA) {|}; name=baseAFunc(x: TagPA)
// TEST_PRIVATE_AD-DAG: Decl[InstanceVar]/Super: override var baseAVarRW: TagPA; name=baseAVarRW: TagPA
// TEST_PRIVATE_AD-DAG: Decl[InstanceMethod]/Super: override func colliding() {|}; name=colliding()
// TEST_PRIVATE_AD-DAG: Decl[InstanceMethod]/Super: override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_PRIVATE_AD-DAG: Decl[Constructor]/Super: override init(fromBase: TagPA) {|}; name=init(fromBase: TagPA)
// TEST_PRIVATE_AD: End completions
// TEST_INTERNAL_AD: Begin completions, 5 items
// TEST_INTERNAL_AD-DAG: Decl[InstanceMethod]/Super: override func baseAFunc(x: TagPA) {|}; name=baseAFunc(x: TagPA)
// TEST_INTERNAL_AD-DAG: Decl[InstanceVar]/Super: override var baseAVarRW: TagPA; name=baseAVarRW: TagPA
// TEST_INTERNAL_AD-DAG: Decl[InstanceMethod]/Super: override func colliding() {|}; name=colliding()
// TEST_INTERNAL_AD-DAG: Decl[InstanceMethod]/Super: override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_INTERNAL_AD-DAG: Decl[Constructor]/Super: override init(fromBase: TagPA) {|}; name=init(fromBase: TagPA)
// TEST_INTERNAL_AD: End completions
// TEST_PUBLIC_AD: Begin completions, 2 items
// TEST_PUBLIC_AD-DAG: Decl[InstanceMethod]/Super: public func colliding() {|}; name=colliding()
// TEST_PUBLIC_AD-DAG: Decl[InstanceMethod]/Super: public func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_PUBLIC_AD: End completions
private class TestPrivateBD : BaseBInternal, ProtocolD {
#^TEST_PRIVATE_BD^#
}
fileprivate class TestFilePrivateBD : BaseBInternal, ProtocolD {
#^TEST_FILEPRIVATE_BD^#
// Same as TEST_PRIVATE_BD.
}
class TestInternalBD : BaseBInternal, ProtocolD {
#^TEST_INTERNAL_BD^#
}
public class TestPublicBD : BaseBInternal, ProtocolD {
#^TEST_PUBLIC_BD^#
}
// TEST_PRIVATE_BD: Begin completions, 5 items
// TEST_PRIVATE_BD-DAG: Decl[InstanceMethod]/Super: override func baseBFunc(x: TagPB) {|}; name=baseBFunc(x: TagPB)
// TEST_PRIVATE_BD-DAG: Decl[InstanceVar]/Super: override var baseBVarRW: TagPB; name=baseBVarRW: TagPB
// TEST_PRIVATE_BD-DAG: Decl[InstanceMethod]/Super: override func colliding() {|}; name=colliding()
// TEST_PRIVATE_BD-DAG: Decl[InstanceMethod]/Super: override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_PRIVATE_BD-DAG: Decl[Constructor]/Super: override init(fromBaseB: TagPB) {|}; name=init(fromBaseB: TagPB)
// TEST_PRIVATE_BD: End completions
// TEST_INTERNAL_BD: Begin completions, 5 items
// TEST_INTERNAL_BD-DAG: Decl[InstanceMethod]/Super: override func baseBFunc(x: TagPB) {|}; name=baseBFunc(x: TagPB)
// TEST_INTERNAL_BD-DAG: Decl[InstanceVar]/Super: override var baseBVarRW: TagPB; name=baseBVarRW: TagPB
// TEST_INTERNAL_BD-DAG: Decl[InstanceMethod]/Super: override func colliding() {|}; name=colliding()
// TEST_INTERNAL_BD-DAG: Decl[InstanceMethod]/Super: override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_INTERNAL_BD-DAG: Decl[Constructor]/Super: override init(fromBaseB: TagPB) {|}; name=init(fromBaseB: TagPB)
// TEST_INTERNAL_BD: End completions
// TEST_PUBLIC_BD: Begin completions, 5 items
// TEST_PUBLIC_BD-DAG: Decl[InstanceMethod]/Super: override func baseBFunc(x: TagPB) {|}; name=baseBFunc(x: TagPB)
// TEST_PUBLIC_BD-DAG: Decl[InstanceVar]/Super: override var baseBVarRW: TagPB; name=baseBVarRW: TagPB
// TEST_PUBLIC_BD-DAG: Decl[InstanceMethod]/Super: public override func colliding() {|}; name=colliding()
// TEST_PUBLIC_BD-DAG: Decl[InstanceMethod]/Super: public override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_PUBLIC_BD-DAG: Decl[Constructor]/Super: override init(fromBaseB: TagPB) {|}; name=init(fromBaseB: TagPB)
// TEST_PUBLIC_BD: End completions
private class TestPrivateCD : BaseCPublic, ProtocolD {
#^TEST_PRIVATE_CD^#
}
fileprivate class TestFilePrivateCD : BaseCPublic, ProtocolD {
#^TEST_FILEPRIVATE_CD^#
// Same as TEST_PRIVATE_CD.
}
class TestInternalCD : BaseCPublic, ProtocolD {
#^TEST_INTERNAL_CD^#
}
public class TestPublicCD : BaseCPublic, ProtocolD {
#^TEST_PUBLIC_CD^#
}
// TEST_PRIVATE_CD: Begin completions, 5 items
// TEST_PRIVATE_CD-DAG: Decl[InstanceMethod]/Super: override func baseCFunc(x: TagPC) {|}; name=baseCFunc(x: TagPC)
// TEST_PRIVATE_CD-DAG: Decl[InstanceVar]/Super: override var baseCVarRW: TagPC; name=baseCVarRW: TagPC
// TEST_PRIVATE_CD-DAG: Decl[InstanceMethod]/Super: override func colliding() {|}; name=colliding()
// TEST_PRIVATE_CD-DAG: Decl[InstanceMethod]/Super: override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_PRIVATE_CD-DAG: Decl[Constructor]/Super: override init(fromBaseC: TagPC) {|}; name=init(fromBaseC: TagPC)
// TEST_PRIVATE_CD: End completions
// TEST_INTERNAL_CD: Begin completions, 5 items
// TEST_INTERNAL_CD-DAG: Decl[InstanceMethod]/Super: override func baseCFunc(x: TagPC) {|}; name=baseCFunc(x: TagPC)
// TEST_INTERNAL_CD-DAG: Decl[InstanceVar]/Super: override var baseCVarRW: TagPC; name=baseCVarRW: TagPC
// TEST_INTERNAL_CD-DAG: Decl[InstanceMethod]/Super: override func colliding() {|}; name=colliding()
// TEST_INTERNAL_CD-DAG: Decl[InstanceMethod]/Super: override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_INTERNAL_CD-DAG: Decl[Constructor]/Super: override init(fromBaseC: TagPC) {|}; name=init(fromBaseC: TagPC)
// TEST_INTERNAL_CD: End completions
// TEST_PUBLIC_CD: Begin completions, 5 items
// TEST_PUBLIC_CD-DAG: Decl[InstanceMethod]/Super: public override func baseCFunc(x: TagPC) {|}; name=baseCFunc(x: TagPC)
// TEST_PUBLIC_CD-DAG: Decl[InstanceVar]/Super: public override var baseCVarRW: TagPC; name=baseCVarRW: TagPC
// TEST_PUBLIC_CD-DAG: Decl[InstanceMethod]/Super: public override func colliding() {|}; name=colliding()
// TEST_PUBLIC_CD-DAG: Decl[InstanceMethod]/Super: public override func collidingGeneric<T>(x: T) {|}; name=collidingGeneric<T>(x: T)
// TEST_PUBLIC_CD-DAG: Decl[Constructor]/Super: public override init(fromBaseC: TagPC) {|}; name=init(fromBaseC: TagPC)
// TEST_PUBLIC_CD: End completions