trait Y // comment
{
}
+
+// #2055
+pub trait Foo:
+// A and C
+A + C
+// and B
+ + B
+{}
+
+// #2158
+trait Foo {
+ type ItRev = <MergingUntypedTimeSeries<SliceSeries<SliceWindow>> as UntypedTimeSeries>::IterRev;
+ type IteRev =
+ <MergingUntypedTimeSeries<SliceSeries<SliceWindow>> as UntypedTimeSeries>::IterRev;
+}
+
+// #2331
+trait MyTrait<
+ AAAAAAAAAAAAAAAAAAAA,
+ BBBBBBBBBBBBBBBBBBBB,
+ CCCCCCCCCCCCCCCCCCCC,
+ DDDDDDDDDDDDDDDDDDDD,
+> {
+ fn foo() {}
+}
+
+// Trait aliases
+trait FooBar = Foo + Bar;
+trait FooBar<A, B, C> = Foo + Bar;
+trait AAAAAAAAAAAAAAAAAA = BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD;
+trait AAAAAAAAAAAAAAAAAAA =
+ BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDD;
+trait AAAAAAAAAAAAAAAAAA =
+ BBBBBBBBBBBBBBBBBBB + CCCCCCCCCCCCCCCCCCCCCCCCCCCCC + DDDDDDDDDDDDDDDDDDD;
+trait AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<A, B, C, D, E> =
+ FooBar;
+trait AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA<
+ A,
+ B,
+ C,
+ D,
+ E,
+> = FooBar;
+#[rustfmt_skip]
+trait FooBar = Foo
+ + Bar;