Skip to content

Commit 337c5b5

Browse files
committed
Merge pull request #132 from cassiersg/fix-tup-lit
Fix bug in rewrite_tup_lit
2 parents 04cf309 + b93b643 commit 337c5b5

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

src/expr.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,13 @@ fn rewrite_tuple_lit(context: &RewriteContext,
239239
width: usize,
240240
offset: usize)
241241
-> Option<String> {
242+
debug!("rewrite_tuple_lit: width: {}, offset: {}", width, offset);
242243
let indent = offset + 1;
244+
// In case of length 1, need a trailing comma
245+
if items.len() == 1 {
246+
// 3 = "(" + ",)"
247+
return items[0].rewrite(context, width - 3, indent).map(|s| format!("({},)", s));
248+
}
243249

244250
let items = itemize_list(context.codemap,
245251
Vec::new(),
@@ -249,23 +255,16 @@ fn rewrite_tuple_lit(context: &RewriteContext,
249255
|item| item.span.lo,
250256
|item| item.span.hi,
251257
|item| item.rewrite(context,
252-
context.config.max_width - indent - 2,
258+
context.config.max_width - indent - 1,
253259
indent)
254260
.unwrap_or(context.codemap.span_to_snippet(item.span)
255261
.unwrap()),
256262
span.lo + BytePos(1), // Remove parens
257263
span.hi - BytePos(1));
258264

259-
// In case of length 1, need a trailing comma
260-
let trailing_separator_tactic = if items.len() == 1 {
261-
SeparatorTactic::Always
262-
} else {
263-
SeparatorTactic::Never
264-
};
265-
266265
let fmt = ListFormatting { tactic: ListTactic::HorizontalVertical,
267266
separator: ",",
268-
trailing_separator: trailing_separator_tactic,
267+
trailing_separator: SeparatorTactic::Never,
269268
indent: indent,
270269
h_width: width - 2,
271270
v_width: width - 2,

tests/target/tuple.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,17 @@ fn foo() {
1313
b, // Comment
1414
b /* Trailing comment */);
1515
}
16+
17+
fn a() {
18+
((aaaaaaaa,
19+
aaaaaaaaaaaaa,
20+
aaaaaaaaaaaaaaaaa,
21+
aaaaaaaaaaaaaa,
22+
aaaaaaaaaaaaaaaa,
23+
aaaaaaaaaaaaaa),)
24+
}
25+
26+
fn b() {
27+
((bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb),
28+
bbbbbbbbbbbbbbbbbb)
29+
}

0 commit comments

Comments
 (0)