Skip to content

Commit 832a912

Browse files
authored
Merge pull request rust-lang#3077 from YaLTeR/fix-extra-commas
Get rid of extra commas in Visual struct literal formatting
2 parents 4dc5557 + cbaed83 commit 832a912

File tree

8 files changed

+36
-22
lines changed

8 files changed

+36
-22
lines changed

Configurations.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ fn main() {
236236
```rust
237237
fn main() {
238238
let lorem = Lorem { ipsum: dolor,
239-
sit: amet, };
239+
sit: amet };
240240
}
241241
```
242242

src/expr.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1610,7 +1610,7 @@ fn rewrite_struct_lit<'a>(
16101610
nested_shape,
16111611
tactic,
16121612
context,
1613-
force_no_trailing_comma || base.is_some(),
1613+
force_no_trailing_comma || base.is_some() || !context.use_block_indent(),
16141614
);
16151615

16161616
write_list(&item_vec, &fmt)?

tests/source/issue-3066.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// rustfmt-indent_style: Visual
2+
fn main() {
3+
Struct { field: aaaaaaaaaaa };
4+
Struct { field: aaaaaaaaaaaa, };
5+
Struct { field: value,
6+
field2: value2, };
7+
}

tests/target/chains-visual.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ fn main() {
5555

5656
fn floaters() {
5757
let z = Foo { field1: val1,
58-
field2: val2, };
58+
field2: val2 };
5959

6060
let x = Foo { field1: val1,
61-
field2: val2, }.method_call()
62-
.method_call();
61+
field2: val2 }.method_call()
62+
.method_call();
6363

6464
let y = if cond { val1 } else { val2 }.method_call();
6565

@@ -89,11 +89,11 @@ fn floaters() {
8989
.quux();
9090

9191
Foo { y: i_am_multi_line,
92-
z: ok, }.baz(|| {
93-
force();
94-
multiline();
95-
})
96-
.quux();
92+
z: ok }.baz(|| {
93+
force();
94+
multiline();
95+
})
96+
.quux();
9797

9898
a + match x {
9999
true => "yay!",

tests/target/configs/indent_style/visual_struct_lit.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
fn main() {
55
let lorem = Lorem { ipsum: dolor,
6-
sit: amet, };
6+
sit: amet };
77
}

tests/target/issue-3066.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// rustfmt-indent_style: Visual
2+
fn main() {
3+
Struct { field: aaaaaaaaaaa };
4+
Struct { field: aaaaaaaaaaaa };
5+
Struct { field: value,
6+
field2: value2 };
7+
}

tests/target/struct_lits_visual.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,30 +20,30 @@ fn main() {
2020
Foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { // Comment
2121
a: foo(), /* Comment */
2222
// Comment
23-
b: bar(), /* Comment */ };
23+
b: bar() /* Comment */ };
2424

2525
Foo { a: Bar, b: f() };
2626

2727
Quux { x: if cond {
2828
bar();
2929
},
30-
y: baz(), };
30+
y: baz() };
3131

3232
Baz { x: yxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
33-
z: zzzzz, /* test */ };
33+
z: zzzzz /* test */ };
3434

3535
A { // Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit
3636
// amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante
3737
// hendrerit. Donec et mollis dolor.
3838
first: item(),
3939
// Praesent et diam eget libero egestas mattis sit amet vitae augue.
4040
// Nam tincidunt congue enim, ut porta lorem lacinia consectetur.
41-
second: Item, };
41+
second: Item };
4242

4343
Diagram { // o This graph demonstrates how
4444
// / \ significant whitespace is
4545
// o o preserved.
4646
// /|\ \
4747
// o o o o
48-
graph: G, }
48+
graph: G }
4949
}

tests/target/struct_lits_visual_multiline.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,33 +17,33 @@ fn main() {
1717
..something };
1818

1919
Fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { a: foo(),
20-
b: bar(), };
20+
b: bar() };
2121

2222
Foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo { // Comment
2323
a: foo(), /* Comment */
2424
// Comment
25-
b: bar(), /* Comment */ };
25+
b: bar() /* Comment */ };
2626

2727
Foo { a: Bar,
28-
b: foo(), };
28+
b: foo() };
2929

3030
Quux { x: if cond {
3131
bar();
3232
},
33-
y: baz(), };
33+
y: baz() };
3434

3535
A { // Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit
3636
// amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante
3737
// hendrerit. Donec et mollis dolor.
3838
first: item(),
3939
// Praesent et diam eget libero egestas mattis sit amet vitae augue.
4040
// Nam tincidunt congue enim, ut porta lorem lacinia consectetur.
41-
second: Item, };
41+
second: Item };
4242

4343
Diagram { // o This graph demonstrates how
4444
// / \ significant whitespace is
4545
// o o preserved.
4646
// /|\ \
4747
// o o o o
48-
graph: G, }
48+
graph: G }
4949
}

0 commit comments

Comments
 (0)