PartialKeyPath<T>
と、そのサブクラスである KeyPath<T, U>
や WritableKeyPath<T, U>
でオーバーロードして、 T
に Self
とか入れたときに後者が勝つ方法がなさそう。U
を Any
にしてしまえば勝てるだろうけど・・・。 (edited)Any
にしても variance がうまく働かない?let a: KeyPath<[Int], Int> = \[Int].count let b: KeyPath<[Int], Any> = a