Skip to content

Commit e9e5134

Browse files
committed
[CodeCompletion] Add test cases for call arg completion
Static methods, implicit member.
1 parent 557505d commit e9e5134

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

test/IDE/complete_call_arg.swift

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,15 @@
7474
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CURRIED_SELF_2 | %FileCheck %s -check-prefix=CURRIED_SELF_1
7575
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CURRIED_SELF_3 | %FileCheck %s -check-prefix=CURRIED_SELF_1
7676

77+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=STATIC_METHOD_AFTERPAREN_1 | %FileCheck %s -check-prefix=STATIC_METHOD_AFTERPAREN_1
78+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=STATIC_METHOD_AFTERPAREN_2 | %FileCheck %s -check-prefix=STATIC_METHOD_AFTERPAREN_2
79+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=STATIC_METHOD_SECOND | %FileCheck %s -check-prefix=STATIC_METHOD_SECOND
80+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=STATIC_METHOD_SKIPPED | %FileCheck %s -check-prefix=STATIC_METHOD_SKIPPED
81+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=IMPLICIT_MEMBER_AFTERPAREN_1 | %FileCheck %s -check-prefix=IMPLICIT_MEMBER_AFTERPAREN_1
82+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=IMPLICIT_MEMBER_AFTERPAREN_2 | %FileCheck %s -check-prefix=IMPLICIT_MEMBER_AFTERPAREN_2
83+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=IMPLICIT_MEMBER_SECOND | %FileCheck %s -check-prefix=IMPLICIT_MEMBER_SECOND
84+
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=IMPLICIT_MEMBER_SKIPPED | %FileCheck %s -check-prefix=IMPLICIT_MEMBER_SKIPPED
85+
7786
var i1 = 1
7887
var i2 = 2
7988
var oi1 : Int?
@@ -613,3 +622,68 @@ class TestImplicitlyCurriedSelf {
613622
// CURRIED_SELF_1: End completions
614623
}
615624
}
625+
626+
class TestStaticMemberCall {
627+
static func create1(arg1: Int) -> TestStaticMemberCall {
628+
return TestStaticMemberCall()
629+
}
630+
static func create2(_ arg1: Int, arg2: Int = 0, arg3: Int = 1, arg4: Int = 2) -> TestStaticMemberCall {
631+
return TestStaticMemberCall()
632+
}
633+
}
634+
func testStaticMemberCall() {
635+
let _ = TestStaticMemberCall.create1(#^STATIC_METHOD_AFTERPAREN_1^#)
636+
// STATIC_METHOD_AFTERPAREN_1: Begin completions, 1 items
637+
// STATIC_METHOD_AFTERPAREN_1: Decl[StaticMethod]/CurrNominal: ['(']{#arg1: Int#}[')'][#TestStaticMemberCall#]; name=arg1: Int
638+
// STATIC_METHOD_AFTERPAREN_1: End completions
639+
640+
let _ = TestStaticMemberCall.create2(#^STATIC_METHOD_AFTERPAREN_2^#)
641+
// STATIC_METHOD_AFTERPAREN_2: Begin completions
642+
// STATIC_METHOD_AFTERPAREN_2-DAG: Decl[StaticMethod]/CurrNominal/TypeRelation[Identical]: ['(']{#(arg1): Int#}[')'][#TestStaticMemberCall#];
643+
// STATIC_METHOD_AFTERPAREN_2-DAG: Decl[StaticMethod]/CurrNominal/TypeRelation[Identical]: ['(']{#(arg1): Int#}, {#arg2: Int#}, {#arg3: Int#}, {#arg4: Int#}[')'][#TestStaticMemberCall#];
644+
// STATIC_METHOD_AFTERPAREN_2-DAG: Decl[Struct]/OtherModule[Swift]/TypeRelation[Identical]: Int[#Int#];
645+
// STATIC_METHOD_AFTERPAREN_2-DAG: Literal[Integer]/None/TypeRelation[Identical]: 0[#Int#];
646+
// STATIC_METHOD_AFTERPAREN_2: End completions
647+
648+
let _ = TestStaticMemberCall.create2(1, #^STATIC_METHOD_SECOND^#)
649+
// STATIC_METHOD_SECOND: Begin completions, 3 items
650+
// STATIC_METHOD_SECOND: Keyword/ExprSpecific: arg2: [#Argument name#];
651+
// STATIC_METHOD_SECOND: Keyword/ExprSpecific: arg3: [#Argument name#];
652+
// STATIC_METHOD_SECOND: Keyword/ExprSpecific: arg4: [#Argument name#];
653+
// STATIC_METHOD_SECOND: End completions
654+
655+
let _ = TestStaticMemberCall.create2(1, arg3: 2, #^STATIC_METHOD_SKIPPED^#)
656+
// STATIC_METHOD_SKIPPED: Begin completions, 2 items
657+
// FIXME: 'arg3' shouldn't be suggested.
658+
// STATIC_METHOD_SKIPPED: Keyword/ExprSpecific: arg3: [#Argument name#];
659+
// STATIC_METHOD_SKIPPED: Keyword/ExprSpecific: arg4: [#Argument name#];
660+
// STATIC_METHOD_SKIPPED: End completions
661+
}
662+
func testImplicitMember() {
663+
let _: TestStaticMemberCall = .create1(#^IMPLICIT_MEMBER_AFTERPAREN_1^#)
664+
// IMPLICIT_MEMBER_AFTERPAREN_1: Begin completions, 1 items
665+
// IMPLICIT_MEMBER_AFTERPAREN_1: Decl[StaticMethod]/CurrNominal: ['(']{#arg1: Int#}[')'][#TestStaticMemberCall#]; name=arg1: Int
666+
// IMPLICIT_MEMBER_AFTERPAREN_1: End completions
667+
668+
let _: TestStaticMemberCall = .create2(#^IMPLICIT_MEMBER_AFTERPAREN_2^#)
669+
// IMPLICIT_MEMBER_AFTERPAREN_2: Begin completions
670+
// IMPLICIT_MEMBER_AFTERPAREN_2-DAG: Decl[StaticMethod]/CurrNominal: ['(']{#(arg1): Int#}[')'][#TestStaticMemberCall#];
671+
// IMPLICIT_MEMBER_AFTERPAREN_2-DAG: Decl[StaticMethod]/CurrNominal: ['(']{#(arg1): Int#}, {#arg2: Int#}, {#arg3: Int#}, {#arg4: Int#}[')'][#TestStaticMemberCall#];
672+
// IMPLICIT_MEMBER_AFTERPAREN_2-DAG: Decl[Struct]/OtherModule[Swift]/TypeRelation[Identical]: Int[#Int#];
673+
// IMPLICIT_MEMBER_AFTERPAREN_2-DAG: Literal[Integer]/None/TypeRelation[Identical]: 0[#Int#];
674+
// IMPLICIT_MEMBER_AFTERPAREN_2: End completions
675+
676+
let _: TestStaticMemberCall = .create2(1, #^IMPLICIT_MEMBER_SECOND^#)
677+
// IMPLICIT_MEMBER_SECOND: Begin completions, 3 items
678+
// IMPLICIT_MEMBER_SECOND: Keyword/ExprSpecific: arg2: [#Argument name#];
679+
// IMPLICIT_MEMBER_SECOND: Keyword/ExprSpecific: arg3: [#Argument name#];
680+
// IMPLICIT_MEMBER_SECOND: Keyword/ExprSpecific: arg4: [#Argument name#];
681+
// IMPLICIT_MEMBER_SECOND: End completions
682+
683+
let _: TestStaticMemberCall = .create2(1, arg3: 2, #^IMPLICIT_MEMBER_SKIPPED^#)
684+
// IMPLICIT_MEMBER_SKIPPED: Begin completions, 2 items
685+
// FIXME: 'arg3' shouldn't be suggested.
686+
// IMPLICIT_MEMBER_SKIPPED: Keyword/ExprSpecific: arg3: [#Argument name#];
687+
// IMPLICIT_MEMBER_SKIPPED: Keyword/ExprSpecific: arg4: [#Argument name#];
688+
// IMPLICIT_MEMBER_SKIPPED: End completions
689+
}

0 commit comments

Comments
 (0)