|
34 | 34 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=PROTOCOL_SELF | %FileCheck %s -check-prefix=PROTOCOL_SELF
|
35 | 35 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=NOMINAL_TYPEALIAS | %FileCheck %s -check-prefix=NOMINAL_TYPEALIAS
|
36 | 36 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=NOMINAL_TYPEALIAS_EXT | %FileCheck %s -check-prefix=NOMINAL_TYPEALIAS_EXT
|
| 37 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=NOMINAL_TYPEALIAS_NESTED1 | %FileCheck %s -check-prefix=NOMINAL_TYPEALIAS_NESTED1 |
| 38 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=NOMINAL_TYPEALIAS_NESTED2 | %FileCheck %s -check-prefix=NOMINAL_TYPEALIAS_NESTED2 |
| 39 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=NOMINAL_TYPEALIAS_NESTED1_EXT | %FileCheck %s -check-prefix=NOMINAL_TYPEALIAS_NESTED1_EXT |
| 40 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=NOMINAL_TYPEALIAS_NESTED2_EXT | %FileCheck %s -check-prefix=NOMINAL_TYPEALIAS_NESTED2_EXT |
37 | 41 |
|
38 | 42 | class A1<T1, T2, T3> {}
|
39 | 43 |
|
@@ -191,3 +195,34 @@ extension TA1 where #^NOMINAL_TYPEALIAS_EXT^# { }
|
191 | 195 | // NOMINAL_TYPEALIAS_EXT-DAG: Decl[GenericTypeParam]/Local: T[#T#];
|
192 | 196 | // NOMINAL_TYPEALIAS_EXT-DAG: Decl[TypeAlias]/CurrNominal: U[#T.Q#];
|
193 | 197 | // NOMINAL_TYPEALIAS_EXT: End completions
|
| 198 | + |
| 199 | +struct TA2<T: Assoc> { |
| 200 | + struct Inner1<U> where #^NOMINAL_TYPEALIAS_NESTED1^# { |
| 201 | + typealias X1 = T |
| 202 | + typealias X2 = T.Q |
| 203 | + } |
| 204 | +// NOMINAL_TYPEALIAS_NESTED1: Begin completions, 2 items |
| 205 | +// NOMINAL_TYPEALIAS_NESTED1-DAG: Decl[GenericTypeParam]/Local: T[#T#]; |
| 206 | +// NOMINAL_TYPEALIAS_NESTED1-DAG: Decl[GenericTypeParam]/Local: U[#U#]; |
| 207 | +// NOMINAL_TYPEALIAS_NESTED1: End completions |
| 208 | + struct Inner2 where #^NOMINAL_TYPEALIAS_NESTED2^# { |
| 209 | + typealias X1 = T |
| 210 | + typealias X2 = T.Q |
| 211 | + } |
| 212 | +// NOMINAL_TYPEALIAS_NESTED2: Begin completions, 1 items |
| 213 | +// NOMINAL_TYPEALIAS_NESTED2-DAG: Decl[GenericTypeParam]/Local: T[#T#]; |
| 214 | +// NOMINAL_TYPEALIAS_NESTED2: End completions |
| 215 | +} |
| 216 | +extension TA2.Inner1 where #^NOMINAL_TYPEALIAS_NESTED1_EXT^# {} |
| 217 | +// NOMINAL_TYPEALIAS_NESTED1_EXT: Begin completions, 4 items |
| 218 | +// NOMINAL_TYPEALIAS_NESTED1_EXT-DAG: Decl[GenericTypeParam]/Local: T[#T#]; |
| 219 | +// NOMINAL_TYPEALIAS_NESTED1_EXT-DAG: Decl[GenericTypeParam]/Local: U[#U#]; |
| 220 | +// NOMINAL_TYPEALIAS_NESTED1_EXT-DAG: Decl[TypeAlias]/CurrNominal: X1[#T#]; |
| 221 | +// NOMINAL_TYPEALIAS_NESTED1_EXT-DAG: Decl[TypeAlias]/CurrNominal: X2[#T.Q#]; |
| 222 | +// NOMINAL_TYPEALIAS_NESTED1_EXT: End completions |
| 223 | +extension TA2.Inner2 where #^NOMINAL_TYPEALIAS_NESTED2_EXT^# {} |
| 224 | +// NOMINAL_TYPEALIAS_NESTED2_EXT: Begin completions, 3 items |
| 225 | +// NOMINAL_TYPEALIAS_NESTED2_EXT-DAG: Decl[GenericTypeParam]/Local: T[#T#]; |
| 226 | +// NOMINAL_TYPEALIAS_NESTED2_EXT-DAG: Decl[TypeAlias]/CurrNominal: X1[#T#]; |
| 227 | +// NOMINAL_TYPEALIAS_NESTED2_EXT-DAG: Decl[TypeAlias]/CurrNominal: X2[#T.Q#]; |
| 228 | +// NOMINAL_TYPEALIAS_NESTED2_EXT: End completions |
0 commit comments