protocol P {} protocol Q {} extension Int: P {} class C1 { init<T: P>(_ x: T) {} } class C2: C1 { init<T: Q>(_ x: T) { super.init(42) } }
class C1 { init(_ x: Int) {} } class C2: C1 { init(_ x: String) { super.init(42) } }