Skip to content

compiler-docs: Missing trait impls for type #76736

Closed
@tesuji

Description

@tesuji

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:

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-docsArea: Documentation for any part of the project, including the compiler, standard library, and toolsC-bugCategory: This is a bug.E-easyCall for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue.E-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.P-lowLow priorityT-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions