diff --git a/crates/ide_completion/src/completions/attribute.rs b/crates/ide_completion/src/completions/attribute.rs index f3b11e72dd..ab24a65216 100644 --- a/crates/ide_completion/src/completions/attribute.rs +++ b/crates/ide_completion/src/completions/attribute.rs @@ -786,13 +786,13 @@ mod tests { at target_feature = "…" at test at track_caller - kw return "#]], ); } #[test] fn complete_attribute_on_expr() { + cov_mark::check!(no_keyword_completion_in_attr_of_expr); check( r#"fn main() { #[$0] foo() }"#, expect![[r#" @@ -802,7 +802,6 @@ mod tests { at deny(…) at forbid(…) at warn(…) - kw return "#]], ); } diff --git a/crates/ide_completion/src/completions/keyword.rs b/crates/ide_completion/src/completions/keyword.rs index c99fdef05c..07541c79c9 100644 --- a/crates/ide_completion/src/completions/keyword.rs +++ b/crates/ide_completion/src/completions/keyword.rs @@ -48,6 +48,10 @@ pub(crate) fn complete_expr_keyword(acc: &mut Completions, ctx: &CompletionConte cov_mark::hit!(no_keyword_completion_in_record_lit); return; } + if ctx.attribute_under_caret.is_some() { + cov_mark::hit!(no_keyword_completion_in_attr_of_expr); + return; + } // Suggest .await syntax for types that implement Future trait if let Some(receiver) = ctx.dot_receiver() {