Include trailing comma in multiline Debug representation · rust-lang/rust@cfd31fb (original) (raw)

`@@ -11,7 +11,7 @@ impl<'a> PadAdapter<'a> {

`

11

11

` fmt.wrap_buf(move |buf| {

`

12

12

`*slot = Some(PadAdapter {

`

13

13

` buf,

`

14

``

`-

on_newline: false,

`

``

14

`+

on_newline: true,

`

15

15

`});

`

16

16

` slot.as_mut().unwrap()

`

17

17

`})

`

`@@ -128,22 +128,21 @@ impl<'a, 'b: 'a> DebugStruct<'a, 'b> {

`

128

128

`#[stable(feature = "debug_builders", since = "1.2.0")]

`

129

129

`pub fn field(&mut self, name: &str, value: &dyn fmt::Debug) -> &mut DebugStruct<'a, 'b> {

`

130

130

`self.result = self.result.and_then(|_| {

`

131

``

`-

let prefix = if self.has_fields {

`

132

``

`-

","

`

133

``

`-

} else {

`

134

``

`-

" {"

`

135

``

`-

};

`

136

``

-

137

131

`if self.is_pretty() {

`

``

132

`+

if !self.has_fields {

`

``

133

`+

self.fmt.write_str(" {\n")?;

`

``

134

`+

}

`

138

135

`let mut slot = None;

`

139

136

`let mut writer = PadAdapter::wrap(&mut self.fmt, &mut slot);

`

140

``

`-

writer.write_str(prefix)?;

`

141

``

`-

writer.write_str("\n")?;

`

142

137

` writer.write_str(name)?;

`

143

138

` writer.write_str(": ")?;

`

144

``

`-

value.fmt(&mut writer)

`

``

139

`+

value.fmt(&mut writer)?;

`

``

140

`+

writer.write_str(",\n")

`

145

141

`} else {

`

146

``

`-

write!(self.fmt, "{} {}: ", prefix, name)?;

`

``

142

`+

let prefix = if self.has_fields { ", " } else { " { " };

`

``

143

`+

self.fmt.write_str(prefix)?;

`

``

144

`+

self.fmt.write_str(name)?;

`

``

145

`+

self.fmt.write_str(": ")?;

`

147

146

` value.fmt(self.fmt)

`

148

147

`}

`

149

148

`});

`

`@@ -184,7 +183,7 @@ impl<'a, 'b: 'a> DebugStruct<'a, 'b> {

`

184

183

`if self.has_fields {

`

185

184

`self.result = self.result.and_then(|_| {

`

186

185

`if self.is_pretty() {

`

187

``

`-

self.fmt.write_str("\n}")

`

``

186

`+

self.fmt.write_str("}")

`

188

187

`} else {

`

189

188

`self.fmt.write_str(" }")

`

190

189

`}

`

`@@ -275,21 +274,17 @@ impl<'a, 'b: 'a> DebugTuple<'a, 'b> {

`

275

274

`#[stable(feature = "debug_builders", since = "1.2.0")]

`

276

275

`pub fn field(&mut self, value: &dyn fmt::Debug) -> &mut DebugTuple<'a, 'b> {

`

277

276

`self.result = self.result.and_then(|_| {

`

278

``

`-

let (prefix, space) = if self.fields > 0 {

`

279

``

`-

(",", " ")

`

280

``

`-

} else {

`

281

``

`-

("(", "")

`

282

``

`-

};

`

283

``

-

284

277

`if self.is_pretty() {

`

``

278

`+

if self.fields == 0 {

`

``

279

`+

self.fmt.write_str("(\n")?;

`

``

280

`+

}

`

285

281

`let mut slot = None;

`

286

282

`let mut writer = PadAdapter::wrap(&mut self.fmt, &mut slot);

`

287

``

`-

writer.write_str(prefix)?;

`

288

``

`-

writer.write_str("\n")?;

`

289

``

