diff options
author | Guillaume Gomez <guillaume.gomez@huawei.com> | 2023-06-01 18:29:18 +0200 |
---|---|---|
committer | Guillaume Gomez <guillaume.gomez@huawei.com> | 2023-06-01 18:29:18 +0200 |
commit | 96892a52edc4ae063a1cd2ab5b92be1df2fc65ea (patch) | |
tree | acab3bc7d5f5523b35135efa2c5ba4875aa15991 /src | |
parent | fabf9298633ca64450fa2af535252dc44a3b1080 (diff) |
Fix bug where private item with intermediate doc hidden re-export was not inlined
Diffstat (limited to 'src')
-rw-r--r-- | src/librustdoc/clean/mod.rs | 3 | ||||
-rw-r--r-- | src/librustdoc/visit_ast.rs | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 5fd867189fd..60da1d65774 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -2180,7 +2180,8 @@ fn get_all_import_attributes<'hir>( // This is the "original" reexport so we get all its attributes without filtering them. attrs = import_attrs.iter().map(|attr| (Cow::Borrowed(attr), Some(def_id))).collect(); first = false; - } else { + // We don't add attributes of an intermediate re-export if it has `#[doc(hidden)]`. + } else if !cx.tcx.is_doc_hidden(def_id) { add_without_unwanted_attributes(&mut attrs, import_attrs, is_inline, Some(def_id)); } } diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index abb9229fbd5..1689445b9ef 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -246,7 +246,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { glob: bool, please_inline: bool, ) -> bool { - debug!("maybe_inline_local res: {:?}", res); + debug!("maybe_inline_local (renamed: {renamed:?}) res: {res:?}"); if renamed == Some(kw::Underscore) { // We never inline `_` reexports. @@ -308,6 +308,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { .cache .effective_visibilities .is_directly_public(tcx, item_def_id.to_def_id()) && + !tcx.is_doc_hidden(item_def_id) && !inherits_doc_hidden(tcx, item_def_id, None) { // The imported item is public and not `doc(hidden)` so no need to inline it. |