mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Rollup merge of #118600 - GuillaumeGomez:fields-heading, r=notriddle
[rustdoc] Don't generate the "Fields" heading if there is no field displayed Fixes https://github.com/rust-lang/rust/issues/118195. If no field is displayed, we should not generate the `Fields` heading in enum struct variants. r? ``@notriddle``
This commit is contained in:
commit
baa3f96b42
@ -1737,7 +1737,14 @@ fn item_variants(
|
||||
w.write_str("</h3></section>");
|
||||
|
||||
let heading_and_fields = match &variant_data.kind {
|
||||
clean::VariantKind::Struct(s) => Some(("Fields", &s.fields)),
|
||||
clean::VariantKind::Struct(s) => {
|
||||
// If there is no field to display, no need to add the heading.
|
||||
if s.fields.iter().any(|f| !f.is_doc_hidden()) {
|
||||
Some(("Fields", &s.fields))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
clean::VariantKind::Tuple(fields) => {
|
||||
// Documentation on tuple variant fields is rare, so to reduce noise we only emit
|
||||
// the section if at least one field is documented.
|
||||
|
18
tests/rustdoc/enum-variant-fields-heading.rs
Normal file
18
tests/rustdoc/enum-variant-fields-heading.rs
Normal file
@ -0,0 +1,18 @@
|
||||
// This is a regression test for <https://github.com/rust-lang/rust/issues/118195>.
|
||||
// It ensures that the "Fields" heading is not generated if no field is displayed.
|
||||
|
||||
#![crate_name = "foo"]
|
||||
|
||||
// @has 'foo/enum.Foo.html'
|
||||
// @has - '//*[@id="variant.A"]' 'A'
|
||||
// @count - '//*[@id="variant.A.fields"]' 0
|
||||
// @has - '//*[@id="variant.B"]' 'B'
|
||||
// @count - '//*[@id="variant.B.fields"]' 0
|
||||
// @snapshot variants - '//*[@id="main-content"]/*[@class="variants"]'
|
||||
|
||||
pub enum Foo {
|
||||
/// A variant with no fields
|
||||
A {},
|
||||
/// A variant with hidden fields
|
||||
B { #[doc(hidden)] a: u8 },
|
||||
}
|
3
tests/rustdoc/enum-variant-fields-heading.variants.html
Normal file
3
tests/rustdoc/enum-variant-fields-heading.variants.html
Normal file
@ -0,0 +1,3 @@
|
||||
<div class="variants"><section id="variant.A" class="variant"><a href="#variant.A" class="anchor">§</a><h3 class="code-header">A</h3></section><div class="docblock"><p>A variant with no fields</p>
|
||||
</div><section id="variant.B" class="variant"><a href="#variant.B" class="anchor">§</a><h3 class="code-header">B</h3></section><div class="docblock"><p>A variant with hidden fields</p>
|
||||
</div></div>
|
Loading…
Reference in New Issue
Block a user