-
Notifications
You must be signed in to change notification settings - Fork 14k
Description
This is a regression from stable to beta, although this issue will be P-low.
The problem is #73771 ignored documenting unstable traits for non-local types,
#76571 fixes some regressions caused by it but the regression
in nightly-rustc / compiler docs still opens.
For example: Compare https://doc.rust-lang.org/nightly/nightly-rustc/rustc_expand/base/struct.ExtCtxt.html#blanket-implementations and https://doc.rust-lang.org/1.46.0/nightly-rustc/rustc_expand/base/struct.ExtCtxt.html#blanket-implementations .
The doc in 1.46.0 has MaybeResult impl, while on nightly it doesn't have.
A way to fix this issue is ignoring this check when the compiling-crates
are being passed -Zforce-unstable-if-unmarked flag or the crate/module has rustc_private feature:
rust/src/librustdoc/clean/inline.rs
Lines 345 to 374 in c743fc4
| if let Some(stab) = tcx.lookup_stability(did) { | |
| if stab.level.is_unstable() && stab.feature == sym::rustc_private { | |
| return; | |
| } | |
| } | |
| } | |
| } | |
| let for_ = if let Some(did) = did.as_local() { | |
| let hir_id = tcx.hir().local_def_id_to_hir_id(did); | |
| match tcx.hir().expect_item(hir_id).kind { | |
| hir::ItemKind::Impl { self_ty, .. } => self_ty.clean(cx), | |
| _ => panic!("did given to build_impl was not an impl"), | |
| } | |
| } else { | |
| tcx.type_of(did).clean(cx) | |
| }; | |
| // Only inline impl if the implementing type is | |
| // reachable in rustdoc generated documentation | |
| if !did.is_local() { | |
| if let Some(did) = for_.def_id() { | |
| if !cx.renderinfo.borrow().access_levels.is_public(did) { | |
| return; | |
| } | |
| if let Some(stab) = tcx.lookup_stability(did) { | |
| if stab.level.is_unstable() && stab.feature == sym::rustc_private { | |
| return; | |
| } |
Meta
rustc --version --verbose: Version 1.48.0-nightly (9b41541 2020-09-14)