|
1 |
| -// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ANY_IN_FUNC_PARAM | %FileCheck %s -check-prefix=ANY_IN_FUNC_PARAM |
2 |
| -// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ANY_IN_VAR_TYPE | %FileCheck %s -check-prefix=ANY_IN_VAR_TYPE |
3 |
| -// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ANY_METATYPE_VARIABLE | %FileCheck %s -check-prefix=ANY_METATYPE_VARIABLE |
4 |
| -// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ANY_METATYPE_MEMBER | %FileCheck %s -check-prefix=ANY_METATYPE_MEMBER |
5 |
| -// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ANY_IN_TYPEALIAS | %FileCheck %s -check-prefix=ANY_IN_TYPEALIAS |
| 1 | +// RUN: %empty-directory(%t) |
| 2 | +// RUN: %target-swift-ide-test -batch-code-completion -source-filename %s -filecheck %raw-FileCheck -completion-output-dir %t |
6 | 3 |
|
7 | 4 | func testAnyInParamList(a: #^ANY_IN_FUNC_PARAM^#
|
8 | 5 | // ANY_IN_FUNC_PARAM: Begin completions
|
@@ -31,4 +28,32 @@ typealias A = #^ANY_IN_TYPEALIAS^#
|
31 | 28 | // ANY_IN_TYPEALIAS-DAG: Keyword/None: Any[#Any#]; name=Any
|
32 | 29 | // ANY_IN_TYPEALIAS: End completions
|
33 | 30 |
|
| 31 | +func testRdar64812321() { |
| 32 | + func foo<T>(x: T) {} |
| 33 | + func foo(x: Any.Type) {} |
34 | 34 |
|
| 35 | + struct MyStruct {} |
| 36 | + let myStruct = MyStruct() |
| 37 | + |
| 38 | + foo(x: #^ANY_RELATIONSHIP^#) |
| 39 | + // The MyStruct type should not be preferred over the myStruct instance. |
| 40 | + |
| 41 | +// ANY_RELATIONSHIP: Begin completions |
| 42 | +// ANY_RELATIONSHIP-DAG: Decl[LocalVar]/Local: myStruct[#MyStruct#]; name=myStruct |
| 43 | +// ANY_RELATIONSHIP-DAG: Decl[Struct]/Local: MyStruct[#MyStruct#]; name=MyStruct |
| 44 | +// ANY_RELATIONSHIP: End completions |
| 45 | +} |
| 46 | + |
| 47 | +func testRdar84684686() { |
| 48 | + func foo(_ x: Any?) {} |
| 49 | + |
| 50 | + struct S { |
| 51 | + static func bar(x: Int) -> Int { x } |
| 52 | + } |
| 53 | + |
| 54 | + // We should suggest a function call to `bar` here (i.e. `bar(x: <#Int#>)`), not a function reference (i.e. `bar(x:)`) |
| 55 | + foo(S.#^ANY_PREFERS_FUNCTION_CALL^#) |
| 56 | +// ANY_PREFERS_FUNCTION_CALL: Begin completions |
| 57 | +// ANY_PREFERS_FUNCTION_CALL-DAG: Decl[StaticMethod]/CurrNominal: bar({#x: Int#})[#Int#]; name=bar(x:) |
| 58 | +// ANY_PREFERS_FUNCTION_CALL: End completions |
| 59 | +} |
0 commit comments