]> git.lizzy.rs Git - rust.git/commitdiff
Fix compiling empty fmt! strings
authorAlex Crichton <alex@alexcrichton.com>
Wed, 19 Jun 2013 06:16:44 +0000 (23:16 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Sat, 22 Jun 2013 18:19:35 +0000 (11:19 -0700)
src/libsyntax/ext/fmt.rs
src/test/run-pass/syntax-extension-fmt.rs

index 74496ac535984897c3cd5f389ecd1524ff2e75f1..4425d54987cd1874030688ecfb60ff27c9281269 100644 (file)
@@ -249,6 +249,11 @@ fn log_conv(c: &Conv) {
         }
     }
 
+    /* Short circuit an easy case up front (won't work otherwise) */
+    if pieces.len() == 0 {
+        return cx.expr_str_uniq(args[0].span, @"");
+    }
+
     let fmt_sp = args[0].span;
     let mut n = 0u;
     let nargs = args.len();
index 67573fce2cd267a8abdecaa7b0a4d9426c30fe5c..fe7b510cfe782d7a608c6c782345dfd163bbefcb 100644 (file)
@@ -58,6 +58,9 @@ fn part1() {
     test(fmt!("%x", 0xffffffff_u), ~"ffffffff");
     test(fmt!("%o", 0xffffffff_u), ~"37777777777");
     test(fmt!("%t", 0xffffffff_u), ~"11111111111111111111111111111111");
+
+    // Don't result in a compilation error
+    test(fmt!(""), ~"");
 }
 fn part2() {
     // Widths