From 5704de66c271b35ffa6f22aa0b3f8f3f50f7f561 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Sun, 17 Oct 2021 23:04:38 +0200 Subject: [PATCH] Skip non clippy completions when completing a clippy path --- crates/ide_completion/src/completions/attribute/lint.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/ide_completion/src/completions/attribute/lint.rs b/crates/ide_completion/src/completions/attribute/lint.rs index 4f7930d0dd9..b7ad06d2f08 100644 --- a/crates/ide_completion/src/completions/attribute/lint.rs +++ b/crates/ide_completion/src/completions/attribute/lint.rs @@ -50,8 +50,13 @@ pub(super) fn complete_lint( if lint_already_annotated { continue; } - let insert = match qual { - Some(qual) if !ctx.previous_token_is(T![:]) => format!("{}::{}", qual, name), + let insert = match (qual, ctx.previous_token_is(T![:])) { + (Some(qual), false) => format!("{}::{}", qual, name), + // user is completing a qualified path but this completion has no qualifier + // so discard this completion + // FIXME: This is currently very hacky and will propose odd completions if + // we add more qualified (tool) completions other than clippy + (None, true) => continue, _ => name.to_owned(), }; let mut item =