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 2152473
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/items.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1766,12 +1766,24 @@ fn rewrite_ty<R: Rewrite>(
result.push_str(&generics_str);
}

if let Some(bounds) = generic_bounds_opt {
if !bounds.is_empty() {
if let Some(bounds) = generic_bounds_opt
&& !bounds.is_empty()
{
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 2152473

Please sign in to comment.