Skip to content

Commit c7e0bfa

Browse files
committed
[IDE] Adjust test cases for migrating all completion kinds to solver-based
1 parent d3270c1 commit c7e0bfa

13 files changed

+97
-18
lines changed

test/IDE/complete_ambiguous.swift

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,8 +395,12 @@ CreateThings {
395395
CreateThings {
396396
Thing { point in
397397
print("hello")
398-
point. // ErrorExpr
399-
point.#^MULTICLOSURE_FUNCBUILDER_ERROR?check=POINT_MEMBER^#
398+
do {
399+
point. // ErrorExpr
400+
}
401+
do {
402+
point.#^MULTICLOSURE_FUNCBUILDER_ERROR?check=POINT_MEMBER^#
403+
}
400404
}
401405
Thing { point in
402406
print("hello")

test/IDE/complete_call_arg.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ extension MyType where T == Int {
686686
func testTypecheckedTypeExpr() {
687687
MyType(#^TYPECHECKED_TYPEEXPR^#
688688
}
689-
// TYPECHECKED_TYPEEXPR: Decl[Constructor]/CurrNominal/Flair[ArgLabels]: ['(']{#arg1: String#}, {#arg2: _#}[')'][#MyType<_>#]; name=arg1:arg2:
689+
// TYPECHECKED_TYPEEXPR: Decl[Constructor]/CurrNominal/Flair[ArgLabels]: ['(']{#arg1: String#}, {#arg2: T#}[')'][#MyType<T>#]; name=arg1:arg2:
690690
// TYPECHECKED_TYPEEXPR: Decl[Constructor]/CurrNominal/Flair[ArgLabels]: ['(']{#(intVal): Int#}[')'][#MyType<Int>#]; name=:
691691

692692
func testPamrameterFlags(_: Int, inoutArg: inout Int, autoclosureArg: @autoclosure () -> Int, iuoArg: Int!, variadicArg: Int...) {
@@ -1370,3 +1370,23 @@ func testParameterPack(intArray: [Int]) {
13701370
// PARAMETER_PACK_ARG: Pattern/Local/Flair[ArgLabels]: {#otherParam: Int#}[#Int#]; name=otherParam:
13711371
// PARAMETER_PACK_ARG: Decl[LocalVar]/Local/TypeRelation[Convertible]: intArray[#[Int]#]; name=intArray
13721372
}
1373+
1374+
struct AmbiguousCallInResultBuilder {
1375+
@resultBuilder
1376+
struct MyResultBuilder {
1377+
static func buildBlock(_ value: Int) -> Int {
1378+
return value
1379+
}
1380+
}
1381+
1382+
func ttroke(_ content: Int, style: String) -> Int { 41 }
1383+
func ttroke(_ content: Int, lineWidth: Int = 1) -> Int { 42 }
1384+
1385+
@MyResultBuilder var body: Int {
1386+
self.ttroke(1, #^AMBIGUOUS_IN_RESULT_BUILDER?xfail=TODO^#)
1387+
// AMBIGUOUS_IN_RESULT_BUILDER: Begin completions, 2 items
1388+
// AMBIGUOUS_IN_RESULT_BUILDER-DAG: Pattern/Local/Flair[ArgLabels]: {#style: String#}[#String#];
1389+
// AMBIGUOUS_IN_RESULT_BUILDER-DAG: Pattern/Local/Flair[ArgLabels]: {#lineWidth: Int#}[#Int#];
1390+
// AMBIGUOUS_IN_RESULT_BUILDER: End completions
1391+
}
1392+
}

test/IDE/complete_call_pattern_heuristics.swift

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// RUN: %empty-directory(%t)
2-
// RUN: %target-swift-ide-test -batch-code-completion -source-filename %s -filecheck %raw-FileCheck -completion-output-dir %t -code-complete-call-pattern-heuristics
2+
// RUN: %target-swift-ide-test -batch-code-completion -source-filename %s -filecheck %raw-FileCheck -completion-output-dir %t -code-complete-call-pattern-heuristics -disable-objc-attr-requires-foundation-module
33

44
struct FooStruct {
55
init() {}
@@ -33,6 +33,23 @@ func testArg2Name3() {
3333
// LABELED_FIRSTARG-NOT: ['(']{#arg1: Int#}, {#arg2: Int#}[')'][#Void#];
3434
// LABELED_FIRSTARG-DAG: Pattern/Local/Flair[ArgLabels]: {#arg1: Int#}[#Int#];
3535
// LABELED_FIRSTARG-NOT: ['(']{#arg1: Int#}, {#arg2: Int#}[')'][#Void#];
36+
}
37+
38+
func optionalClosure(optClosure: ((Int) -> Void)?, someArg: Int) {
39+
optClosure?(#^OPTIONAL_CLOSURE^#someArg)
40+
// OPTIONAL_CLOSURE-DAG: Decl[LocalVar]/Local/TypeRelation[Convertible]: someArg[#Int#]; name=someArg
41+
}
42+
43+
func optionalProtocolMethod() {
44+
@objc protocol Foo {
45+
@objc optional func foo(arg: Int)
46+
}
47+
48+
func test(foo: Foo) {
49+
foo.foo?(#^OPTIONAL_PROTOCOL_METHOD^#)
50+
// OPTIONAL_PROTOCOL_METHOD-DAG: Decl[InstanceMethod]/CurrNominal/Flair[ArgLabels]: ['(']{#arg: Int#}[')'][#Void#];
51+
}
52+
}
3653

3754
func subscriptAccess(info: [String: Int]) {
3855
info[#^SUBSCRIPT_ACCESS^#]
@@ -49,3 +66,30 @@ struct StaticMethods {
4966
// AFTER_STATIC_FUNC-DAG: Pattern/CurrModule/Flair[ArgLabels]: ()[#Int#];
5067
// AFTER_STATIC_FUNC: End completions
5168
}
69+
70+
struct AmbiguousInResultBuilder {
71+
@resultBuilder
72+
struct MyViewBuilder {
73+
static func buildBlock(_ elt: Text) -> Int {
74+
53
75+
}
76+
}
77+
78+
struct Text {
79+
init(verbatim content: String) {}
80+
init<S>(_ content: S) where S : StringProtocol {}
81+
}
82+
83+
func foo(@MyViewBuilder content: () -> Int) {}
84+
85+
func test(myStr: String) {
86+
foo {
87+
Text(#^AMBIGUOUS_IN_RESULT_BUILDER?xfail=TODO^#)
88+
// AMBIGUOUS_IN_RESULT_BUILDER: Begin completions
89+
// AMBIGUOUS_IN_RESULT_BUILDER-DAG: Decl[Constructor]/CurrNominal/Flair[ArgLabels]: ['(']{#verbatim: String#}[')'][#Text#]; name=verbatim:
90+
// AMBIGUOUS_IN_RESULT_BUILDER-DAG: Decl[Constructor]/CurrNominal/Flair[ArgLabels]: ['(']{#(content): _#}[')'][#Text#]; name=:
91+
// AMBIGUOUS_IN_RESULT_BUILDER-DAG: Decl[LocalVar]/Local/TypeRelation[Convertible]: myStr[#String#]; name=myStr
92+
// AMBIGUOUS_IN_RESULT_BUILDER: End completions
93+
}
94+
}
95+
}

test/IDE/complete_enum_elements.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ func testUnqualified1(x: QuxEnum) {
349349
_ = (x == .Qux1#^UNRESOLVED_3^#)
350350
// UNRESOLVED_3-DAG: Decl[InstanceVar]/CurrNominal: .rawValue[#Int#]; name=rawValue
351351
// UNRESOLVED_3-DAG: Decl[InstanceVar]/Super/IsSystem: .hashValue[#Int#]; name=hashValue
352-
// UNRESOLVED_3-DAG: Decl[InstanceMethod]/Super/IsSystem: .hash({#into: &Hasher#})[#Void#]; name=hash(into:)
352+
// UNRESOLVED_3-DAG: Decl[InstanceMethod]/Super/IsSystem/TypeRelation[Invalid]: .hash({#into: &Hasher#})[#Void#]; name=hash(into:)
353353
// UNRESOLVED_3-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]/IsSystem: ~= {#QuxEnum#}[#Bool#]; name=~=
354354
// UNRESOLVED_3-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]/IsSystem: != {#QuxEnum#}[#Bool#]; name=!=
355355
// UNRESOLVED_3-DAG: Decl[InfixOperatorFunction]/OtherModule[Swift]/IsSystem: == {#QuxEnum#}[#Bool#]; name===

test/IDE/complete_in_result_builder.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ func testGlobalLookup() {
5959

6060
@TupleBuilder<String> var x5 {
6161
"hello: \(#^GLOBAL_LOOKUP_IN_STRING_LITERAL^#)"
62-
// GLOBAL_LOOKUP_IN_STRING_LITERAL: Decl[GlobalVar]/CurrModule/TypeRelation[Convertible]: MyConstantString[#String#];
62+
// GLOBAL_LOOKUP_IN_STRING_LITERAL: Decl[GlobalVar]/CurrModule: MyConstantString[#String#];
6363
}
6464

6565
@TupleBuilder<String> var x5 {
@@ -87,7 +87,7 @@ func testStaticMemberLookup() {
8787
@TupleBuilder<String> var x3 {
8888
"hello: \(StringFactory.#^COMPLETE_STATIC_MEMBER_IN_STRING_LITERAL^#)"
8989
// COMPLETE_STATIC_MEMBER_IN_STRING_LITERAL: Begin completions
90-
// COMPLETE_STATIC_MEMBER_IN_STRING_LITERAL: Decl[StaticMethod]/CurrNominal/TypeRelation[Convertible]: makeString({#x: String#})[#String#];
90+
// COMPLETE_STATIC_MEMBER_IN_STRING_LITERAL: Decl[StaticMethod]/CurrNominal: makeString({#x: String#})[#String#];
9191
// COMPLETE_STATIC_MEMBER_IN_STRING_LITERAL: End completions
9292
}
9393
}

test/IDE/complete_issue-56811.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@ public enum Endpoint {
1414
    }
1515
  }
1616
}
17-
// CHECK: Decl[LocalVar]/Local/TypeRelation[Convertible]: myInt[#Int#];
17+
// CHECK: Decl[LocalVar]/Local: myInt[#Int#];

test/IDE/complete_literal.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,12 @@ func testArray(f1: Float) {
7171
_ = [1, 2, f1] #^LITERAL8^#
7272
}
7373
// LITERAL8-DAG: Decl[InstanceVar]/CurrNominal/IsSystem: .count[#Int#]; name=count
74-
// LITERAL8-DAG: Decl[InstanceVar]/Super/IsSystem: .first[#Float?#]; name=first
74+
// LITERAL8-DAG: Decl[InstanceVar]/Super/IsSystem: .first[#Any?#]; name=first
7575

7676
func testDict(f1: Float) {
7777
_ = ["foo": f1, "bar": "baz"] #^LITERAL9^#
7878
}
79-
// LITERAL9-DAG: Decl[InstanceVar]/CurrNominal/IsSystem: .keys[#Dictionary<String, String>.Keys#]; name=keys
80-
// LITERAL9-DAG: Decl[InstanceVar]/CurrNominal/IsSystem: .keys[#Dictionary<String, Float>.Keys#]; name=keys
79+
// LITERAL9-DAG: Decl[InstanceVar]/CurrNominal/IsSystem: .keys[#Dictionary<String, Any>.Keys#]; name=keys
8180
// LITERAL9-DAG: Decl[InstanceVar]/CurrNominal/IsSystem: .isEmpty[#Bool#]; name=isEmpty
8281

8382
func testEditorPlaceHolder() {
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
// RUN: %target-swift-ide-test -repl-code-completion -source-filename %s | %FileCheck %s
22

3-
// CHECK-DAG: .self: _
43
// CHECK-DAG: {{^}}true: Bool{{$}}
54

65
tru

test/IDE/complete_with_adjacent_string_literal.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ func takeClosure(x: () -> Void) {}
44
func takeString(_ a: String) -> MyStruct {}
55

66
struct MyStruct {
7-
func style() {}
7+
func style(arg: Int) {}
88
}
99

1010
func foo() {
@@ -13,3 +13,8 @@ func foo() {
1313
.style(#^COMPLETE^#)
1414
}
1515
}
16+
17+
// COMPLETE: Begin completions, 1 items
18+
// COMPLETE: Decl[InstanceMethod]/CurrNominal/Flair[ArgLabels]/TypeRelation[Convertible]: ['(']{#arg: Int#}[')'][#Void#];
19+
// COMPLETE: End completions
20+

test/SourceKit/CodeComplete/complete_inner.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ func test010(x: E1, y: FooBar) {
3737
// INNER_POSTFIX_0b-NOT: key.description: "one{{.+}}"
3838
// INNER_POSTFIX_0b: key.description: "one",{{$}}
3939
// INNER_POSTFIX_0b: key.description: "one.",{{$}}
40+
// INNER_POSTFIX_0b: key.description: "one==",{{$}}
41+
// INNER_POSTFIX_0b: key.description: "one!=",{{$}}
42+
// INNER_POSTFIX_0b: key.description: "one~=",{{$}}
4043
// INNER_POSTFIX_0b-NOT: key.description: "one{{.+}}"
4144

4245
// RUN: %sourcekitd-test -req=complete.open -pos=27:9 -req-opts=filtertext=pro %s -- %s | %FileCheck %s -check-prefix=INNER_POSTFIX_1

0 commit comments

Comments
 (0)