From c81fcaca1c4f2e9b39fc8bc3d03a3f19b475d366 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Fri, 8 Aug 2025 21:36:17 -0700 Subject: [PATCH] Only suggest changing `#[derive(mymacro)]` to `#[mymacro]` for attribute macros --- compiler/rustc_resolve/src/macros.rs | 1 + tests/ui/proc-macro/macro-namespace-reserved-2.stderr | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/compiler/rustc_resolve/src/macros.rs b/compiler/rustc_resolve/src/macros.rs index f3617cf1eb32..9f25635f1fd1 100644 --- a/compiler/rustc_resolve/src/macros.rs +++ b/compiler/rustc_resolve/src/macros.rs @@ -659,6 +659,7 @@ impl<'ra, 'tcx> Resolver<'ra, 'tcx> { if !path.span.from_expansion() && kind == MacroKind::Derive && !ext.macro_kinds().contains(MacroKinds::DERIVE) + && ext.macro_kinds().contains(MacroKinds::ATTR) { err.remove_surrounding_derive = Some(RemoveSurroundingDerive { span: path.span }); err.add_as_non_derive = Some(AddAsNonDerive { macro_path: &path_str }); diff --git a/tests/ui/proc-macro/macro-namespace-reserved-2.stderr b/tests/ui/proc-macro/macro-namespace-reserved-2.stderr index 0471124061ef..c8a7cc3ba913 100644 --- a/tests/ui/proc-macro/macro-namespace-reserved-2.stderr +++ b/tests/ui/proc-macro/macro-namespace-reserved-2.stderr @@ -95,14 +95,6 @@ error: expected derive macro, found macro `crate::my_macro` | LL | #[derive(crate::my_macro)] | ^^^^^^^^^^^^^^^ not a derive macro - | -help: remove from the surrounding `derive()` - --> $DIR/macro-namespace-reserved-2.rs:50:10 - | -LL | #[derive(crate::my_macro)] - | ^^^^^^^^^^^^^^^ - = help: add as non-Derive macro - `#[crate::my_macro]` error: cannot find macro `my_macro_attr` in this scope --> $DIR/macro-namespace-reserved-2.rs:28:5