From 83121efcd577124a992dc8bd304690b36bda2931 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 22 Dec 2020 19:00:38 +0100 Subject: Reduce some more code duplication --- crates/completion/src/completions/pattern.rs | 38 +++++++++++++++++++++------- 1 file changed, 29 insertions(+), 9 deletions(-) (limited to 'crates/completion/src/completions') diff --git a/crates/completion/src/completions/pattern.rs b/crates/completion/src/completions/pattern.rs index ba9921a44..eee31098d 100644 --- a/crates/completion/src/completions/pattern.rs +++ b/crates/completion/src/completions/pattern.rs @@ -1,7 +1,5 @@ //! Completes constats and paths in patterns. -use hir::StructKind; - use crate::{CompletionContext, Completions}; /// Completes constants and paths in patterns. @@ -22,11 +20,7 @@ pub(crate) fn complete_pattern(acc: &mut Completions, ctx: &CompletionContext) { acc.add_struct_pat(ctx, strukt.clone(), Some(name.clone())); true } - hir::ModuleDef::Variant(variant) - if !ctx.is_irrefutable_pat_binding - // render_resolution already does some pattern completion tricks for tuple variants - && variant.kind(ctx.db) == StructKind::Record => - { + hir::ModuleDef::Variant(variant) if !ctx.is_irrefutable_pat_binding => { acc.add_variant_pat(ctx, variant.clone(), Some(name.clone())); true } @@ -49,7 +43,10 @@ pub(crate) fn complete_pattern(acc: &mut Completions, ctx: &CompletionContext) { mod tests { use expect_test::{expect, Expect}; - use crate::{test_utils::completion_list, CompletionKind}; + use crate::{ + test_utils::{check_edit, completion_list}, + CompletionKind, + }; fn check(ra_fixture: &str, expect: Expect) { let actual = completion_list(ra_fixture, CompletionKind::Reference); @@ -81,7 +78,7 @@ fn foo() { en E ct Z st Bar - ev X () + ev X md m "#]], ); @@ -238,4 +235,27 @@ fn outer() { "#]], ) } + + #[test] + fn only_shows_ident_completion() { + check_edit( + "Foo", + r#" +struct Foo(i32); +fn main() { + match Foo(92) { + <|>(92) => (), + } +} +"#, + r#" +struct Foo(i32); +fn main() { + match Foo(92) { + Foo(92) => (), + } +} +"#, + ); + } } -- cgit v1.2.3