Avatar
omochimetaru 6/12/2018 6:29 AM
単純に考えて
6:30 AM
本来はビルド時にdefault実装を参照するから必要無いわけで
6:30 AM
てことは、外部モジュールをあとからビルドしたときに
6:30 AM
その外部モジュールが、利用するライブラリのソースが見えないとき?に
6:30 AM
必要になる要素だよね
6:31 AM
あとはバージョン差分か
6:31 AM
リザイレンスって言ってるしモジュール跨ぎの定義変更とかバージョンズレが関係ありそうだけどややこしいな・・・
6:32 AM
ModuleM.protocolP と ModuleO.classA があるときに、 AがPをconformしていて、ただそこでそのときにMで定義されたデフォルト実装を使用しているとき
6:33 AM
現状の挙動だとおそらく M の実装を取り込んで ModuleO がビルドされるけど
6:33 AM
リザイレンスを考慮した(Swift5 ABI)挙動ではこれを
6:33 AM
ModuleO側のロジックとしてはModuleMの中に定義されたdefaultWTを参照するコードにコンパイルしておいて
6:34 AM
後にModuleMのprotocolPのデフォルト実装が変更されたときにも
6:34 AM
その変更に追従できるようになるとかそんなんかね。