about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSteven Fackler <sfackler@gmail.com>2015-07-10 11:03:52 -0800
committerSteven Fackler <sfackler@gmail.com>2015-07-10 11:03:52 -0800
commitb0ab164b80f8d559cfc96e1d1d3819993672cced (patch)
tree186ea6bd9bc5eaed1413fcd224e7966b9d5fb81f
parent0bcbd169310556cfdc7b673df7992ba660ac4d3a (diff)
downloadrust-b0ab164b80f8d559cfc96e1d1d3819993672cced.tar.gz
rust-b0ab164b80f8d559cfc96e1d1d3819993672cced.zip
Add trailing , for 1-tuples
-rw-r--r--src/libcore/fmt/builders.rs6
-rw-r--r--src/libcore/fmt/mod.rs11
-rw-r--r--src/libcoretest/tuple.rs2
3 files changed, 17 insertions, 2 deletions
diff --git a/src/libcore/fmt/builders.rs b/src/libcore/fmt/builders.rs
index 32d6aa19c64..22f0215f0ad 100644
--- a/src/libcore/fmt/builders.rs
+++ b/src/libcore/fmt/builders.rs
@@ -175,6 +175,12 @@ impl<'a, 'b: 'a> DebugTuple<'a, 'b> {
     fn is_pretty(&self) -> bool {
         self.fmt.flags() & (1 << (FlagV1::Alternate as usize)) != 0
     }
+
+    /// Returns the wrapped `Formatter`.
+    #[unstable(feature = "debug_builder_formatter", reason = "recently added")]
+    pub fn formatter(&mut self) -> &mut fmt::Formatter<'b> {
+        &mut self.fmt
+    }
 }
 
 struct DebugInner<'a, 'b: 'a> {
diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs
index 2a25db101c7..29a2f76ef29 100644
--- a/src/libcore/fmt/mod.rs
+++ b/src/libcore/fmt/mod.rs
@@ -1490,7 +1490,16 @@ macro_rules! tuple {
             fn fmt(&self, f: &mut Formatter) -> Result {
                 let mut builder = f.debug_tuple("");
                 let ($(ref $name,)*) = *self;
-                $(builder.field($name);)*
+                let mut n = 0;
+                $(
+                    builder.field($name);
+                    n += 1;
+                )*
+
+                if n == 1 {
+                    try!(write!(builder.formatter(), ","));
+                }
+
                 builder.finish()
             }
         }
diff --git a/src/libcoretest/tuple.rs b/src/libcoretest/tuple.rs
index a9624b03707..4fe5e0a740b 100644
--- a/src/libcoretest/tuple.rs
+++ b/src/libcoretest/tuple.rs
@@ -60,7 +60,7 @@ fn test_tuple_cmp() {
 #[test]
 fn test_show() {
     let s = format!("{:?}", (1,));
-    assert_eq!(s, "(1)");
+    assert_eq!(s, "(1,)");
     let s = format!("{:?}", (1, true));
     assert_eq!(s, "(1, true)");
     let s = format!("{:?}", (1, "hi", true));