96
96
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TYPECHECKED_OVERLOADED | %FileCheck %s -check-prefix=TYPECHECKED_OVERLOADED
97
97
// RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=TYPECHECKED_TYPEEXPR | %FileCheck %s -check-prefix=TYPECHECKED_TYPEEXPR
98
98
99
+ // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ARG_PARAMFLAG_INOUT | %FileCheck %s -check-prefix=ARG_PARAMFLAG_INOUT
100
+ // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ARG_PARAMFLAG_AUTOCLOSURE| %FileCheck %s -check-prefix=ARG_PARAMFLAG_AUTOCLOSURE
101
+ // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ARG_PARAMFLAG_IUO | %FileCheck %s -check-prefix=ARG_PARAMFLAG_IUO
102
+ // RUN: %target-swift-ide-test -code-completion -source-filename %s -code-completion-token=ARG_PARAMFLAG_VARIADIC | %FileCheck %s -check-prefix=ARG_PARAMFLAG_VARIADIC
103
+
104
+
99
105
var i1 = 1
100
106
var i2 = 2
101
107
var oi1 : Int ?
@@ -171,18 +177,18 @@ class C1 {
171
177
}
172
178
173
179
// ARG-NAME1: Begin completions, 2 items
174
- // ARG-NAME1-DAG: Pattern/ExprSpecific: {#b1: Int?#}[#Argument #];
175
- // ARG-NAME1-DAG: Pattern/ExprSpecific: {#b2: Int?#}[#Argument #];
180
+ // ARG-NAME1-DAG: Pattern/ExprSpecific: {#b1: Int?#}[#Int? #];
181
+ // ARG-NAME1-DAG: Pattern/ExprSpecific: {#b2: Int?#}[#Int? #];
176
182
177
183
// ARG-NAME2: Begin completions, 1 items
178
- // ARG-NAME2-DAG: Pattern/ExprSpecific: {#b: Int#}[#Argument #];
184
+ // ARG-NAME2-DAG: Pattern/ExprSpecific: {#b: Int#}[#Int #];
179
185
180
186
// ARG-NAME3: Begin completions, 1 items
181
- // ARG-NAME3-DAG: Pattern/ExprSpecific: {#b: String?#}[#Argument #];
187
+ // ARG-NAME3-DAG: Pattern/ExprSpecific: {#b: String?#}[#String? #];
182
188
183
189
// ARG-NAME4: Begin completions, 2 items
184
- // ARG-NAME4-DAG: Pattern/ExprSpecific: {#b1: String#}[#Argument #];
185
- // ARG-NAME4-DAG: Pattern/ExprSpecific: {#b2: String#}[#Argument #];
190
+ // ARG-NAME4-DAG: Pattern/ExprSpecific: {#b1: String#}[#String #];
191
+ // ARG-NAME4-DAG: Pattern/ExprSpecific: {#b2: String#}[#String #];
186
192
// ARG-NAME4: End completions
187
193
188
194
// EXPECT_OINT: Begin completions
@@ -344,7 +350,7 @@ extension C3 {
344
350
// HASERROR2: End completions
345
351
346
352
// HASERROR3: Begin completions
347
- // HASERROR3-DAG: Pattern/ExprSpecific: {#b1: <<error type>>#}[#Argument #];
353
+ // HASERROR3-DAG: Pattern/ExprSpecific: {#b1: <<error type>>#}[#<<error type>> #];
348
354
// HASERROR3: End completions
349
355
350
356
// HASERROR4: Begin completions
@@ -472,7 +478,7 @@ func testArg2Name1() {
472
478
func testArg2Name3( ) {
473
479
firstArg( #^FIRST_ARG_NAME_3 ^#,
474
480
}
475
- // FIRST_ARG_NAME_3: Pattern/ExprSpecific: {#arg1: Int#}[#Argument #];
481
+ // FIRST_ARG_NAME_3: Pattern/ExprSpecific: {#arg1: Int#}[#Int #];
476
482
// FIRST_ARG_NAME_4: Decl[FreeFunction]/CurrModule: ['(']{#arg1: Int#}, {#arg2: Int#}[')'][#Void#];
477
483
478
484
func takeArray< T> ( _ x: [ T ] ) { }
@@ -590,7 +596,7 @@ func testSubscript(obj: HasSubscript, intValue: Int, strValue: String) {
590
596
591
597
let _ = obj[ 42 , #^SUBSCRIPT_2 ^#
592
598
// SUBSCRIPT_2: Begin completions, 1 items
593
- // SUBSCRIPT_2-NEXT: Pattern/ExprSpecific: {#default: String#}[#Argument #];
599
+ // SUBSCRIPT_2-NEXT: Pattern/ExprSpecific: {#default: String#}[#String #];
594
600
595
601
let _ = obj[ 42 , . #^SUBSCRIPT_2 _DOT^#
596
602
// SUBSCRIPT_2_DOT-NOT: Begin completions
@@ -667,16 +673,16 @@ func testStaticMemberCall() {
667
673
668
674
let _ = TestStaticMemberCall . create2 ( 1 , #^STATIC_METHOD_SECOND^#)
669
675
// STATIC_METHOD_SECOND: Begin completions, 3 items
670
- // STATIC_METHOD_SECOND: Pattern/ExprSpecific: {#arg2: Int#}[#Argument #];
671
- // STATIC_METHOD_SECOND: Pattern/ExprSpecific: {#arg3: Int#}[#Argument #];
672
- // STATIC_METHOD_SECOND: Pattern/ExprSpecific: {#arg4: Int#}[#Argument #];
676
+ // STATIC_METHOD_SECOND: Pattern/ExprSpecific: {#arg2: Int#}[#Int #];
677
+ // STATIC_METHOD_SECOND: Pattern/ExprSpecific: {#arg3: Int#}[#Int #];
678
+ // STATIC_METHOD_SECOND: Pattern/ExprSpecific: {#arg4: Int#}[#Int #];
673
679
// STATIC_METHOD_SECOND: End completions
674
680
675
681
let _ = TestStaticMemberCall . create2 ( 1 , arg3: 2 , #^STATIC_METHOD_SKIPPED^#)
676
682
// STATIC_METHOD_SKIPPED: Begin completions, 2 items
677
683
// FIXME: 'arg3' shouldn't be suggested.
678
- // STATIC_METHOD_SKIPPED: Pattern/ExprSpecific: {#arg3: Int#}[#Argument #];
679
- // STATIC_METHOD_SKIPPED: Pattern/ExprSpecific: {#arg4: Int#}[#Argument #];
684
+ // STATIC_METHOD_SKIPPED: Pattern/ExprSpecific: {#arg3: Int#}[#Int #];
685
+ // STATIC_METHOD_SKIPPED: Pattern/ExprSpecific: {#arg4: Int#}[#Int #];
680
686
// STATIC_METHOD_SKIPPED: End completions
681
687
}
682
688
func testImplicitMember( ) {
@@ -695,16 +701,16 @@ func testImplicitMember() {
695
701
696
702
let _: TestStaticMemberCall = . create2( 1 , #^IMPLICIT_MEMBER_SECOND^#)
697
703
// IMPLICIT_MEMBER_SECOND: Begin completions, 3 items
698
- // IMPLICIT_MEMBER_SECOND: Pattern/ExprSpecific: {#arg2: Int#}[#Argument #];
699
- // IMPLICIT_MEMBER_SECOND: Pattern/ExprSpecific: {#arg3: Int#}[#Argument #];
700
- // IMPLICIT_MEMBER_SECOND: Pattern/ExprSpecific: {#arg4: Int#}[#Argument #];
704
+ // IMPLICIT_MEMBER_SECOND: Pattern/ExprSpecific: {#arg2: Int#}[#Int #];
705
+ // IMPLICIT_MEMBER_SECOND: Pattern/ExprSpecific: {#arg3: Int#}[#Int #];
706
+ // IMPLICIT_MEMBER_SECOND: Pattern/ExprSpecific: {#arg4: Int#}[#Int #];
701
707
// IMPLICIT_MEMBER_SECOND: End completions
702
708
703
709
let _: TestStaticMemberCall = . create2( 1 , arg3: 2 , #^IMPLICIT_MEMBER_SKIPPED^#)
704
710
// IMPLICIT_MEMBER_SKIPPED: Begin completions, 2 items
705
711
// FIXME: 'arg3' shouldn't be suggested.
706
- // IMPLICIT_MEMBER_SKIPPED: Pattern/ExprSpecific: {#arg3: Int#}[#Argument #];
707
- // IMPLICIT_MEMBER_SKIPPED: Pattern/ExprSpecific: {#arg4: Int#}[#Argument #];
712
+ // IMPLICIT_MEMBER_SKIPPED: Pattern/ExprSpecific: {#arg3: Int#}[#Int #];
713
+ // IMPLICIT_MEMBER_SKIPPED: Pattern/ExprSpecific: {#arg4: Int#}[#Int #];
708
714
// IMPLICIT_MEMBER_SKIPPED: End completions
709
715
}
710
716
func testImplicitMemberInArrayLiteral( ) {
@@ -787,3 +793,26 @@ func testTypecheckedTypeExpr() {
787
793
// TYPECHECKED_TYPEEXPR: Decl[Constructor]/CurrNominal: ['(']{#arg1: String#}, {#arg2: _#}[')'][#MyType<_>#]; name=arg1: String, arg2: _
788
794
// TYPECHECKED_TYPEEXPR: Decl[Constructor]/CurrNominal: ['(']{#(intVal): Int#}[')'][#MyType<Int>#]; name=intVal: Int
789
795
// TYPECHECKED_TYPEEXPR: End completions
796
+
797
+ func testPamrameterFlags( _: Int, inoutArg: inout Int, autoclosureArg: @autoclosure ( ) - > Int, iuoArg: Int!, variadicArg: Int... ) {
798
+ var intVal = 1
799
+ testPamrameterFlags ( intVal, #^ARG_PARAMFLAG_INOUT^#)
800
+ // ARG_PARAMFLAG_INOUT: Begin completions, 1 items
801
+ // ARG_PARAMFLAG_INOUT-DAG: Pattern/ExprSpecific: {#inoutArg: &Int#}[#inout Int#]; name=inoutArg:
802
+ // ARG_PARAMFLAG_INOUT: End completions
803
+
804
+ testPamrameterFlags ( intVal, inoutArg: & intVal, #^ARG_PARAMFLAG_AUTOCLOSURE^#)
805
+ // ARG_PARAMFLAG_AUTOCLOSURE: Begin completions, 1 items
806
+ // ARG_PARAMFLAG_AUTOCLOSURE-DAG: Pattern/ExprSpecific: {#autoclosureArg: Int#}[#Int#];
807
+ // ARG_PARAMFLAG_AUTOCLOSURE: End completions
808
+
809
+ testPamrameterFlags ( intVal, inoutArg: & intVal, autoclosureArg: intVal, #^ARG_PARAMFLAG_IUO^#)
810
+ // ARG_PARAMFLAG_IUO: Begin completions, 1 items
811
+ // ARG_PARAMFLAG_IUO-DAG: Pattern/ExprSpecific: {#iuoArg: Int?#}[#Int?#];
812
+ // ARG_PARAMFLAG_IUO: End completions
813
+
814
+ testPamrameterFlags ( intVal, inoutArg: & intVal, autoclosureArg: intVal, iuoArg: intVal, #^ARG_PARAMFLAG_VARIADIC^#)
815
+ // ARG_PARAMFLAG_VARIADIC: Begin completions, 1 items
816
+ // ARG_PARAMFLAG_VARIADIC-DAG: Pattern/ExprSpecific: {#variadicArg: Int...#}[#Int#];
817
+ // ARG_PARAMFLAG_VARIADIC: End completions
818
+ }
0 commit comments