1
1
//! Completion tests for pattern position.
2
2
use expect_test:: { expect, Expect } ;
3
3
4
- use crate :: tests:: { completion_list, BASE_ITEMS_FIXTURE } ;
4
+ use crate :: tests:: { check_edit , completion_list, BASE_ITEMS_FIXTURE } ;
5
5
6
6
fn check_empty ( ra_fixture : & str , expect : Expect ) {
7
7
let actual = completion_list ( ra_fixture) ;
@@ -127,15 +127,15 @@ fn foo() {
127
127
expect ! [ [ r#"
128
128
ct CONST
129
129
en Enum
130
- ma makro!(…) macro_rules! makro
130
+ ma makro!(…) macro_rules! makro
131
131
md module
132
132
st Record
133
133
st Tuple
134
134
st Unit
135
135
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
139
139
kw mut
140
140
kw ref
141
141
"# ] ] ,
@@ -162,8 +162,8 @@ fn foo() {
162
162
st Tuple
163
163
st Unit
164
164
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
167
167
kw mut
168
168
kw ref
169
169
"# ] ] ,
@@ -178,13 +178,13 @@ fn foo(a$0) {
178
178
}
179
179
"# ,
180
180
expect ! [ [ r#"
181
- ma makro!(…) macro_rules! makro
181
+ ma makro!(…) macro_rules! makro
182
182
md module
183
183
st Record
184
184
st Tuple
185
185
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
188
188
kw mut
189
189
kw ref
190
190
"# ] ] ,
@@ -195,13 +195,13 @@ fn foo(a$0: Tuple) {
195
195
}
196
196
"# ,
197
197
expect ! [ [ r#"
198
- ma makro!(…) macro_rules! makro
198
+ ma makro!(…) macro_rules! makro
199
199
md module
200
200
st Record
201
201
st Tuple
202
202
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
205
205
kw mut
206
206
kw ref
207
207
"# ] ] ,
@@ -269,8 +269,8 @@ fn outer() {
269
269
st Invisible
270
270
st Record
271
271
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
274
274
kw mut
275
275
kw ref
276
276
"# ] ] ,
@@ -293,8 +293,8 @@ impl Foo {
293
293
expect ! [ [ r#"
294
294
sp Self
295
295
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
298
298
kw mut
299
299
kw ref
300
300
"# ] ] ,
@@ -316,9 +316,8 @@ fn func() {
316
316
"# ,
317
317
expect ! [ [ r#"
318
318
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
322
321
"# ] ] ,
323
322
) ;
324
323
}
@@ -334,8 +333,8 @@ fn outer(Foo { bar: $0 }: Foo) {}
334
333
expect ! [ [ r#"
335
334
st Bar
336
335
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
339
338
kw mut
340
339
kw ref
341
340
"# ] ] ,
@@ -368,8 +367,8 @@ fn foo($0) {}
368
367
expect ! [ [ r#"
369
368
st Bar
370
369
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
373
372
kw mut
374
373
kw ref
375
374
"# ] ] ,
@@ -389,8 +388,8 @@ fn foo() {
389
388
expect ! [ [ r#"
390
389
st Bar
391
390
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
394
393
kw mut
395
394
kw ref
396
395
"# ] ] ,
@@ -443,7 +442,7 @@ fn foo() {
443
442
}
444
443
"# ,
445
444
expect ! [ [ r#"
446
- ev TupleVariant TupleVariant
445
+ bn TupleVariant(…) TupleVariant($1)$0
447
446
"# ] ] ,
448
447
) ;
449
448
check_empty (
@@ -458,11 +457,39 @@ fn foo() {
458
457
}
459
458
"# ,
460
459
expect ! [ [ r#"
461
- ev RecordVariant RecordVariant
460
+ bn RecordVariant {…} RecordVariant { field$1 }$0
462
461
"# ] ] ,
463
462
) ;
464
463
}
465
464
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
+
466
493
#[ test]
467
494
fn completes_associated_const ( ) {
468
495
check_empty (
0 commit comments