Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #21706 from A4-Tacks/redundant-enum-variant-pat
fix: no complete enum variant qualifier in pat
| -rw-r--r-- | crates/ide-completion/src/completions/pattern.rs | 2 | ||||
| -rw-r--r-- | crates/ide-completion/src/tests/pattern.rs | 32 | ||||
| -rw-r--r-- | crates/ide-completion/src/tests/record.rs | 6 |
3 files changed, 29 insertions, 11 deletions
diff --git a/crates/ide-completion/src/completions/pattern.rs b/crates/ide-completion/src/completions/pattern.rs index eeb2c65e48..6e9328165d 100644 --- a/crates/ide-completion/src/completions/pattern.rs +++ b/crates/ide-completion/src/completions/pattern.rs @@ -95,7 +95,7 @@ pub(crate) fn complete_pattern( if refutable || single_variant_enum(variant.parent_enum(ctx.db)) => { acc.add_variant_pat(ctx, pattern_ctx, None, variant, Some(name.clone())); - true + false } hir::ModuleDef::Adt(hir::Adt::Enum(e)) => refutable || single_variant_enum(e), hir::ModuleDef::Const(..) => refutable, diff --git a/crates/ide-completion/src/tests/pattern.rs b/crates/ide-completion/src/tests/pattern.rs index b8728028bb..0d85f2e9ad 100644 --- a/crates/ide-completion/src/tests/pattern.rs +++ b/crates/ide-completion/src/tests/pattern.rs @@ -122,7 +122,6 @@ fn foo() { st Record st Tuple st Unit - ev TupleV bn Record {…} Record { field$1 }$0 bn Tuple(…) Tuple($1)$0 bn TupleV(…) TupleV($1)$0 @@ -159,8 +158,6 @@ fn foo(foo: Foo) { match foo { Foo { x: $0 } } } expect![[r#" en Bar st Foo - ev Nil - ev Value bn Foo {…} Foo { x$1 }$0 bn Nil Nil$0 bn Value Value$0 @@ -189,7 +186,6 @@ fn foo() { st Record st Tuple st Unit - ev Variant bn Record {…} Record { field$1 }$0 bn Tuple(…) Tuple($1)$0 bn Variant Variant$0 @@ -355,6 +351,34 @@ fn func() { } #[test] +fn enum_unqualified() { + check_with_base_items( + r#" +use Enum::*; +fn func() { + if let $0 = unknown {} +} +"#, + expect![[r#" + ct CONST + en Enum + ma makro!(…) macro_rules! makro + md module + st Record + st Tuple + st Unit + bn Record {…} Record { field$1 }$0 + bn RecordV {…} RecordV { field$1 }$0 + bn Tuple(…) Tuple($1)$0 + bn TupleV(…) TupleV($1)$0 + bn UnitV UnitV$0 + kw mut + kw ref + "#]], + ); +} + +#[test] fn completes_in_record_field_pat() { check( r#" diff --git a/crates/ide-completion/src/tests/record.rs b/crates/ide-completion/src/tests/record.rs index 045b2d03b0..c1274f6640 100644 --- a/crates/ide-completion/src/tests/record.rs +++ b/crates/ide-completion/src/tests/record.rs @@ -61,8 +61,6 @@ fn foo(baz: Baz) { en Baz en Result md core - ev Err - ev Ok bn Baz::Bar Baz::Bar$0 bn Baz::Foo Baz::Foo$0 bn Err(…) Err($1)$0 @@ -89,10 +87,6 @@ fn foo(baz: Baz) { en Baz en Result md core - ev Bar - ev Err - ev Foo - ev Ok bn Bar Bar$0 bn Err(…) Err($1)$0 bn Foo Foo$0 |