|
74 | 74 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CURRIED_SELF_2 | %FileCheck %s -check-prefix=CURRIED_SELF_1
|
75 | 75 | // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=CURRIED_SELF_3 | %FileCheck %s -check-prefix=CURRIED_SELF_1
|
76 | 76 |
|
| 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 | + |
77 | 86 | var i1 = 1
|
78 | 87 | var i2 = 2
|
79 | 88 | var oi1 : Int?
|
@@ -613,3 +622,68 @@ class TestImplicitlyCurriedSelf {
|
613 | 622 | // CURRIED_SELF_1: End completions
|
614 | 623 | }
|
615 | 624 | }
|
| 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