|
57 | 57 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=IN_IIFE_4 | %FileCheck %s -check-prefix=IN_IIFE_1
|
58 | 58 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ERROR_IN_CLOSURE_IN_INITIALIZER | %FileCheck %s -check-prefix=ERROR_IN_CLOSURE_IN_INITIALIZER
|
59 | 59 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=DECL_IN_CLOSURE_IN_TOPLEVEL_INIT | %FileCheck %s -check-prefix=DECL_IN_CLOSURE_IN_TOPLEVEL_INIT
|
| 60 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=SINGLE_EXPR_CLOSURE_CONTEXT | %FileCheck %s -check-prefix=SINGLE_EXPR_CLOSURE_CONTEXT |
| 61 | +// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT | %FileCheck %s -check-prefix=SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT |
| 62 | + |
60 | 63 |
|
61 | 64 | // ERROR_COMMON: found code completion token
|
62 | 65 | // ERROR_COMMON-NOT: Begin completions
|
@@ -401,3 +404,30 @@ var foo = {
|
401 | 404 | // DECL_IN_CLOSURE_IN_TOPLEVEL_INIT-DAG: Decl[InstanceMethod]/Super: dropFirst()[#Substring#]; name=dropFirst()
|
402 | 405 | // DECL_IN_CLOSURE_IN_TOPLEVEL_INIT: End completions
|
403 | 406 | }
|
| 407 | + |
| 408 | +func testWithMemoryRebound(_ bar: UnsafePointer<UInt64>) { |
| 409 | + _ = bar.withMemoryRebound(to: Int64.self, capacity: 3) { ptr in |
| 410 | + return ptr #^SINGLE_EXPR_CLOSURE_CONTEXT^# |
| 411 | + // SINGLE_EXPR_CLOSURE_CONTEXT: Begin completions |
| 412 | + // SINGLE_EXPR_CLOSURE_CONTEXT-DAG: Decl[InstanceMethod]/CurrNominal: .deallocate()[#Void#]; name=deallocate() |
| 413 | + // SINGLE_EXPR_CLOSURE_CONTEXT-DAG: Decl[InstanceVar]/CurrNominal: .pointee[#Int64#]; name=pointee |
| 414 | + // SINGLE_EXPR_CLOSURE_CONTEXT: End completions |
| 415 | + } |
| 416 | +} |
| 417 | + |
| 418 | +func testInsideTernaryClosureReturn(test: Bool) -> [String] { |
| 419 | + return "hello".map { thing in |
| 420 | + test ? String(thing #^SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT^#).uppercased() : String(thing).lowercased() |
| 421 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT: Begin completions |
| 422 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InstanceVar]/CurrNominal: .utf8[#Character.UTF8View#]; name=utf8 |
| 423 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InstanceVar]/CurrNominal: .description[#String#]; name=description |
| 424 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InstanceVar]/CurrNominal: .isWhitespace[#Bool#]; name=isWhitespace |
| 425 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InstanceMethod]/CurrNominal: .uppercased()[#String#]; name=uppercased() |
| 426 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]: [' ']... {#String.Element#}[#ClosedRange<String.Element>#]; name=... String.Element |
| 427 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]: [' ']< {#Character#}[#Bool#]; name=< Character |
| 428 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]: [' ']>= {#String.Element#}[#Bool#]; name=>= String.Element |
| 429 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]: [' ']== {#Character#}[#Bool#]; name=== Character |
| 430 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT-DAG: Keyword[self]/CurrNominal: .self[#String.Element#]; name=self |
| 431 | + // SINGLE_TERNARY_EXPR_CLOSURE_CONTEXT: End completions |
| 432 | + } |
| 433 | +} |
0 commit comments