diff options
| author | bors <bors@rust-lang.org> | 2023-11-23 17:41:46 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-11-23 17:41:46 +0000 |
| commit | a4a5c976fee30bdd350aa0df10b14cb87ade48fe (patch) | |
| tree | 1fc4f921ac36ee17cbd7cb15537e89efbc234106 | |
| parent | 237339fda17395d3e35f3028a0e0aa8278c3a4bf (diff) | |
| parent | a21d7713db7c19d126cc4dd38abd56ed73bdb729 (diff) | |
| download | rust-a4a5c976fee30bdd350aa0df10b14cb87ade48fe.tar.gz rust-a4a5c976fee30bdd350aa0df10b14cb87ade48fe.zip | |
Auto merge of #118192 - Kyuuhachi:issue-118180, r=fmease
Don't print "private fields" on empty tuple structs Closes #118180. While working on this I also noticed that empty struct variants are also rendered rather awkwardly. I'll make another issue for that, since I don't know what the correct rendering would be.
| -rw-r--r-- | src/librustdoc/html/render/print_item.rs | 14 | ||||
| -rw-r--r-- | tests/rustdoc/issue-118180-empty-tuple-struct.rs | 9 |
2 files changed, 18 insertions, 5 deletions
diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs index 8fdbef65135..927bec4251e 100644 --- a/src/librustdoc/html/render/print_item.rs +++ b/src/librustdoc/html/render/print_item.rs @@ -1501,8 +1501,10 @@ fn print_tuple_struct_fields<'a, 'cx: 'a>( s: &'a [clean::Item], ) -> impl fmt::Display + 'a + Captures<'cx> { display_fn(|f| { - if s.iter() - .all(|field| matches!(*field.kind, clean::StrippedItem(box clean::StructFieldItem(..)))) + if !s.is_empty() + && s.iter().all(|field| { + matches!(*field.kind, clean::StrippedItem(box clean::StructFieldItem(..))) + }) { return f.write_str("/* private fields */"); } @@ -2275,9 +2277,11 @@ fn render_struct_fields( } Some(CtorKind::Fn) => { w.write_str("("); - if fields.iter().all(|field| { - matches!(*field.kind, clean::StrippedItem(box clean::StructFieldItem(..))) - }) { + if !fields.is_empty() + && fields.iter().all(|field| { + matches!(*field.kind, clean::StrippedItem(box clean::StructFieldItem(..))) + }) + { write!(w, "/* private fields */"); } else { for (i, field) in fields.iter().enumerate() { diff --git a/tests/rustdoc/issue-118180-empty-tuple-struct.rs b/tests/rustdoc/issue-118180-empty-tuple-struct.rs new file mode 100644 index 00000000000..bc6ddbe5def --- /dev/null +++ b/tests/rustdoc/issue-118180-empty-tuple-struct.rs @@ -0,0 +1,9 @@ +// @has issue_118180_empty_tuple_struct/enum.Enum.html +pub enum Enum { + // @has - '//*[@id="variant.Empty"]//h3' 'Empty()' + Empty(), +} + +// @has issue_118180_empty_tuple_struct/struct.Empty.html +// @has - '//pre/code' 'Empty()' +pub struct Empty(); |
