julia
fb3ee73e - inlining: add missing late special handling for `UnionAll` method call (#43479)

Commit
3 years ago
inlining: add missing late special handling for `UnionAll` method call (#43479) Looking at the result of <https://github.com/JuliaLang/julia/issues/43452#issuecomment-996971256>, I found that currently the inlinear sometimes fails to handle `UnionAll` call (e.g. runtime dispatch detected: Core.UnionAll(%28::TypeVar, %29::Any)). This commit adds a missing late special handling for `UnionAll` calls: > before ```julia julia> code_typed((TypeVar,)) do tv UnionAll(tv, Type{tv}) end 1-element Vector{Any}: CodeInfo( 1 ─ %1 = Core.apply_type(Main.Type, tv)::Type{Type{_A}} where _A │ %2 = Main.UnionAll(tv, %1)::Any └── return %2 ) => Any ``` > after ```julia julia> code_typed((TypeVar,)) do tv UnionAll(tv, Type{tv}) end 1-element Vector{Any}: CodeInfo( 1 ─ %1 = Core.apply_type(Main.Type, tv)::Type{Type{_A}} where _A │ %2 = $(Expr(:foreigncall, :(:jl_type_unionall), Any, svec(Any, Any), 0, :(:ccall), Core.Argument(2), :(%1)))::Any └── return %2 ) => Any ```
Author
Parents
Loading