`-

value.fmt(&mut writer)

`

``

283

`+

value.fmt(&mut writer)?;

`

``

284

`+

writer.write_str(",\n")

`

290

285

`} else {

`

``

286

`+

let prefix = if self.fields == 0 { "(" } else { ", " };

`

291

287

`self.fmt.write_str(prefix)?;

`

292

``

`-

self.fmt.write_str(space)?;

`

293

288

` value.fmt(self.fmt)

`

294

289

`}

`

295

290

`});

`

`@@ -326,10 +321,7 @@ impl<'a, 'b: 'a> DebugTuple<'a, 'b> {

`

326

321

`pub fn finish(&mut self) -> fmt::Result {

`

327

322

`if self.fields > 0 {

`

328

323

`self.result = self.result.and_then(|_| {

`

329

``

`-

if self.is_pretty() {

`

330

``

`-

self.fmt.write_str("\n")?;

`

331

``

`-

}

`

332

``

`-

if self.fields == 1 && self.empty_name {

`

``

324

`+

if self.fields == 1 && self.empty_name && !self.is_pretty() {

`

333

325

`self.fmt.write_str(",")?;

`

334

326

`}

`

335

327

`self.fmt.write_str(")")

`

`@@ -353,14 +345,13 @@ impl<'a, 'b: 'a> DebugInner<'a, 'b> {

`

353

345

`fn entry(&mut self, entry: &dyn fmt::Debug) {

`

354

346

`self.result = self.result.and_then(|_| {

`

355

347

`if self.is_pretty() {

`

``

348

`+

if !self.has_fields {

`

``

349

`+

self.fmt.write_str("\n")?;

`

``

350

`+

}

`

356

351

`let mut slot = None;

`

357

352

`let mut writer = PadAdapter::wrap(&mut self.fmt, &mut slot);

`

358

``

`-

writer.write_str(if self.has_fields {

`

359

``

`-

",\n"

`

360

``

`-

} else {

`

361

``

`-

"\n"

`

362

``

`-

})?;

`

363

``

`-

entry.fmt(&mut writer)

`

``

353

`+

entry.fmt(&mut writer)?;

`

``

354

`+

writer.write_str(",\n")

`

364

355

`} else {

`

365

356

`if self.has_fields {

`

366

357

`self.fmt.write_str(", ")?

`

`@@ -372,15 +363,6 @@ impl<'a, 'b: 'a> DebugInner<'a, 'b> {

`

372

363

`self.has_fields = true;

`

373

364

`}

`

374

365

``

375

``

`-

pub fn finish(&mut self) {

`

376

``

`-

let prefix = if self.is_pretty() && self.has_fields {

`

377

``

`-

"\n"

`

378

``

`-

} else {

`

379

``

`-

""

`

380

``

`-

};

`

381

``

`-

self.result = self.result.and_then(|_| self.fmt.write_str(prefix));

`

382

``

`-

}

`

383

``

-

384

366

`fn is_pretty(&self) -> bool {

`

385

367

`self.fmt.alternate()

`

386

368

`}

`

`@@ -421,7 +403,7 @@ pub struct DebugSet<'a, 'b: 'a> {

`

421

403

`}

`

422

404

``

423

405

`pub fn debug_set_new<'a, 'b>(fmt: &'a mut fmt::Formatter<'b>) -> DebugSet<'a, 'b> {

`

424

``

`-

let result = write!(fmt, "{{");

`

``

406

`+

let result = fmt.write_str("{");

`

425

407

`DebugSet {

`

426

408

`inner: DebugInner {

`

427

409

` fmt,

`

`@@ -519,7 +501,6 @@ impl<'a, 'b: 'a> DebugSet<'a, 'b> {

`

519

501

```` /// ```


`520`

`502`

`#[stable(feature = "debug_builders", since = "1.2.0")]

`

`521`

`503`

`pub fn finish(&mut self) -> fmt::Result {

`

