Avatar
omochimetaru 3/1/2018 8:31 AM
そうだね
8:31 AM
// specialized SpeakInvoker.invokeSpeak() sil shared @_T01a12SpeakInvokerC06invokeA0yyFAA3CatV_Tg5 : $@convention(method) (@guaranteed SpeakInvoker<Cat>) -> () {
8:32 AM
↑の方見ればわかるけど、SpeakInvoker<T>のTがCatであることが確定した状態のメソッド実装が生成されてるから、TへのアクセスでCat前提のロジックになるからディスパッチが一個減る
8:33 AM
ただCat is Animal(protocol) のwitness呼び出しのディスパッチはその中で発生する