From 9a320bcf3870416c9b01ccf6bcedb73fdfdd93db Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Thu, 9 Sep 2021 21:32:41 +0200 Subject: [PATCH] Support the new `rustc_builtin_macro` syntax --- crates/hir_def/src/nameres/collector.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/hir_def/src/nameres/collector.rs b/crates/hir_def/src/nameres/collector.rs index 165cdcba00c..24083172b30 100644 --- a/crates/hir_def/src/nameres/collector.rs +++ b/crates/hir_def/src/nameres/collector.rs @@ -1812,7 +1812,20 @@ impl ModCollector<'_, '_> { name = tt::Ident { text: it.clone(), id: tt::TokenId::unspecified() }.as_name(); &name } - None => &mac.name, + None => { + match attrs.by_key("rustc_builtin_macro").tt_values().next().and_then(|tt| { + match tt.token_trees.first() { + Some(tt::TokenTree::Leaf(tt::Leaf::Ident(name))) => Some(name), + _ => None, + } + }) { + Some(ident) => { + name = ident.as_name(); + &name + } + None => &mac.name, + } + } }; let krate = self.def_collector.def_map.krate; match find_builtin_macro(name, krate, ast_id) {