`522`

``

`-

self.inner.finish();

`

`523`

`504`

`self.inner.result.and_then(|_| self.inner.fmt.write_str("}"))

`

`524`

`505`

`}

`

`525`

`506`

`}

`

`@@ -559,7 +540,7 @@ pub struct DebugList<'a, 'b: 'a> {

`

`559`

`540`

`}

`

`560`

`541`

``

`561`

`542`

`pub fn debug_list_new<'a, 'b>(fmt: &'a mut fmt::Formatter<'b>) -> DebugList<'a, 'b> {

`

`562`

``

`-

let result = write!(fmt, "[");

`

``

`543`

`+

let result = fmt.write_str("[");

`

`563`

`544`

`DebugList {

`

`564`

`545`

`inner: DebugInner {

`

`565`

`546`

` fmt,

`

`@@ -657,7 +638,6 @@ impl<'a, 'b: 'a> DebugList<'a, 'b> {

`

`657`

`638`

```` /// ```

658

639

`#[stable(feature = "debug_builders", since = "1.2.0")]

`

659

640

`pub fn finish(&mut self) -> fmt::Result {

`

660

``

`-

self.inner.finish();

`

661

641

`self.inner.result.and_then(|_| self.inner.fmt.write_str("]"))

`

662

642

`}

`

663

643

`}

`

`@@ -699,7 +679,7 @@ pub struct DebugMap<'a, 'b: 'a> {

`

699

679

`}

`

700

680

``

701

681

`pub fn debug_map_new<'a, 'b>(fmt: &'a mut fmt::Formatter<'b>) -> DebugMap<'a, 'b> {

`

702

``

`-

let result = write!(fmt, "{{");

`

``

682

`+

let result = fmt.write_str("{");

`

703

683

`DebugMap {

`

704

684

` fmt,

`

705

685

` result,

`

`@@ -734,16 +714,15 @@ impl<'a, 'b: 'a> DebugMap<'a, 'b> {

`

734

714

`pub fn entry(&mut self, key: &dyn fmt::Debug, value: &dyn fmt::Debug) -> &mut DebugMap<'a, 'b> {

`

735

715

`self.result = self.result.and_then(|_| {

`

736

716

`if self.is_pretty() {

`

``

717

`+

if !self.has_fields {

`

``

718

`+

self.fmt.write_str("\n")?;

`

``

719

`+

}

`

737

720

`let mut slot = None;

`

738

721

`let mut writer = PadAdapter::wrap(&mut self.fmt, &mut slot);

`

739

``

`-

writer.write_str(if self.has_fields {

`

740

``

`-

",\n"

`

741

``

`-

} else {

`

742

``

`-

"\n"

`

743

``

`-

})?;

`

744

722

` key.fmt(&mut writer)?;

`

745

723

` writer.write_str(": ")?;

`

746

``

`-

value.fmt(&mut writer)

`

``

724

`+

value.fmt(&mut writer)?;

`

``

725

`+

writer.write_str(",\n")

`

747

726

`} else {

`

748

727

`if self.has_fields {

`

749

728

`self.fmt.write_str(", ")?

`

`@@ -818,12 +797,7 @@ impl<'a, 'b: 'a> DebugMap<'a, 'b> {

`

818

797

```` /// ```

````

819

798

`#[stable(feature = "debug_builders", since = "1.2.0")]

`

820

799

`pub fn finish(&mut self) -> fmt::Result {

`

821

``

`-

let prefix = if self.is_pretty() && self.has_fields {

`

822

``

`-

"\n"

`

823

``

`-

} else {

`

824

``

`-

""

`

825

``

`-

};

`

826

``

`-

self.result.and_then(|_| write!(self.fmt, "{}}}", prefix))

`

``

800

`+

self.result.and_then(|_| self.fmt.write_str("}"))

`

827

801

`}

`

828

802

``

829

803

`fn is_pretty(&self) -> bool {

`