Skip to content

Commit

Permalink
Don't print "private fields" on empty tuple structs
Browse files Browse the repository at this point in the history
Test for presence rather than absence

Remove redundant tests

Issues in those parts will likely be caught by other parts of the test suite.
  • Loading branch information
Kyuuhachi committed Nov 23, 2023
1 parent 1e9dda7 commit a21d771
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 5 deletions.
14 changes: 9 additions & 5 deletions src/librustdoc/html/render/print_item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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 */");
}
Expand Down Expand Up @@ -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() {
Expand Down
9 changes: 9 additions & 0 deletions tests/rustdoc/issue-118180-empty-tuple-struct.rs
Original file line number Diff line number Diff line change
@@ -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();

0 comments on commit a21d771

Please sign in to comment.