From 05fc0e6679a8819a45de3bbf35fb48be8dca14de Mon Sep 17 00:00:00 2001 From: A4-Tacks Date: Fri, 6 Feb 2026 18:29:02 +0800 Subject: [PATCH] Only offer block let fallback in match-arm --- crates/ide-completion/src/completions/postfix.rs | 7 +++---- crates/ide-completion/src/render.rs | 2 -- crates/ide-completion/src/tests/expression.rs | 14 -------------- 3 files changed, 3 insertions(+), 20 deletions(-) diff --git a/crates/ide-completion/src/completions/postfix.rs b/crates/ide-completion/src/completions/postfix.rs index 3a92903d05..067d906cd1 100644 --- a/crates/ide-completion/src/completions/postfix.rs +++ b/crates/ide-completion/src/completions/postfix.rs @@ -161,7 +161,7 @@ pub(crate) fn complete_postfix( postfix_snippet("letm", "let mut", &format!("let mut $0 = {receiver_text};")) .add_to(acc, ctx.db); } - _ => { + _ if ast::MatchArm::can_cast(second_ancestor.kind()) => { postfix_snippet( "let", "let", @@ -175,6 +175,7 @@ pub(crate) fn complete_postfix( ) .add_to(acc, ctx.db); } + _ => (), } } @@ -594,8 +595,6 @@ fn main() { sn dbgr dbg!(&expr) sn deref *expr sn if if expr {} - sn let let - sn letm let mut sn match match expr {} sn not !expr sn ref &expr @@ -811,7 +810,7 @@ fn main() { } #[test] - fn let_fallback_block() { + fn match_arm_let_block() { check( r#" fn main() { diff --git a/crates/ide-completion/src/render.rs b/crates/ide-completion/src/render.rs index 7a7b054b39..765304d818 100644 --- a/crates/ide-completion/src/render.rs +++ b/crates/ide-completion/src/render.rs @@ -3033,8 +3033,6 @@ fn main() { sn dbgr dbg!(&expr) [] sn deref *expr [] sn if if expr {} [] - sn let let [] - sn letm let mut [] sn match match expr {} [] sn ref &expr [] sn refm &mut expr [] diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs index b9b0f76c88..df39591a33 100644 --- a/crates/ide-completion/src/tests/expression.rs +++ b/crates/ide-completion/src/tests/expression.rs @@ -2341,8 +2341,6 @@ fn main() { sn dbg dbg!(expr) sn dbgr dbg!(&expr) sn deref *expr - sn let let - sn letm let mut sn match match expr {} sn ref &expr sn refm &mut expr @@ -2370,8 +2368,6 @@ fn main() { sn dbg dbg!(expr) sn dbgr dbg!(&expr) sn deref *expr - sn let let - sn letm let mut sn match match expr {} sn ref &expr sn refm &mut expr @@ -2403,8 +2399,6 @@ fn main() { sn dbg dbg!(expr) sn dbgr dbg!(&expr) sn deref *expr - sn let let - sn letm let mut sn match match expr {} sn ref &expr sn refm &mut expr @@ -2432,8 +2426,6 @@ fn main() { sn dbg dbg!(expr) sn dbgr dbg!(&expr) sn deref *expr - sn let let - sn letm let mut sn match match expr {} sn ref &expr sn refm &mut expr @@ -2461,8 +2453,6 @@ fn main() { sn dbg dbg!(expr) sn dbgr dbg!(&expr) sn deref *expr - sn let let - sn letm let mut sn match match expr {} sn ref &expr sn refm &mut expr @@ -2490,8 +2480,6 @@ fn main() { sn dbg dbg!(expr) sn dbgr dbg!(&expr) sn deref *expr - sn let let - sn letm let mut sn match match expr {} sn ref &expr sn refm &mut expr @@ -3280,8 +3268,6 @@ fn foo() { sn dbg dbg!(expr) sn dbgr dbg!(&expr) sn deref *expr - sn let let - sn letm let mut sn match match expr {} sn ref &expr sn refm &mut expr