| ▲ | branko_d 6 hours ago | |
On the other hand, if the compiler can prove at compile-time what type the object must have at run-time, it can eliminate the dynamic dispatch and effectively re-enable inlining. | ||
| ▲ | MarsIronPI 5 hours ago | parent | next [-] | |
Which is why runtime polymorphism in Rust is very hard to do. The its focus on zero-cost abstractions means that the natural way to write polymorphic code is compiled (and must be compiled) to static dispatch. | ||
| ▲ | khuey 4 hours ago | parent | prev [-] | |
Compilers will also speculatively devirtualize under some circumstances. https://hubicka.blogspot.com/2014/02/devirtualization-in-c-p... | ||