about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-09-19 07:06:04 -0700
committerbors <bors@rust-lang.org>2013-09-19 07:06:04 -0700
commitda29a8e6be0af399ef8b350fa4b6d124d2610bf7 (patch)
treec8b3c6c30cef5df1a9cbb9b02762fb8fb0c5b697
parent99ec14dbb0c6017106f2378bedd35ac256aa0006 (diff)
parent040f1c06bc7c1c5fa37477513227114d343b3ec3 (diff)
downloadrust-da29a8e6be0af399ef8b350fa4b6d124d2610bf7.tar.gz
rust-da29a8e6be0af399ef8b350fa4b6d124d2610bf7.zip
auto merge of #9299 : alexcrichton/rust/fmt-trailing-comma, r=huonw
This is more consistent with other parts of the language and it also makes it
easier to use in situations where format string is massive.
-rw-r--r--src/libsyntax/ext/format.rs1
-rw-r--r--src/test/run-pass/ifmt.rs4
2 files changed, 5 insertions, 0 deletions
diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs
index 9f4e55b1a92..cace4648df2 100644
--- a/src/libsyntax/ext/format.rs
+++ b/src/libsyntax/ext/format.rs
@@ -76,6 +76,7 @@ impl Context {
                 self.ecx.span_err(sp, "expected token: `,`");
                 return (extra, None);
             }
+            if *p.token == token::EOF { break } // accept trailing commas
             if named || (token::is_ident(p.token) &&
                          p.look_ahead(1, |t| *t == token::EQ)) {
                 named = true;
diff --git a/src/test/run-pass/ifmt.rs b/src/test/run-pass/ifmt.rs
index 351bad193da..6ca21c6c5a1 100644
--- a/src/test/run-pass/ifmt.rs
+++ b/src/test/run-pass/ifmt.rs
@@ -243,6 +243,10 @@ pub fn main() {
     }
 
     test_format_args();
+
+    // test that trailing commas are acceptable
+    format!("{}", "test",);
+    format!("{foo}", foo="test",);
 }
 
 // Basic test to make sure that we can invoke the `write!` macro with an