From bf59c35d3a35f2f4247f0af63a4b90cc74481ebc Mon Sep 17 00:00:00 2001 From: A4-Tacks Date: Thu, 30 Oct 2025 12:52:59 +0800 Subject: [PATCH] Fix duplicate `const` complete after `raw` Example --- ```rust fn main() { let _ = &raw $0 } ``` **Before this PR** ```text fn main() fn() bt u32 u32 kw const kw const kw crate:: ... ``` **After this PR** ```text fn main() fn() bt u32 u32 kw const kw crate:: ... ``` --- crates/ide-completion/src/completions/expr.rs | 4 +++- crates/ide-completion/src/tests/expression.rs | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/ide-completion/src/completions/expr.rs b/crates/ide-completion/src/completions/expr.rs index 5cae7bd89fff..4cc99f14afae 100644 --- a/crates/ide-completion/src/completions/expr.rs +++ b/crates/ide-completion/src/completions/expr.rs @@ -355,7 +355,9 @@ pub(crate) fn complete_expr_path( if !in_block_expr { add_keyword("unsafe", "unsafe {\n $0\n}"); - add_keyword("const", "const {\n $0\n}"); + if !wants_const_token { + add_keyword("const", "const {\n $0\n}"); + } } add_keyword("match", "match $1 {\n $0\n}"); add_keyword("while", "while $1 {\n $0\n}"); diff --git a/crates/ide-completion/src/tests/expression.rs b/crates/ide-completion/src/tests/expression.rs index 4033aa5d9c5e..c2605963ca95 100644 --- a/crates/ide-completion/src/tests/expression.rs +++ b/crates/ide-completion/src/tests/expression.rs @@ -628,7 +628,6 @@ fn completes_after_ref_expr() { fn main() fn() bt u32 u32 kw const - kw const kw crate:: kw false kw for