Privacy: small cleanups
diff --git a/compiler/rustc_privacy/src/lib.rs b/compiler/rustc_privacy/src/lib.rs index de5c003..9cf0576 100644 --- a/compiler/rustc_privacy/src/lib.rs +++ b/compiler/rustc_privacy/src/lib.rs
@@ -788,8 +788,7 @@ fn enqueue_def_id(&mut self, def_id: LocalDefId) { } DefKind::AssocConst { .. } | DefKind::AssocFn | DefKind::AssocTy => { - // FIXME: `EmbargoVisitor` can't check assoc items(see `check_def_id`). - // Let's traverse the whole impl/trait. + // Traverse the whole impl/trait. self.ev.queue.insert(self.ev.tcx.local_parent(def_id)); } @@ -843,6 +842,10 @@ fn visit_def_id(&mut self, def_id: DefId, _kind: &str, _descr: &dyn fmt::Display // All effective visibilities except `reachable_through_impl_trait` are limited to // nominal visibility. If any type or trait is leaked farther than that, it will // produce type privacy errors on any use, so we don't consider it leaked. + // + // FIXME: If self.level == Level::Reachable and self.ev == (priv, priv, priv, pub), + // then the effective visibility of def_id wouldn't be updated at level + // `ReachableThroughImplTrait` due to max_vis. Could this lead to a privacy violation? let max_vis = (self.level != Level::ReachableThroughImplTrait) .then(|| self.ev.tcx.local_visibility(def_id)); if self.ev.update_eff_vis(def_id, self.effective_vis, max_vis, self.level) {
diff --git a/compiler/rustc_resolve/src/effective_visibilities.rs b/compiler/rustc_resolve/src/effective_visibilities.rs index 44f14fa..8bb0a0c 100644 --- a/compiler/rustc_resolve/src/effective_visibilities.rs +++ b/compiler/rustc_resolve/src/effective_visibilities.rs
@@ -334,11 +334,7 @@ fn update_macro_reachable_def( } } DefKind::Struct | DefKind::Union => { - self.r - .macro_reachable_adts - .entry(def_id) - .or_insert_with(Default::default) - .insert(module); + self.r.macro_reachable_adts.entry(def_id).or_default().insert(module); } _ => {} }