|
14 | 14 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNRESOLVED_OPT_1 | %FileCheck %s -check-prefix=UNRESOLVED_3_OPT
|
15 | 15 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNRESOLVED_OPT_2 | %FileCheck %s -check-prefix=UNRESOLVED_3_OPT
|
16 | 16 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNRESOLVED_OPT_3 | %FileCheck %s -check-prefix=UNRESOLVED_3_OPTOPTOPT
|
| 17 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNRESOLVED_OPT_4 | %FileCheck %s -check-prefix=UNRESOLVED_OPT_4 |
17 | 18 |
|
18 | 19 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNRESOLVED_12 | %FileCheck %s -check-prefix=UNRESOLVED_3
|
19 | 20 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=UNRESOLVED_13 | %FileCheck %s -check-prefix=UNRESOLVED_3
|
@@ -241,29 +242,54 @@ class C4 {
|
241 | 242 | var _: SomeEnum1??? = .#^UNRESOLVED_OPT_3^#
|
242 | 243 | }
|
243 | 244 | }
|
244 |
| -// UNRESOLVED_3: Begin completions |
| 245 | +// UNRESOLVED_3: Begin completions, 2 items |
245 | 246 | // UNRESOLVED_3-DAG: Decl[EnumElement]/ExprSpecific: North[#SomeEnum1#]; name=North
|
246 | 247 | // UNRESOLVED_3-DAG: Decl[EnumElement]/ExprSpecific: South[#SomeEnum1#]; name=South
|
247 | 248 | // UNRESOLVED_3-NOT: SomeOptions1
|
248 | 249 | // UNRESOLVED_3-NOT: SomeOptions2
|
249 | 250 | // UNRESOLVED_3-NOT: none
|
250 | 251 | // UNRESOLVED_3-NOT: some(
|
251 | 252 |
|
252 |
| -// UNRESOLVED_3_OPT: Begin completions |
| 253 | +// UNRESOLVED_3_OPT: Begin completions, 5 items |
253 | 254 | // UNRESOLVED_3_OPT-DAG: Decl[EnumElement]/ExprSpecific: North[#SomeEnum1#];
|
254 | 255 | // UNRESOLVED_3_OPT-DAG: Decl[EnumElement]/ExprSpecific: South[#SomeEnum1#];
|
| 256 | +// UNRESOLVED_3_OPT-DAG: Keyword[nil]/ExprSpecific/Erase[1]: nil[#SomeEnum1?#]; name=nil |
255 | 257 | // UNRESOLVED_3_OPT-DAG: Decl[EnumElement]/ExprSpecific: none[#Optional<SomeEnum1>#]; name=none
|
256 | 258 | // UNRESOLVED_3_OPT-DAG: Decl[EnumElement]/ExprSpecific: some({#SomeEnum1#})[#Optional<SomeEnum1>#];
|
257 |
| -// UNRESOLVED_3_OPT-DAG: Decl[Constructor]/CurrNominal: init({#(some): SomeEnum1#})[#Optional<SomeEnum1>#]; |
258 |
| -// UNRESOLVED_3_OPT-DAG: Decl[Constructor]/CurrNominal: init({#nilLiteral: ()#})[#Optional<SomeEnum1>#]; |
| 259 | +// UNRESOLVED_3_OPT-NOT: init({#(some): |
| 260 | +// UNRESOLVED_3_OPT-NOT: init({#nilLiteral: |
259 | 261 |
|
260 |
| -// UNRESOLVED_3_OPTOPTOPT: Begin completions |
| 262 | +// UNRESOLVED_3_OPTOPTOPT: Begin completions, 5 items |
261 | 263 | // UNRESOLVED_3_OPTOPTOPT-DAG: Decl[EnumElement]/ExprSpecific: North[#SomeEnum1#];
|
262 | 264 | // UNRESOLVED_3_OPTOPTOPT-DAG: Decl[EnumElement]/ExprSpecific: South[#SomeEnum1#];
|
| 265 | +// UNRESOLVED_3_OPTOPTOPT-DAG: Keyword[nil]/ExprSpecific/Erase[1]: nil[#SomeEnum1???#]; name=nil |
263 | 266 | // UNRESOLVED_3_OPTOPTOPT-DAG: Decl[EnumElement]/ExprSpecific: none[#Optional<SomeEnum1??>#]; name=none
|
264 | 267 | // UNRESOLVED_3_OPTOPTOPT-DAG: Decl[EnumElement]/ExprSpecific: some({#SomeEnum1??#})[#Optional<SomeEnum1??>#];
|
265 |
| -// UNRESOLVED_3_OPTOPTOPT-DAG: Decl[Constructor]/CurrNominal: init({#(some): SomeEnum1??#})[#Optional<SomeEnum1??>#]; |
266 |
| -// UNRESOLVED_3_OPTOPTOPT-DAG: Decl[Constructor]/CurrNominal: init({#nilLiteral: ()#})[#Optional<SomeEnum1??>#]; |
| 268 | +// UNRESOLVED_3_OPTOPTOPT-NOT: init({#(some): |
| 269 | +// UNRESOLVED_3_OPTOPTOPT-NOT: init({#nilLiteral: |
| 270 | + |
| 271 | +enum Somewhere { |
| 272 | + case earth, mars |
| 273 | +} |
| 274 | +extension Optional where Wrapped == Somewhere { |
| 275 | + init(str: String) { fatalError() } |
| 276 | + static var nowhere: Self { return nil } |
| 277 | +} |
| 278 | +func testOptionalWithCustomExtension() { |
| 279 | + var _: Somewhere? = .#^UNRESOLVED_OPT_4^# |
| 280 | +// UNRESOLVED_OPT_4: Begin completions, 7 items |
| 281 | +// UNRESOLVED_OPT_4-DAG: Decl[EnumElement]/ExprSpecific: earth[#Somewhere#]; |
| 282 | +// UNRESOLVED_OPT_4-DAG: Decl[EnumElement]/ExprSpecific: mars[#Somewhere#]; |
| 283 | +// UNRESOLVED_OPT_4-DAG: Keyword[nil]/ExprSpecific/Erase[1]: nil[#Somewhere?#]; name=nil |
| 284 | +// UNRESOLVED_OPT_4-DAG: Decl[EnumElement]/ExprSpecific: none[#Optional<Somewhere>#]; name=none |
| 285 | +// UNRESOLVED_OPT_4-DAG: Decl[EnumElement]/ExprSpecific: some({#Somewhere#})[#Optional<Somewhere>#]; |
| 286 | +// UNRESOLVED_OPT_4-DAG: Decl[Constructor]/CurrNominal: init({#str: String#})[#Optional<Somewhere>#]; name=init(str: String) |
| 287 | +// UNRESOLVED_OPT_4-DAG: Decl[StaticVar]/CurrNominal/TypeRelation[Identical]: nowhere[#Optional<Somewhere>#]; name=nowhere |
| 288 | +// UNRESOLVED_OPT_4-NOT: init({#(some): |
| 289 | +// UNRESOLVED_OPT_4-NOT: init({#nilLiteral: |
| 290 | +// UNRESOLVED_OPT_4: End completions |
| 291 | +} |
| 292 | + |
267 | 293 |
|
268 | 294 | class C5 {
|
269 | 295 | func f1() {
|
|
0 commit comments