]> git.lizzy.rs Git - rust.git/blobdiff - src/expr.rs
Merge pull request #128 from marcusklaas/subexpr
[rust.git] / src / expr.rs
index e87020f4ae1025b3ea731c820a2afa5080112177..33a82da0f29ff4c9e8cfcfc7c535cd41cb8bd16c 100644 (file)
@@ -268,7 +268,13 @@ fn rewrite_tuple_lit(context: &RewriteContext,
                      width: usize,
                      offset: usize)
                      -> Option<String> {
+    debug!("rewrite_tuple_lit: width: {}, offset: {}", width, offset);
     let indent = offset + 1;
+    // In case of length 1, need a trailing comma
+    if items.len() == 1 {
+        // 3 = "(" + ",)"
+        return items[0].rewrite(context, width - 3, indent).map(|s| format!("({},)", s));
+    }
 
     let items = itemize_list(context.codemap,
                              Vec::new(),
@@ -278,23 +284,16 @@ fn rewrite_tuple_lit(context: &RewriteContext,
                              |item| item.span.lo,
                              |item| item.span.hi,
                              |item| item.rewrite(context,
-                                                 context.config.max_width - indent - 2,
+                                                 context.config.max_width - indent - 1,
                                                  indent)
                                         .unwrap_or(context.codemap.span_to_snippet(item.span)
                                                                   .unwrap()),
                              span.lo + BytePos(1), // Remove parens
                              span.hi - BytePos(1));
 
-    // In case of length 1, need a trailing comma
-    let trailing_separator_tactic = if items.len() == 1 {
-        SeparatorTactic::Always
-    } else {
-        SeparatorTactic::Never
-    };
-
     let fmt = ListFormatting { tactic: ListTactic::HorizontalVertical,
                                separator: ",",
-                               trailing_separator: trailing_separator_tactic,
+                               trailing_separator: SeparatorTactic::Never,
                                indent: indent,
                                h_width: width - 2,
                                v_width: width - 2,