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 -enable-objc-interop %t_no_errors.swift
//
// RUN: %target-swift-ide-test -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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 -enable-objc-interop -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, 6 items
// TEST_PRIVATE_AD-DAG: Decl[InstanceMethod]/Super: override func baseAFunc(x: TagPA) {|}; name=baseAFunc(x:)
// TEST_PRIVATE_AD-DAG: Decl[Subscript]/Super: override subscript(a: TagPA) -> Int {|}; name=subscript(:)
// TEST_PRIVATE_AD-DAG: Decl[InstanceVar]/Super: override var baseAVarRW: TagPA; name=baseAVarRW
// 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(x:)
// TEST_PRIVATE_AD-DAG: Decl[Constructor]/Super: override init(fromBase: TagPA) {|}; name=init(fromBase:)
// TEST_INTERNAL_AD: Begin completions, 6 items
// TEST_INTERNAL_AD-DAG: Decl[InstanceMethod]/Super: override func baseAFunc(x: TagPA) {|}; name=baseAFunc(x:)
// TEST_INTERNAL_AD-DAG: Decl[Subscript]/Super: override subscript(a: TagPA) -> Int {|}; name=subscript(:)
// TEST_INTERNAL_AD-DAG: Decl[InstanceVar]/Super: override var baseAVarRW: TagPA; name=baseAVarRW
// 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(x:)
// TEST_INTERNAL_AD-DAG: Decl[Constructor]/Super: override init(fromBase: TagPA) {|}; name=init(fromBase:)
// 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(x:)
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, 6 items
// TEST_PRIVATE_BD-DAG: Decl[InstanceMethod]/Super: override func baseBFunc(x: TagPB) {|}; name=baseBFunc(x:)
// TEST_PRIVATE_BD-DAG: Decl[Subscript]/Super: override subscript(a: TagPB) -> Int {|}; name=subscript(:)
// TEST_PRIVATE_BD-DAG: Decl[InstanceVar]/Super: override var baseBVarRW: TagPB; name=baseBVarRW
// 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(x:)
// TEST_PRIVATE_BD-DAG: Decl[Constructor]/Super: override init(fromBaseB: TagPB) {|}; name=init(fromBaseB:)
// TEST_INTERNAL_BD: Begin completions, 6 items
// TEST_INTERNAL_BD-DAG: Decl[InstanceMethod]/Super: override func baseBFunc(x: TagPB) {|}; name=baseBFunc(x:)
// TEST_INTERNAL_BD-DAG: Decl[Subscript]/Super: override subscript(a: TagPB) -> Int {|}; name=subscript(:)
// TEST_INTERNAL_BD-DAG: Decl[InstanceVar]/Super: override var baseBVarRW: TagPB; name=baseBVarRW
// 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(x:)
// TEST_INTERNAL_BD-DAG: Decl[Constructor]/Super: override init(fromBaseB: TagPB) {|}; name=init(fromBaseB:)
// TEST_PUBLIC_BD: Begin completions, 6 items
// TEST_PUBLIC_BD-DAG: Decl[InstanceMethod]/Super: override func baseBFunc(x: TagPB) {|}; name=baseBFunc(x:)
// TEST_PUBLIC_BD-DAG: Decl[Subscript]/Super: override subscript(a: TagPB) -> Int {|}; name=subscript(:)
// TEST_PUBLIC_BD-DAG: Decl[InstanceVar]/Super: override var baseBVarRW: TagPB; name=baseBVarRW
// 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(x:)
// TEST_PUBLIC_BD-DAG: Decl[Constructor]/Super: override init(fromBaseB: TagPB) {|}; name=init(fromBaseB:)
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, 6 items
// TEST_PRIVATE_CD-DAG: Decl[InstanceMethod]/Super: override func baseCFunc(x: TagPC) {|}; name=baseCFunc(x:)
// TEST_PRIVATE_CD-DAG: Decl[Subscript]/Super: override subscript(a: TagPC) -> Int {|}; name=subscript(:)
// TEST_PRIVATE_CD-DAG: Decl[InstanceVar]/Super: override var baseCVarRW: TagPC; name=baseCVarRW
// 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(x:)
// TEST_PRIVATE_CD-DAG: Decl[Constructor]/Super: override init(fromBaseC: TagPC) {|}; name=init(fromBaseC:)
// TEST_INTERNAL_CD: Begin completions, 6 items
// TEST_INTERNAL_CD-DAG: Decl[InstanceMethod]/Super: override func baseCFunc(x: TagPC) {|}; name=baseCFunc(x:)
// TEST_INTERNAL_CD-DAG: Decl[Subscript]/Super: override subscript(a: TagPC) -> Int {|}; name=subscript(:)
// TEST_INTERNAL_CD-DAG: Decl[InstanceVar]/Super: override var baseCVarRW: TagPC; name=baseCVarRW
// 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(x:)
// TEST_INTERNAL_CD-DAG: Decl[Constructor]/Super: override init(fromBaseC: TagPC) {|}; name=init(fromBaseC:)
// TEST_PUBLIC_CD: Begin completions, 6 items
// TEST_PUBLIC_CD-DAG: Decl[InstanceMethod]/Super: public override func baseCFunc(x: TagPC) {|}; name=baseCFunc(x:)
// TEST_PUBLIC_CD-DAG: Decl[Subscript]/Super: public override subscript(a: TagPC) -> Int {|}; name=subscript(:)
// TEST_PUBLIC_CD-DAG: Decl[InstanceVar]/Super: public override var baseCVarRW: TagPC; name=baseCVarRW
// 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(x:)
// TEST_PUBLIC_CD-DAG: Decl[Constructor]/Super: public override init(fromBaseC: TagPC) {|}; name=init(fromBaseC:)
|