16
16
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=SUPER_IN_STATICMETHOD | %FileCheck %s -check-prefix=SUPER_IN_STATICMETHOD
17
17
18
18
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=LABELED_SUBSCRIPT | %FileCheck %s -check-prefix=LABELED_SUBSCRIPT
19
+ // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TUPLE | %FileCheck %s -check-prefix=TUPLE
19
20
20
21
struct MyStruct < T> {
21
22
static subscript( x: Int , static defValue: T ) -> MyStruct < T > {
@@ -62,6 +63,7 @@ func test1() {
62
63
let _ = MyStruct < Int > ( ) [ #^INSTANCE_INT_BRACKET^#
63
64
// INSTANCE_INT_BRACKET: Begin completions
64
65
// INSTANCE_INT_BRACKET-DAG: Decl[Subscript]/CurrNominal: ['[']{#(x): Int#}, {#instance: Int#}[']'][#Int#];
66
+ // INSTANCE_INT_BRACKET-DAG: Pattern/CurrModule: ['[']{#keyPath: KeyPath<MyStruct<Int>, Value>#}[']'][#Value#];
65
67
// INSTANCE_INT_BRACKET: End completions
66
68
}
67
69
func test2< U> ( value: MyStruct < U > ) {
@@ -87,6 +89,7 @@ func test2<U>(value: MyStruct<U>) {
87
89
let _ = value[ #^INSTANCE_ARCHETYPE_BRACKET^#
88
90
// INSTANCE_ARCHETYPE_BRACKET: Begin completions
89
91
// INSTANCE_ARCHETYPE_BRACKET-DAG: Decl[Subscript]/CurrNominal: ['[']{#(x): Int#}, {#instance: U#}[']'][#Int#];
92
+ // INSTANCE_ARCHETYPE_BRACKET-DAG: Pattern/CurrModule: ['[']{#keyPath: KeyPath<MyStruct<U>, Value>#}[']'][#Value#];
90
93
// INSTANCE_ARCHETYPE_BRACKET: End completions
91
94
92
95
let _ = MyStruct< U> [ 42 , #^METATYPE_LABEL^#
@@ -110,14 +113,16 @@ class Derived: Base {
110
113
111
114
func testInstance( ) {
112
115
let _ = self [ #^SELF_IN_INSTANCEMETHOD^#]
113
- // SELF_IN_INSTANCEMETHOD: Begin completions, 2 items
116
+ // SELF_IN_INSTANCEMETHOD: Begin completions, 3 items
114
117
// SELF_IN_INSTANCEMETHOD-DAG: Decl[Subscript]/CurrNominal: ['[']{#derivedInstance: Int#}[']'][#Int#];
115
118
// SELF_IN_INSTANCEMETHOD-DAG: Decl[Subscript]/Super: ['[']{#instance: Int#}[']'][#Int#];
119
+ // SELF_IN_INSTANCEMETHOD-DAG: Pattern/CurrModule: ['[']{#keyPath: KeyPath<Derived, Value>#}[']'][#Value#];
116
120
// SELF_IN_INSTANCEMETHOD: End completions
117
121
118
122
let _ = super[ #^SUPER_IN_INSTANCEMETHOD^#]
119
- // SUPER_IN_INSTANCEMETHOD: Begin completions, 1 items
120
- // SUPER_IN_INSTANCEMETHOD-DAG: Decl[Subscript]/CurrNominal: ['[']{#instance: Int#}[']'][#Int#];
123
+ // SUPER_IN_INSTANCEMETHOD: Begin completions, 2 items
124
+ // SUPER_IN_INSTANCEMETHOD-DAG: Decl[Subscript]/CurrNominal: ['[']{#instance: Int#}[']'][#Int#];
125
+ // SUPER_IN_INSTANCEMETHOD-DAG: Pattern/CurrModule: ['[']{#keyPath: KeyPath<Base, Value>#}[']'][#Value#];
121
126
// SUPER_IN_INSTANCEMETHOD: End completions
122
127
}
123
128
@@ -130,7 +135,7 @@ class Derived: Base {
130
135
131
136
let _ = super[ #^SUPER_IN_STATICMETHOD^#]
132
137
// SUPER_IN_STATICMETHOD: Begin completions, 1 items
133
- // SUPER_IN_STATICMETHOD-DAG: Decl[Subscript]/CurrNominal: ['[']{#static: Int#}[']'][#Int#];
138
+ // SUPER_IN_STATICMETHOD-DAG: Decl[Subscript]/CurrNominal: ['[']{#static: Int#}[']'][#Int#];
134
139
// SUPER_IN_STATICMETHOD: End completions
135
140
}
136
141
}
@@ -140,7 +145,15 @@ struct MyStruct1<X: Comparable> {
140
145
}
141
146
func testSubscriptCallSig< T> ( val: MyStruct1 < T > ) {
142
147
val[ #^LABELED_SUBSCRIPT^#
143
- // LABELED_SUBSCRIPT: Begin completions, 1 items
144
- // LABELED_SUBSCRIPT: Decl[Subscript]/CurrNominal: ['[']{#idx1: Int#}, {#idx2: Comparable#}[']'][#Int!#];
148
+ // LABELED_SUBSCRIPT: Begin completions, 2 items
149
+ // LABELED_SUBSCRIPT-DAG: Decl[Subscript]/CurrNominal: ['[']{#idx1: Int#}, {#idx2: Comparable#}[']'][#Int!#];
150
+ // LABELED_SUBSCRIPT-DAG: Pattern/CurrModule: ['[']{#keyPath: KeyPath<MyStruct1<T>, Value>#}[']'][#Value#];
145
151
// LABELED_SUBSCRIPT: End completions
146
152
}
153
+
154
+ func testSubcscriptTuple( val: ( x: Int , String ) ) {
155
+ val [ #^TUPLE^#]
156
+ // TUPLE: Begin completions, 1 items
157
+ // TUPLE-DAG: Pattern/CurrModule: ['[']{#keyPath: KeyPath<(x: Int, String), Value>#}[']'][#Value#];
158
+ // TUPLE: End completions
159
+ }
0 commit comments