diff options
| author | Mara Bos <m-ou.se@m-ou.se> | 2021-04-21 23:06:21 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-21 23:06:21 +0200 |
| commit | 49a5c80a3bbe96903be207ec04bb08bfd14cb9e4 (patch) | |
| tree | 9c52361f863d8a15632b50fe638ea535e7e9c2ad | |
| parent | 2cddda3af1556fcebd4471c9ddaade92b7ac0024 (diff) | |
| parent | 82dc73b1aef4a687466e00d87c5791b2a04d28f9 (diff) | |
| download | rust-49a5c80a3bbe96903be207ec04bb08bfd14cb9e4.tar.gz rust-49a5c80a3bbe96903be207ec04bb08bfd14cb9e4.zip | |
Rollup merge of #84390 - m-ou-se:make-debug-non-exhaustive-without-fields-a-little-bit-less-verbose, r=kennytm
Format `Struct { .. }` on one line even with `{:#?}`.
The result of `debug_struct("A").finish_non_exhaustive()` before this change:
```
A {
..
}
```
And after this change:
```
A { .. }
```
If there's any fields, the result stays unchanged:
```
A {
field: value,
..
}
| -rw-r--r-- | library/core/src/fmt/builders.rs | 27 | ||||
| -rw-r--r-- | library/core/tests/fmt/builders.rs | 7 |
2 files changed, 10 insertions, 24 deletions
diff --git a/library/core/src/fmt/builders.rs b/library/core/src/fmt/builders.rs index 475ebcf07d5..b660788c051 100644 --- a/library/core/src/fmt/builders.rs +++ b/library/core/src/fmt/builders.rs @@ -188,28 +188,19 @@ impl<'a, 'b: 'a> DebugStruct<'a, 'b> { #[stable(feature = "debug_non_exhaustive", since = "1.53.0")] pub fn finish_non_exhaustive(&mut self) -> fmt::Result { self.result = self.result.and_then(|_| { - // Draw non-exhaustive dots (`..`), and open brace if necessary (no fields). - if self.is_pretty() { - if !self.has_fields { - self.fmt.write_str(" {\n")?; - } - let mut slot = None; - let mut state = Default::default(); - let mut writer = PadAdapter::wrap(&mut self.fmt, &mut slot, &mut state); - writer.write_str("..\n")?; - } else { - if self.has_fields { - self.fmt.write_str(", ..")?; + if self.has_fields { + if self.is_pretty() { + let mut slot = None; + let mut state = Default::default(); + let mut writer = PadAdapter::wrap(&mut self.fmt, &mut slot, &mut state); + writer.write_str("..\n")?; + self.fmt.write_str("}") } else { - self.fmt.write_str(" { ..")?; + self.fmt.write_str(", .. }") } - } - if self.is_pretty() { - self.fmt.write_str("}")? } else { - self.fmt.write_str(" }")?; + self.fmt.write_str(" { .. }") } - Ok(()) }); self.result } diff --git a/library/core/tests/fmt/builders.rs b/library/core/tests/fmt/builders.rs index 129c121e8ce..7580010a28b 100644 --- a/library/core/tests/fmt/builders.rs +++ b/library/core/tests/fmt/builders.rs @@ -105,12 +105,7 @@ mod debug_struct { } assert_eq!("Foo { .. }", format!("{:?}", Foo)); - assert_eq!( - "Foo { - .. -}", - format!("{:#?}", Foo) - ); + assert_eq!("Foo { .. }", format!("{:#?}", Foo)); } #[test] |
