Avatar
omochimetaru 6/19/2020 9:41 AM
うーん、convenience initにしても無理やりオーバライド判定されて間違ってるよって言われちゃってダメだな。
9:42 AM
先にまずrequiredとかconveienceとか取っ払ってシグネチャだけでオーバライド関係を解決してそう。
9:42 AM
その後でもろもろの指定子に基づいてチェック。
9:43 AM
type erasureならただの型なのでできると思うけど使う側がしんどいですね
9:45 AM
protocol P1 {} protocol P2: P1 {} class C1 { init<X: P1>(p: X) {} } class C2: C1 { convenience init<X: P2>(p2: X) { self.init(p: p2) } } 当然ラベルを変えればいけるけど・・・