Skip to content

Commit 57fec79

Browse files
committed
Auto merge of #118675 - petrochenkov:macreach, r=davidtwco
privacy: Simplify `update_macro_reachable` Address a FIXME in code.
2 parents 7df0c21 + 55d08f5 commit 57fec79

File tree

1 file changed

+9
-32
lines changed
  • compiler/rustc_privacy/src

1 file changed

+9
-32
lines changed

compiler/rustc_privacy/src/lib.rs

+9-32
Original file line numberDiff line numberDiff line change
@@ -531,44 +531,21 @@ impl<'tcx> EmbargoVisitor<'tcx> {
531531
macro_ev: EffectiveVisibility,
532532
) -> bool {
533533
if self.macro_reachable.insert((module_def_id, defining_mod)) {
534-
self.update_macro_reachable_mod(module_def_id, defining_mod, macro_ev);
534+
for child in self.tcx.module_children_local(module_def_id.to_local_def_id()) {
535+
if let Res::Def(def_kind, def_id) = child.res
536+
&& let Some(def_id) = def_id.as_local()
537+
&& child.vis.is_accessible_from(defining_mod, self.tcx)
538+
{
539+
let vis = self.tcx.local_visibility(def_id);
540+
self.update_macro_reachable_def(def_id, def_kind, vis, defining_mod, macro_ev);
541+
}
542+
}
535543
true
536544
} else {
537545
false
538546
}
539547
}
540548

541-
fn update_macro_reachable_mod(
542-
&mut self,
543-
module_def_id: LocalModDefId,
544-
defining_mod: LocalModDefId,
545-
macro_ev: EffectiveVisibility,
546-
) {
547-
let module = self.tcx.hir().get_module(module_def_id).0;
548-
for item_id in module.item_ids {
549-
let def_kind = self.tcx.def_kind(item_id.owner_id);
550-
let vis = self.tcx.local_visibility(item_id.owner_id.def_id);
551-
self.update_macro_reachable_def(
552-
item_id.owner_id.def_id,
553-
def_kind,
554-
vis,
555-
defining_mod,
556-
macro_ev,
557-
);
558-
}
559-
for child in self.tcx.module_children_local(module_def_id.to_local_def_id()) {
560-
// FIXME: Use module children for the logic above too.
561-
if !child.reexport_chain.is_empty()
562-
&& child.vis.is_accessible_from(defining_mod, self.tcx)
563-
&& let Res::Def(def_kind, def_id) = child.res
564-
&& let Some(def_id) = def_id.as_local()
565-
{
566-
let vis = self.tcx.local_visibility(def_id);
567-
self.update_macro_reachable_def(def_id, def_kind, vis, defining_mod, macro_ev);
568-
}
569-
}
570-
}
571-
572549
fn update_macro_reachable_def(
573550
&mut self,
574551
def_id: LocalDefId,

0 commit comments

Comments
 (0)