julia
b5ecba00 - avoid false-positive recursion detection in the presence of union splitting (#61461)

Commit
3 days ago
avoid false-positive recursion detection in the presence of union splitting (#61461) fixes https://github.com/JuliaLang/julia/issues/57324 see the MWE closely: the `setindex!` method added is `setindex!(_, _, i::Int)`, but the index passed is `UInt`. which means we hit `setindex!(A::AbstractArray, v, I...)` twice to convert the `UInt -> Int`, once via `T` and again via `Memory`. since `_setindex!(w, i)` returns `Union{Nothing, Int}`, this gets union-split causing `napplicable > 1`, triggering the aggressive recursion-limiting heuristic `hardlimit=true` note this fix is not super general and there are probably several other similar scenarios one could construct dispatching through the same general method several times and ending up hitting this heuristic. but I think this should address all cases where this happens due to union splitting?
Author
Parents
Loading