mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
Using \0 as a representation of the cursor position is a implementation detail and is done by SourceKit. Client including complete-test should not do it. This inserted test used to be treated as EOF in compiler so the code after the completion position is completely ignored.
117 lines
2.9 KiB
Swift
117 lines
2.9 KiB
Swift
// XFAIL: broken_std_regex
|
|
|
|
struct A {}
|
|
struct B {}
|
|
|
|
func aaa() {}
|
|
func aaa(_ x: A) {}
|
|
func aaa(_ x: B) {}
|
|
func aaa(_ x: B, y: B) {}
|
|
func aaa(x x: B, y: B) {}
|
|
func aab() {}
|
|
|
|
func test001() {
|
|
#^TOP_LEVEL_0,aa^#
|
|
}
|
|
// RUN: %complete-test -group=overloads -tok=TOP_LEVEL_0 %s | %FileCheck -check-prefix=TOP_LEVEL_0 %s
|
|
// TOP_LEVEL_0-LABEL: aaa:
|
|
// TOP_LEVEL_0-NEXT: aaa()
|
|
// TOP_LEVEL_0-NEXT: aaa(x: A)
|
|
// TOP_LEVEL_0-NEXT: aaa(x: B)
|
|
// TOP_LEVEL_0-NEXT: aaa(x: B, y: B)
|
|
// TOP_LEVEL_0-NEXT: aaa(x: B, y: B)
|
|
// TOP_LEVEL_0-NEXT: #colorLiteral(red: Float, green: Float, blue: Float, alpha: Float)
|
|
// TOP_LEVEL_0-NEXT: #imageLiteral(resourceName: String)
|
|
// TOP_LEVEL_0-NEXT: aab()
|
|
|
|
struct Foo {
|
|
func aaa() {}
|
|
func aaa(_ x: A) {}
|
|
func aaa(_ x: B) {}
|
|
func aaa(_ x: B, y: B) {}
|
|
func aaa(x x: B, y: B) {}
|
|
func aab() {}
|
|
}
|
|
|
|
func test002() {
|
|
Foo().#^FOO_INSTANCE_0^#
|
|
}
|
|
// RUN: %complete-test -group=overloads -tok=FOO_INSTANCE_0 %s | %FileCheck -check-prefix=FOO_INSTANCE_0 %s
|
|
// FOO_INSTANCE_0-LABEL: aaa:
|
|
// FOO_INSTANCE_0-NEXT: aaa()
|
|
// FOO_INSTANCE_0-NEXT: aaa(x: A)
|
|
// FOO_INSTANCE_0-NEXT: aaa(x: B)
|
|
// FOO_INSTANCE_0-NEXT: aaa(x: B, y: B)
|
|
// FOO_INSTANCE_0-NEXT: aaa(x: B, y: B)
|
|
// FOO_INSTANCE_0-NEXT: aab()
|
|
|
|
|
|
extension Foo {
|
|
static func bbb() {}
|
|
static func bbb(_ x: A) {}
|
|
static func bbc() {}
|
|
}
|
|
|
|
func test003() {
|
|
Foo.#^FOO_QUAL_0^#
|
|
}
|
|
// RUN: %complete-test -group=overloads -tok=FOO_QUAL_0 %s | %FileCheck -check-prefix=FOO_QUAL_0 %s
|
|
// FOO_QUAL_0-LABEL: bbb:
|
|
// FOO_QUAL_0-NEXT: bbb()
|
|
// FOO_QUAL_0-NEXT: bbb(x: A)
|
|
// FOO_QUAL_0-NEXT: bbc()
|
|
|
|
extension Foo {
|
|
subscript(x: A) -> A { return A() }
|
|
subscript(x: B) -> B { return B() }
|
|
}
|
|
|
|
func test004() {
|
|
Foo()#^FOO_SUBSCRIPT_0^#
|
|
}
|
|
// RUN: %complete-test -group=overloads -tok=FOO_SUBSCRIPT_0 %s | %FileCheck -check-prefix=FOO_SUBSCRIPT_0 %s
|
|
// FOO_SUBSCRIPT_0-LABEL: [:
|
|
// FOO_SUBSCRIPT_0-NEXT: [x: A]
|
|
// FOO_SUBSCRIPT_0-NEXT: [x: B]
|
|
|
|
struct Bar {
|
|
init() {}
|
|
init(x: A) {}
|
|
init(x: B) {}
|
|
}
|
|
|
|
func test005() {
|
|
Bar#^BAR_INIT_0^#
|
|
}
|
|
// Inline a lonely group
|
|
// RUN: %complete-test -group=overloads -add-inner-results -no-inner-operators -tok=BAR_INIT_0 %s | %FileCheck -check-prefix=BAR_INIT_0 %s
|
|
// BAR_INIT_0-LABEL: (:
|
|
// BAR_INIT_0: ()
|
|
// BAR_INIT_0-NEXT: (x: A)
|
|
// BAR_INIT_0-NEXT: (x: B)
|
|
// BAR_INIT_0-NEXT: .foo(self: Bar)
|
|
// BAR_INIT_0-NEXT: .self
|
|
|
|
extension Bar {
|
|
func foo()
|
|
}
|
|
|
|
func test006() {
|
|
Bar#^BAR_INIT_1^#
|
|
}
|
|
// RUN: %complete-test -group=overloads -add-inner-results -no-inner-operators -tok=BAR_INIT_1 %s | %FileCheck -check-prefix=BAR_INIT_1 %s
|
|
// BAR_INIT_1-LABEL: (:
|
|
// BAR_INIT_1-NEXT: ()
|
|
// BAR_INIT_1-NEXT: (x: A)
|
|
// BAR_INIT_1-NEXT: (x: B)
|
|
// BAR_INIT_1-NEXT: foo(self: Bar)
|
|
|
|
func test007() {
|
|
#^BAR_INIT_2^#
|
|
// RUN: %complete-test -add-inits-to-top-level -group=overloads -tok=BAR_INIT_2 %s | %FileCheck -check-prefix=BAR_INIT_2 %s
|
|
// BAR_INIT_2-LABEL: Bar:
|
|
// BAR_INIT_2-NEXT: Bar
|
|
// BAR_INIT_2-NEXT: Bar()
|
|
// BAR_INIT_2-NEXT: Bar(x: A)
|
|
// BAR_INIT_2-NEXT: Bar(x: B)
|