Avatar
protocol P0 {} protocol P1 : P0 {} func f0<X: P0>(_ x: X) {} func f1(_ x: P1) { f0(x) // compile error } func f2<X: P1>(_ x: X) { f0(x) }