// rustfmt-where_trailing_comma: true fn f(x: T, y: S) -> T where T: P, S: Q, { x } impl Trait for T where T: P, { fn f(x: T) -> T where T: Q + R, { x } } struct Pair where T: P, S: P + Q, { a: T, b: S, } struct TupPair(S, T) where T: P, S: P + Q; enum E where S: P, T: P, { A { a: T }, } type Double where T: P, T: Q = Pair; extern "C" { fn f(x: T, y: S) -> T where T: P, S: Q; } trait Q where T: P, S: R, { fn f(self, x: T, y: S, z: U) -> Self where U: P, V: P; }