11//! Completion tests for pattern position.
22use expect_test:: { expect, Expect } ;
33
4- use crate :: tests:: { completion_list, BASE_ITEMS_FIXTURE } ;
4+ use crate :: tests:: { check_edit , completion_list, BASE_ITEMS_FIXTURE } ;
55
66fn check_empty ( ra_fixture : & str , expect : Expect ) {
77 let actual = completion_list ( ra_fixture) ;
@@ -127,15 +127,15 @@ fn foo() {
127127 expect ! [ [ r#"
128128 ct CONST
129129 en Enum
130- ma makro!(…) macro_rules! makro
130+ ma makro!(…) macro_rules! makro
131131 md module
132132 st Record
133133 st Tuple
134134 st Unit
135135 ev TupleV
136- bn Record Record { field$1 }$0
137- bn Tuple Tuple($1)$0
138- bn TupleV TupleV($1)$0
136+ bn Record {…} Record { field$1 }$0
137+ bn Tuple(…) Tuple($1)$0
138+ bn TupleV(…) TupleV($1)$0
139139 kw mut
140140 kw ref
141141 "# ] ] ,
@@ -162,8 +162,8 @@ fn foo() {
162162 st Tuple
163163 st Unit
164164 ev Variant
165- bn Record Record { field$1 }$0
166- bn Tuple Tuple($1)$0
165+ bn Record {…} Record { field$1 }$0
166+ bn Tuple(…) Tuple($1)$0
167167 kw mut
168168 kw ref
169169 "# ] ] ,
@@ -178,13 +178,13 @@ fn foo(a$0) {
178178}
179179"# ,
180180 expect ! [ [ r#"
181- ma makro!(…) macro_rules! makro
181+ ma makro!(…) macro_rules! makro
182182 md module
183183 st Record
184184 st Tuple
185185 st Unit
186- bn Record Record { field$1 }: Record$0
187- bn Tuple Tuple($1): Tuple$0
186+ bn Record {…} Record { field$1 }: Record$0
187+ bn Tuple(…) Tuple($1): Tuple$0
188188 kw mut
189189 kw ref
190190 "# ] ] ,
@@ -195,13 +195,13 @@ fn foo(a$0: Tuple) {
195195}
196196"# ,
197197 expect ! [ [ r#"
198- ma makro!(…) macro_rules! makro
198+ ma makro!(…) macro_rules! makro
199199 md module
200200 st Record
201201 st Tuple
202202 st Unit
203- bn Record Record { field$1 }$0
204- bn Tuple Tuple($1)$0
203+ bn Record {…} Record { field$1 }$0
204+ bn Tuple(…) Tuple($1)$0
205205 kw mut
206206 kw ref
207207 "# ] ] ,
@@ -269,8 +269,8 @@ fn outer() {
269269 st Invisible
270270 st Record
271271 st Tuple
272- bn Record Record { field$1, .. }$0
273- bn Tuple Tuple($1, ..)$0
272+ bn Record {…} Record { field$1, .. }$0
273+ bn Tuple(…) Tuple($1, ..)$0
274274 kw mut
275275 kw ref
276276 "# ] ] ,
@@ -293,8 +293,8 @@ impl Foo {
293293 expect ! [ [ r#"
294294 sp Self
295295 st Foo
296- bn Foo Foo($1)$0
297- bn Self Self($1)$0
296+ bn Foo(…) Foo($1)$0
297+ bn Self(…) Self($1)$0
298298 kw mut
299299 kw ref
300300 "# ] ] ,
@@ -316,9 +316,8 @@ fn func() {
316316"# ,
317317 expect ! [ [ r#"
318318 ct ASSOC_CONST const ASSOC_CONST: ()
319- ev RecordV {…} RecordV { field: u32 }
320- ev TupleV(…) TupleV(u32)
321- ev UnitV UnitV
319+ bn RecordV {…} RecordV { field$1 }$0
320+ bn TupleV(…) TupleV($1)$0
322321 "# ] ] ,
323322 ) ;
324323}
@@ -334,8 +333,8 @@ fn outer(Foo { bar: $0 }: Foo) {}
334333 expect ! [ [ r#"
335334 st Bar
336335 st Foo
337- bn Bar Bar($1)$0
338- bn Foo Foo { bar$1 }$0
336+ bn Bar(…) Bar($1)$0
337+ bn Foo {…} Foo { bar$1 }$0
339338 kw mut
340339 kw ref
341340 "# ] ] ,
@@ -368,8 +367,8 @@ fn foo($0) {}
368367 expect ! [ [ r#"
369368 st Bar
370369 st Foo
371- bn Bar Bar($1): Bar$0
372- bn Foo Foo { bar$1 }: Foo$0
370+ bn Bar(…) Bar($1): Bar$0
371+ bn Foo {…} Foo { bar$1 }: Foo$0
373372 kw mut
374373 kw ref
375374 "# ] ] ,
@@ -389,8 +388,8 @@ fn foo() {
389388 expect ! [ [ r#"
390389 st Bar
391390 st Foo
392- bn Bar Bar($1)$0
393- bn Foo Foo { bar$1 }$0
391+ bn Bar(…) Bar($1)$0
392+ bn Foo {…} Foo { bar$1 }$0
394393 kw mut
395394 kw ref
396395 "# ] ] ,
@@ -443,7 +442,7 @@ fn foo() {
443442}
444443"# ,
445444 expect ! [ [ r#"
446- ev TupleVariant TupleVariant
445+ bn TupleVariant(…) TupleVariant($1)$0
447446 "# ] ] ,
448447 ) ;
449448 check_empty (
@@ -458,11 +457,39 @@ fn foo() {
458457}
459458"# ,
460459 expect ! [ [ r#"
461- ev RecordVariant RecordVariant
460+ bn RecordVariant {…} RecordVariant { field$1 }$0
462461 "# ] ] ,
463462 ) ;
464463}
465464
465+ #[ test]
466+ fn completes_enum_variant_pat ( ) {
467+ cov_mark:: check!( enum_variant_pattern_path) ;
468+ check_edit (
469+ "RecordVariant {…}" ,
470+ r#"
471+ enum Enum {
472+ RecordVariant { field: u32 }
473+ }
474+ fn foo() {
475+ match (Enum::RecordVariant { field: 0 }) {
476+ Enum::RecordV$0
477+ }
478+ }
479+ "# ,
480+ r#"
481+ enum Enum {
482+ RecordVariant { field: u32 }
483+ }
484+ fn foo() {
485+ match (Enum::RecordVariant { field: 0 }) {
486+ Enum::RecordVariant { field$1 }$0
487+ }
488+ }
489+ "# ,
490+ ) ;
491+ }
492+
466493#[ test]
467494fn completes_associated_const ( ) {
468495 check_empty (
0 commit comments