Skip to content

Commit 3fc7338

Browse files
Merge #6143
6143: Account for proc macro helpers when parsing attr r=jonas-schievink a=jonas-schievink Fixes #6138 Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
2 parents 44587d1 + 8ab7696 commit 3fc7338

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

crates/hir_def/src/nameres/collector.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1229,9 +1229,10 @@ impl ModCollector<'_, '_> {
12291229
} else {
12301230
let derive = attrs.by_key("proc_macro_derive");
12311231
if let Some(arg) = derive.tt_values().next() {
1232-
if let [TokenTree::Leaf(Leaf::Ident(trait_name))] = &*arg.token_trees {
1232+
if let [TokenTree::Leaf(Leaf::Ident(trait_name)), ..] = &*arg.token_trees {
12331233
trait_name.as_name()
12341234
} else {
1235+
log::trace!("malformed `#[proc_macro_derive]`: {}", arg);
12351236
return;
12361237
}
12371238
} else {

crates/hir_def/src/nameres/tests/macros.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,13 +688,20 @@ fn resolves_proc_macros() {
688688
pub fn derive_macro(_item: TokenStream) -> TokenStream {
689689
TokenStream
690690
}
691+
692+
#[proc_macro_derive(AnotherTrait, attributes(helper_attr))]
693+
pub fn derive_macro_2(_item: TokenStream) -> TokenStream {
694+
TokenStream
695+
}
691696
",
692697
expect![[r#"
693698
crate
699+
AnotherTrait: m
694700
DummyTrait: m
695701
TokenStream: t v
696702
attribute_macro: v m
697703
derive_macro: v
704+
derive_macro_2: v
698705
function_like_macro: v m
699706
"#]],
700707
);

0 commit comments

Comments
 (0)