From 73a5c1f944b4da797fb494850ea3b3a0ee955856 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Thu, 13 May 2021 23:09:24 -0700 Subject: [PATCH 1/2] Toggle-wrap items differently than top-doc. This makes sure things like trait methods get wrapped at the `

` level rather than at the `.docblock` level. Also it ensures that only the actual top documentation gets the `.top-doc` class. --- src/librustdoc/html/render/mod.rs | 6 +++++- src/librustdoc/html/render/print_item.rs | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index 5b54b32e4ddea..6de4909e95330 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -509,7 +509,11 @@ fn document(w: &mut Buffer, cx: &Context<'_>, item: &clean::Item, parent: Option info!("Documenting {}", name); } document_item_info(w, cx, item, parent); - document_full_collapsible(w, item, cx); + if parent.is_none() { + document_full_collapsible(w, item, cx); + } else { + document_full(w, item, cx); + } } /// Render md_text as markdown. diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs index 20e82cf2caf38..67cb47d6fe668 100644 --- a/src/librustdoc/html/render/print_item.rs +++ b/src/librustdoc/html/render/print_item.rs @@ -578,12 +578,13 @@ fn item_trait(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, t: &clean::Tra info!("Documenting {} on {:?}", name, t.name); let item_type = m.type_(); let id = cx.derive_id(format!("{}.{}", item_type, name)); + write!(w, "
"); write!(w, "

", id = id,); render_assoc_item(w, m, AssocItemLink::Anchor(Some(&id)), ItemType::Impl, cx); w.write_str(""); render_stability_since(w, m, t, cx.tcx()); write_srclink(cx, m, w); - w.write_str("

"); + w.write_str("

"); document(w, cx, m, Some(t)); } From 6696a60f0f04e1b7e78927f5747c1080f5189370 Mon Sep 17 00:00:00 2001 From: Jacob Hoffman-Andrews Date: Sun, 16 May 2021 12:50:15 -0700 Subject: [PATCH 2/2] Add test for trait toggle location --- src/test/rustdoc/toggle-trait-fn.rs | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/test/rustdoc/toggle-trait-fn.rs diff --git a/src/test/rustdoc/toggle-trait-fn.rs b/src/test/rustdoc/toggle-trait-fn.rs new file mode 100644 index 0000000000000..a160809cbf957 --- /dev/null +++ b/src/test/rustdoc/toggle-trait-fn.rs @@ -0,0 +1,7 @@ +#![crate_name = "foo"] + +// @has foo/trait.Foo.html +// @has - '//details[@class="rustdoc-toggle"]//code' 'bar' +pub trait Foo { + fn bar() -> (); +}