Skip to content

Commit 4ba8d22

Browse files
committed
Issue-5892: Type alias generic ident should be 4 spaces instead of 8
1 parent 4489061 commit 4ba8d22

File tree

5 files changed

+93
-5
lines changed

5 files changed

+93
-5
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,6 @@ tests/cargo-fmt/**/target
2323
.idea/
2424
.vscode/
2525
*~
26+
27+
# nvim local dap settings
28+
.nvim-dap.lua

src/items.rs

+21-4
Original file line numberDiff line numberDiff line change
@@ -1768,10 +1768,27 @@ fn rewrite_ty<R: Rewrite>(
17681768

17691769
if let Some(bounds) = generic_bounds_opt {
17701770
if !bounds.is_empty() {
1771-
// 2 = `: `
1772-
let shape = Shape::indented(indent, context.config).offset_left(result.len() + 2)?;
1773-
let type_bounds = bounds.rewrite(context, shape).map(|s| format!(": {}", s))?;
1774-
result.push_str(&type_bounds);
1771+
match context.config.style_edition() {
1772+
style_edition if style_edition <= StyleEdition::Edition2021 => {
1773+
// 2 = `: `
1774+
let shape =
1775+
Shape::indented(indent, context.config).offset_left(result.len() + 2)?;
1776+
let type_bounds = bounds.rewrite(context, shape).map(|s| format!(": {}", s))?;
1777+
result.push_str(&type_bounds);
1778+
}
1779+
_ => {
1780+
let shape =
1781+
Shape::indented(indent, context.config).offset_left(result.len())?;
1782+
result = rewrite_assign_rhs_with(
1783+
context,
1784+
result.clone() + ":",
1785+
bounds,
1786+
shape,
1787+
&RhsAssignKind::Bounds,
1788+
RhsTactics::ForceNextLineWithoutIndent,
1789+
)?;
1790+
}
1791+
}
17751792
}
17761793
}
17771794

src/types.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1211,7 +1211,7 @@ fn join_bounds_inner(
12111211
// or the single item is of type `Trait`,
12121212
// and any of the internal arrays contains more than one item;
12131213
let retry_with_force_newline = match context.config.style_edition() {
1214-
style_edition @ _ if style_edition <= StyleEdition::Edition2021 => {
1214+
style_edition if style_edition <= StyleEdition::Edition2021 => {
12151215
!force_newline
12161216
&& items.len() > 1
12171217
&& (result.0.contains('\n') || result.0.len() > shape.width)

tests/source/issue-5892.rs

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
// rustfmt-style_edition: 2024
2+
3+
type AAAAAAAAAAAAA: BBBBBBBBBBBBBBB<
4+
CCCCCCCCCCCCCCCCC,
5+
DDDDDDDDDDDDDDDDD,
6+
EEEEEEEEEEEEEEEEE,
7+
FFFFFFFFFFFFFFFFF,
8+
GGGGGGGGGGGGGGGGG,
9+
HHHHHHHHHHHHHHHHH,
10+
IIIIIIIIIIIIIIIII,
11+
>;
12+
13+
type AAAAAAAAAAAAA: BBBBBBBBBBBBBBB<
14+
CCCCCCCCCCCCCCCCC,
15+
DDDDDDDDDDDDDDDDD,
16+
EEEEEEEEEEEEEEEEE,
17+
FFFFFFFFFFFFFFFFF,
18+
GGGGGGGGGGGGGGGGG,
19+
HHHHHHHHHHHHHHHHH,
20+
IIIIIIIIIIIIIIIII,
21+
> + Eq + PartialEq;
22+
23+
// previous error: maximum length exceeded
24+
type SomeType: BBBBBBBBBBBBBBB<
25+
CCCCCCCCCCCCCCCCC,
26+
DDDDDDDDDDDDDDDDD,
27+
EEEEEEEEEEEEEEEEE,
28+
FFFFFFFFFFFFFFFFF> + AAAAAAAAAAAAA;
29+
30+
// previous error: maximum length exceeded
31+
type SomeType: BBBBBBBBBBBBBBB<
32+
CCCCCCCCCCCCCCCCC,
33+
DDDDDDDDDDDDDDDDD,
34+
EEEEEEEEEEEEEEEEE,
35+
FFFFFFFFFFFFFFFFF>;

tests/target/issue-5892.rs

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// rustfmt-style_edition: 2024
2+
3+
type AAAAAAAAAAAAA:
4+
BBBBBBBBBBBBBBB<
5+
CCCCCCCCCCCCCCCCC,
6+
DDDDDDDDDDDDDDDDD,
7+
EEEEEEEEEEEEEEEEE,
8+
FFFFFFFFFFFFFFFFF,
9+
GGGGGGGGGGGGGGGGG,
10+
HHHHHHHHHHHHHHHHH,
11+
IIIIIIIIIIIIIIIII,
12+
>;
13+
14+
type AAAAAAAAAAAAA:
15+
BBBBBBBBBBBBBBB<
16+
CCCCCCCCCCCCCCCCC,
17+
DDDDDDDDDDDDDDDDD,
18+
EEEEEEEEEEEEEEEEE,
19+
FFFFFFFFFFFFFFFFF,
20+
GGGGGGGGGGGGGGGGG,
21+
HHHHHHHHHHHHHHHHH,
22+
IIIIIIIIIIIIIIIII,
23+
> + Eq
24+
+ PartialEq;
25+
26+
// previous error: maximum length exceeded
27+
type SomeType:
28+
BBBBBBBBBBBBBBB<CCCCCCCCCCCCCCCCC, DDDDDDDDDDDDDDDDD, EEEEEEEEEEEEEEEEE, FFFFFFFFFFFFFFFFF>
29+
+ AAAAAAAAAAAAA;
30+
31+
// previous error: maximum length exceeded
32+
type SomeType:
33+
BBBBBBBBBBBBBBB<CCCCCCCCCCCCCCCCC, DDDDDDDDDDDDDDDDD, EEEEEEEEEEEEEEEEE, FFFFFFFFFFFFFFFFF>;

0 commit comments

Comments
 (0)