diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs
index 1973c2a6021..745001e035e 100644
--- a/src/librustdoc/html/format.rs
+++ b/src/librustdoc/html/format.rs
@@ -1509,7 +1509,9 @@ pub(crate) fn visibility_print_with_space<'a, 'tcx: 'a>(
cx: &'a Context<'tcx>,
) -> impl Display + 'a + Captures<'tcx> {
use std::fmt::Write as _;
- let to_print: Cow<'static, str> = match item.visibility(cx.tcx()) {
+
+ let hidden: &'static str = if item.is_doc_hidden() { "#[doc(hidden)] " } else { "" };
+ let vis: Cow<'static, str> = match item.visibility(cx.tcx()) {
None => "".into(),
Some(ty::Visibility::Public) => "pub ".into(),
Some(ty::Visibility::Restricted(vis_did)) => {
@@ -1544,7 +1546,10 @@ pub(crate) fn visibility_print_with_space<'a, 'tcx: 'a>(
}
}
};
- display_fn(move |f| f.write_str(&to_print))
+ display_fn(move |f| {
+ f.write_str(&hidden)?;
+ f.write_str(&vis)
+ })
}
/// This function is the same as print_with_space, except that it renders no links.
@@ -1554,9 +1559,10 @@ pub(crate) fn visibility_to_src_with_space<'a, 'tcx: 'a>(
visibility: Option>,
tcx: TyCtxt<'tcx>,
item_did: DefId,
- _is_doc_hidden: bool,
+ is_doc_hidden: bool,
) -> impl Display + 'a + Captures<'tcx> {
- let to_print: Cow<'static, str> = match visibility {
+ let hidden: &'static str = if is_doc_hidden { "#[doc(hidden)] " } else { "" };
+ let vis: Cow<'static, str> = match visibility {
None => "".into(),
Some(ty::Visibility::Public) => "pub ".into(),
Some(ty::Visibility::Restricted(vis_did)) => {
@@ -1580,7 +1586,10 @@ pub(crate) fn visibility_to_src_with_space<'a, 'tcx: 'a>(
}
}
};
- display_fn(move |f| f.write_str(&to_print))
+ display_fn(move |f| {
+ f.write_str(&hidden)?;
+ f.write_str(&vis)
+ })
}
pub(crate) trait PrintWithSpace {