1
Fork 0

Make #[rustc_private] override dependency visibility

Really this is always-visible override only needs to happen when the
crate is a dependency of itself. However, this is a very internal
feature, so it doesn't seem worth doing any additional filtering here.
This commit is contained in:
Trevor Gross 2025-01-13 04:59:38 +00:00
parent 4dc866c642
commit 9c34253762

View file

@ -876,6 +876,11 @@ impl<'tcx> TyCtxt<'tcx> {
/// [public]: TyCtxt::is_private_dep /// [public]: TyCtxt::is_private_dep
/// [direct]: rustc_session::cstore::ExternCrate::is_direct /// [direct]: rustc_session::cstore::ExternCrate::is_direct
pub fn is_user_visible_dep(self, key: CrateNum) -> bool { pub fn is_user_visible_dep(self, key: CrateNum) -> bool {
// `#![rustc_private]` overrides defaults to make private dependencies usable.
if self.features().enabled(sym::rustc_private) {
return true;
}
// | Private | Direct | Visible | | // | Private | Direct | Visible | |
// |---------|--------|---------|--------------------| // |---------|--------|---------|--------------------|
// | Yes | Yes | Yes | !true || true | // | Yes | Yes | Yes | !true || true |