diff options
| author | Guillaume Gomez <guillaume.gomez@huawei.com> | 2023-07-11 16:31:57 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume.gomez@huawei.com> | 2023-07-14 16:45:54 +0200 |
| commit | a5e0ca962ac2dbd5973cf2a171cd6f695d28c3f1 (patch) | |
| tree | 1d23d0d57c36f4ba720f735cfd3e5f4b8a0624cf | |
| parent | bacf5bcbc7dae526872cf6af3fc0064a51b1efa2 (diff) | |
| download | rust-a5e0ca962ac2dbd5973cf2a171cd6f695d28c3f1.tar.gz rust-a5e0ca962ac2dbd5973cf2a171cd6f695d28c3f1.zip | |
Strip impl if not re-exported and is doc(hidden)
| -rw-r--r-- | src/librustdoc/passes/stripper.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/librustdoc/passes/stripper.rs b/src/librustdoc/passes/stripper.rs index 90c361d9d28..19b543c3f6b 100644 --- a/src/librustdoc/passes/stripper.rs +++ b/src/librustdoc/passes/stripper.rs @@ -6,6 +6,7 @@ use std::mem; use crate::clean::{self, Item, ItemId, ItemIdSet}; use crate::fold::{strip_item, DocFolder}; use crate::formats::cache::Cache; +use crate::visit_ast::inherits_doc_hidden; use crate::visit_lib::RustdocEffectiveVisibilities; pub(crate) struct Stripper<'a, 'tcx> { @@ -162,7 +163,12 @@ impl<'a> ImplStripper<'a, '_> { // If the "for" item is exported and the impl block isn't `#[doc(hidden)]`, then we // need to keep it. self.cache.effective_visibilities.is_exported(self.tcx, for_def_id) - && !item.is_doc_hidden() + && ((!item.is_doc_hidden() + && for_def_id + .as_local() + .map(|def_id| !inherits_doc_hidden(self.tcx, def_id, None)) + .unwrap_or(true)) + || self.cache.inlined_items.contains(&for_def_id)) } else { false } |
