From bc261998c563162eba5985984598af544c1d341e Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Fri, 1 Mar 2024 15:20:24 +0100 Subject: [PATCH] Correctly generate item info of trait items --- src/librustdoc/html/render/mod.rs | 18 ++++++++---------- src/librustdoc/html/render/print_item.rs | 9 ++++++--- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index ac7ae291d29..fe83095f944 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -1680,7 +1680,7 @@ fn render_impl( write!( &mut doc_buffer, "{}", - document_short(item, cx, link, parent, rendering_params.show_def_docs,) + document_short(item, cx, link, parent, rendering_params.show_def_docs) ); } } @@ -2043,15 +2043,13 @@ pub(crate) fn render_impl_summary( w.write_str(""); let is_trait = inner_impl.trait_.is_some(); - if is_trait { - if let Some(portability) = portability(&i.impl_item, Some(parent)) { - write!( - w, - "\ -
{portability}
\ -
", - ); - } + if is_trait && let Some(portability) = portability(&i.impl_item, Some(parent)) { + write!( + w, + "\ +
{portability}
\ +
", + ); } w.write_str(""); diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs index 71186319e07..d588f219739 100644 --- a/src/librustdoc/html/render/print_item.rs +++ b/src/librustdoc/html/render/print_item.rs @@ -33,6 +33,7 @@ use crate::html::format::{ }; use crate::html::layout::Page; use crate::html::markdown::{HeadingOffset, MarkdownSummaryLine}; +use crate::html::render::{document_full, document_item_info}; use crate::html::url_parts_builder::UrlPartsBuilder; use crate::html::{highlight, static_files}; @@ -818,8 +819,10 @@ fn item_trait(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean: info!("Documenting {name} on {ty_name:?}", ty_name = t.name); let item_type = m.type_(); let id = cx.derive_id(format!("{item_type}.{name}")); + let mut content = Buffer::empty_from(w); - write!(&mut content, "{}", document(cx, m, Some(t), HeadingOffset::H5)); + write!(content, "{}", document_full(m, cx, HeadingOffset::H5)); + let toggled = !content.is_empty(); if toggled { let method_toggle_class = if item_type.is_method() { " method-toggle" } else { "" }; @@ -836,8 +839,8 @@ fn item_trait(w: &mut Buffer, cx: &mut Context<'_>, it: &clean::Item, t: &clean: cx, RenderMode::Normal, ); - w.write_str(""); - w.write_str(""); + w.write_str(""); + document_item_info(cx, m, Some(t)).render_into(w).unwrap(); if toggled { write!(w, ""); w.push_buffer(content);