| // 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: [A] |
| // FOO_SUBSCRIPT_0-NEXT: [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-NOT: (: |
| // BAR_INIT_0: () |
| // BAR_INIT_0-NEXT: (x: A) |
| // BAR_INIT_0-NEXT: (x: B) |
| |
| 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) |