// 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; }