Skip to content

Commit

Permalink
Issue-5892: Type alias generic rewrite follows the same rule as trait
Browse files Browse the repository at this point in the history
rewrite
  • Loading branch information
johnhuichen committed Sep 1, 2024
1 parent 4489061 commit b6f5b62
Show file tree
Hide file tree
Showing 3 changed files with 83 additions and 4 deletions.
21 changes: 17 additions & 4 deletions src/items.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1768,10 +1768,23 @@ fn rewrite_ty<R: Rewrite>(

if let Some(bounds) = generic_bounds_opt {
if !bounds.is_empty() {
// 2 = `: `
let shape = Shape::indented(indent, context.config).offset_left(result.len() + 2)?;
let type_bounds = bounds.rewrite(context, shape).map(|s| format!(": {}", s))?;
result.push_str(&type_bounds);
if context.config.style_edition() <= StyleEdition::Edition2021 {
// 2 = `: `
let shape =
Shape::indented(indent, context.config).offset_left(result.len() + 2)?;
let type_bounds = bounds.rewrite(context, shape).map(|s| format!(": {}", s))?;
result.push_str(&type_bounds);
} else {
let shape = Shape::indented(indent, context.config).offset_left(result.len())?;
result = rewrite_assign_rhs_with(
context,
result.clone() + ":",
bounds,
shape,
&RhsAssignKind::Bounds,
RhsTactics::ForceNextLineWithoutIndent,
)?;
}
}
}

Expand Down
33 changes: 33 additions & 0 deletions tests/source/issue-5892.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// rustfmt-style_edition: 2024

type AAAAAAAAAAAAA:
BBBBBBBBBBBBBBB<
CCCCCCCCCCCCCCCCC,
DDDDDDDDDDDDDDDDD,
EEEEEEEEEEEEEEEEE,
FFFFFFFFFFFFFFFFF,
GGGGGGGGGGGGGGGGG,
HHHHHHHHHHHHHHHHH,
IIIIIIIIIIIIIIIII,
>;

type AAAAAAAAAAAAA:
BBBBBBBBBBBBBBB<
CCCCCCCCCCCCCCCCC,
DDDDDDDDDDDDDDDDD,
EEEEEEEEEEEEEEEEE,
FFFFFFFFFFFFFFFFF,
GGGGGGGGGGGGGGGGG,
HHHHHHHHHHHHHHHHH,
IIIIIIIIIIIIIIIII,
> + Eq
+ PartialEq;

// previous error: maximum length exceeded
type SomeType:
BBBBBBBBBBBBBBB<CCCCCCCCCCCCCCCCC, DDDDDDDDDDDDDDDDD, EEEEEEEEEEEEEEEEE, FFFFFFFFFFFFFFFFF>
+ AAAAAAAAAAAAA;

// previous error: maximum length exceeded
type SomeType:
BBBBBBBBBBBBBBB<CCCCCCCCCCCCCCCCC, DDDDDDDDDDDDDDDDD, EEEEEEEEEEEEEEEEE, FFFFFFFFFFFFFFFFF>;
33 changes: 33 additions & 0 deletions tests/target/issue-5892.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
// rustfmt-style_edition: 2024

type AAAAAAAAAAAAA:
BBBBBBBBBBBBBBB<
CCCCCCCCCCCCCCCCC,
DDDDDDDDDDDDDDDDD,
EEEEEEEEEEEEEEEEE,
FFFFFFFFFFFFFFFFF,
GGGGGGGGGGGGGGGGG,
HHHHHHHHHHHHHHHHH,
IIIIIIIIIIIIIIIII,
>;

type AAAAAAAAAAAAA:
BBBBBBBBBBBBBBB<
CCCCCCCCCCCCCCCCC,
DDDDDDDDDDDDDDDDD,
EEEEEEEEEEEEEEEEE,
FFFFFFFFFFFFFFFFF,
GGGGGGGGGGGGGGGGG,
HHHHHHHHHHHHHHHHH,
IIIIIIIIIIIIIIIII,
> + Eq
+ PartialEq;

// previous error: maximum length exceeded
type SomeType:
BBBBBBBBBBBBBBB<CCCCCCCCCCCCCCCCC, DDDDDDDDDDDDDDDDD, EEEEEEEEEEEEEEEEE, FFFFFFFFFFFFFFFFF>
+ AAAAAAAAAAAAA;

// previous error: maximum length exceeded
type SomeType:
BBBBBBBBBBBBBBB<CCCCCCCCCCCCCCCCC, DDDDDDDDDDDDDDDDD, EEEEEEEEEEEEEEEEE, FFFFFFFFFFFFFFFFF>;

0 comments on commit b6f5b62

Please sign in to comment.