You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It also performs two micro-optimizations for speed:
Inlining ascribes type-flow-computed type to added locals, giving them in general more specific types than those declared in the callee's formal params.
Some methods calls are resolved as by-product of inlining analysis.
However those calls to a more specific method (say, j.l.String.equals() instead of its Objectcounterpart) can't be devirtualized (ie madeinvokespecialinstead ofinvokevirtual`) because the JVM verifier complains (looks like our type-flow analysis, which tracks non-nullness, is more precise).
All in all, the single-pass approach isn't much faster than the current implementation. Therefore looks like we'll stick to the current implementation. Closing this ticket as Won't fix.
The technique to track non-nullness should be added to the current implementation, #5850 .
For 2.11, extend the single-pass TFA at
magarciaEPFL/scala@master...SinglePassTFA
with the solution-repair optimizations added in 2.10-M2.
The text was updated successfully, but these errors were encountered: