Open
Description
For all version I could tests (master and nightly)
this code:
pub trait MyLongTraitName:
MyLongBoundName<
MyLongAssociatedType:
SomeAnotherBound<
YetAnotherType: YetAnotherBound,
YetAnotherType2: YetAnotherBound2
>,
OtherType: SmallBound
+ SmallBound2
+ AnotherLongBound<
WithSomeType: BeingBound,
WithSomeType2: BeingBound,
WithSomeType3: BeingBound
>
+ SmallBound3
+ AnotherLongBound2<
WithSomeType: BeingBound,
WithSomeType2: BeingBound,
WithSomeType3: BeingBound
>,
>
{
}
fn main() {}
gets formatted into:
pub trait MyLongTraitName:
MyLongBoundName<
MyLongAssociatedType: SomeAnotherBound<
YetAnotherType: YetAnotherBound,
YetAnotherType2: YetAnotherBound2,
>,
OtherType: SmallBound
+ SmallBound2
+ AnotherLongBound<
WithSomeType: BeingBound,
WithSomeType2: BeingBound,
WithSomeType3: BeingBound,
> + SmallBound3
+ AnotherLongBound2<
WithSomeType: BeingBound,
WithSomeType2: BeingBound,
WithSomeType3: BeingBound,
>,
>
{
}
fn main() {}
Activity
ytmimi commentedon Sep 9, 2024
Thanks for the report. Confirming I can reproduce this the latest master rustfmt 1.7.1-nightly (1a70f40 2024-09-03)
gui1117 commentedon Sep 10, 2024
It seems those types are formatted with the overflow formatting, do you suggest to change the overflow formatting or change formatting so it doesn't go into overflow?
ytmimi commentedon Sep 10, 2024
@gui1117 have you started looking into this issue?
gui1117 commentedon Sep 10, 2024
Not really, and I would prefer not because I struggle to understand the code.
But I look a bit when I have free time.
ytmimi commentedon Sep 11, 2024
@gui1117 no worries. Based on #6316 (comment) I thought maybe you'd looked through the code.
It's quite a tricky part of the codebase. Definitely don't feel obligated to dive in.
jrose-signal commentedon Feb 14, 2025
Smaller example without any nesting, though I'm sure the nesting doesn't help: