Avatar
あ、↓はダメだ。ジェネリック化できない。 func foo(x: Foo<SomeProtocol>) -> Foo<SomeProtocol> { ... } (edited)
1:51 AM
func foo<T: SomeProtocol>(x: Foo<T>) -> Foo<T> { ... } にしたら、 FooT について covariant じゃないから戻り値の型に互換性がなくなっちゃう。