mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-27 18:57:42 +03:00
Inline macro calls in assoc item position logic
This commit is contained in:
@@ -1418,28 +1418,8 @@ pub(crate) fn brg_visit_assoc_item(&mut self, item: &'a AssocItem, ctxt: AssocCt
|
||||
|
||||
AssocItemKind::Type(box TyAlias { ident, .. }) => (ident, TypeNS),
|
||||
|
||||
AssocItemKind::MacCall(_) => {
|
||||
match ctxt {
|
||||
AssocCtxt::Trait => {
|
||||
self.visit_invoc_in_module(item.id);
|
||||
}
|
||||
AssocCtxt::Impl { .. } => {
|
||||
let invoc_id = item.id.placeholder_to_expn_id();
|
||||
if !self.r.glob_delegation_invoc_ids.contains(&invoc_id) {
|
||||
self.r
|
||||
.impl_unexpanded_invocations
|
||||
.entry(self.r.invocation_parent(invoc_id))
|
||||
.or_default()
|
||||
.insert(invoc_id);
|
||||
}
|
||||
self.visit_invoc(item.id);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
AssocItemKind::DelegationMac(..) => {
|
||||
span_bug!(item.span, "delegation mac should already have been removed")
|
||||
AssocItemKind::MacCall(_) | AssocItemKind::DelegationMac(..) => {
|
||||
span_bug!(item.span, "{item:#?} should already have been removed")
|
||||
}
|
||||
};
|
||||
let vis = self.resolve_visibility(&item.vis);
|
||||
@@ -1472,6 +1452,29 @@ pub(crate) fn brg_visit_assoc_item(&mut self, item: &'a AssocItem, ctxt: AssocCt
|
||||
visit::walk_assoc_item(self, item, ctxt);
|
||||
}
|
||||
|
||||
pub(crate) fn visit_assoc_item_mac_call(
|
||||
&mut self,
|
||||
item: &'a Item<AssocItemKind>,
|
||||
ctxt: AssocCtxt,
|
||||
) {
|
||||
match ctxt {
|
||||
AssocCtxt::Trait => {
|
||||
self.visit_invoc_in_module(item.id);
|
||||
}
|
||||
AssocCtxt::Impl { .. } => {
|
||||
let invoc_id = item.id.placeholder_to_expn_id();
|
||||
if !self.r.glob_delegation_invoc_ids.contains(&invoc_id) {
|
||||
self.r
|
||||
.impl_unexpanded_invocations
|
||||
.entry(self.r.invocation_parent(invoc_id))
|
||||
.or_default()
|
||||
.insert(invoc_id);
|
||||
}
|
||||
self.visit_invoc(item.id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn brg_visit_attribute(&mut self, attr: &'a ast::Attribute) {
|
||||
if !attr.is_doc_comment() && attr::is_builtin_attr(attr) {
|
||||
self.r
|
||||
|
||||
@@ -378,7 +378,7 @@ fn visit_assoc_item(&mut self, i: &'a AssocItem, ctxt: visit::AssocCtxt) {
|
||||
AssocItemKind::Type(box TyAlias { ident, .. }) => (*ident, DefKind::AssocTy),
|
||||
AssocItemKind::MacCall(..) => {
|
||||
self.visit_macro_invoc(i.id);
|
||||
self.brg_visit_assoc_item(i, ctxt);
|
||||
self.visit_assoc_item_mac_call(i, ctxt);
|
||||
return;
|
||||
}
|
||||
AssocItemKind::DelegationMac(..) => {
|
||||
|
||||
Reference in New Issue
Block a user