@@ -865,6 +865,9 @@ func testCompleteLabelAfterVararg() {
865
865
enum Foo {
866
866
case bar
867
867
}
868
+ enum Baz {
869
+ case bazCase
870
+ }
868
871
869
872
struct Rdar76355192 {
870
873
func test( _: String , xArg: Foo ... , yArg: Foo ... , zArg: Foo ... ) { }
@@ -887,6 +890,37 @@ func testCompleteLabelAfterVararg() {
887
890
// COMPLETE_MEMBER_IN_VARARG-DAG: Decl[InstanceMethod]/CurrNominal/TypeRelation[Invalid]: hash({#(self): Foo#})[#(into: inout Hasher) -> Void#];
888
891
// COMPLETE_MEMBER_IN_VARARG: End completions
889
892
}
893
+
894
+ struct Sr14515 {
895
+ func test( _: Foo ... , yArg: Baz ) { }
896
+ }
897
+
898
+ private func testSr14515( value: Sr14515 , foo: Foo , baz: Baz ) {
899
+ value. test ( foo, #^COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG^#)
900
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG: Begin completions
901
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG-DAG: Decl[LocalVar]/Local/TypeRelation[Identical]: foo[#Foo#];
902
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG-DAG: Pattern/ExprSpecific: {#yArg: Baz#}[#Baz#];
903
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG: End completions
904
+
905
+ // The leading dot completion tests that have picked the right type for the argument
906
+ value. test ( foo, . #^COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG_DOT^#)
907
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG_DOT: Begin completions, 2 items
908
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG_DOT-DAG: Decl[EnumElement]/ExprSpecific/TypeRelation[Identical]: bar[#Foo#];
909
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG_DOT-DAG: Decl[InstanceMethod]/CurrNominal/TypeRelation[Invalid]: hash({#(self): Foo#})[#(into: inout Hasher) -> Void#];
910
+ // COMPLETE_VARARG_FOLLOWED_BY_NORMAL_ARG_DOT: End completions
911
+
912
+ value. test ( foo, yArg: #^COMPLETE_ARG_AFTER_VARARG^#)
913
+ // COMPLETE_ARG_AFTER_VARARG: Begin completions
914
+ // COMPLETE_ARG_AFTER_VARARG-DAG: Decl[LocalVar]/Local/TypeRelation[Identical]: baz[#Baz#];
915
+ // COMPLETE_ARG_AFTER_VARARG-NOT: Pattern/ExprSpecific: {#yArg: Baz#}[#Baz#];
916
+ // COMPLETE_ARG_AFTER_VARARG: End completions
917
+
918
+ value. test ( foo, yArg: . #^COMPLETE_ARG_AFTER_VARARG_DOT^#)
919
+ // COMPLETE_ARG_AFTER_VARARG_DOT: Begin completions, 2 items
920
+ // COMPLETE_ARG_AFTER_VARARG_DOT-DAG: Decl[EnumElement]/ExprSpecific/TypeRelation[Identical]: bazCase[#Baz#];
921
+ // COMPLETE_ARG_AFTER_VARARG_DOT-DAG: Decl[InstanceMethod]/CurrNominal/TypeRelation[Invalid]: hash({#(self): Baz#})[#(into: inout Hasher) -> Void#];
922
+ // COMPLETE_ARG_AFTER_VARARG_DOT: End completions
923
+ }
890
924
}
891
925
892
926
func testGenericConstructor( ) {
0 commit comments