I just finished refactoring my code to replace a lot of function calls of the form f(a::AbstractType, args…) with (a::AbstractType)(args…) since I can do that in 1.3, and it works out to slightly cleaner code. However, on testing I’m finding that the runtime has taken a massive hit, on the order of 1000x. Now, there were little things that I also fixed during this refactor, so the performance hit could be because of one of them, but before I go in and un-refactor and test all the various little things, I wanted to check if there’s any reason to expect that this primary, major change I made (defining calls on abstract types) would lead to a performance hit.
Preliminary profiling doesn’t show any glaring type instabilities.