julia
82184354 - inference: revisit all methods in cycle (#59974)

Commit
56 days ago
inference: revisit all methods in cycle (#59974) When encountering complicated cycles within cycles, make sure to revisit all applicable methods explicitly, since not all methods within the cycle will necessarily change return type after resolving the cycle. This shows up as the possibility of frames that don't get revisited before being cached, probably just caching `Union{}` as the call type instead. I always assumed this code was probably wrong, but didn't have any way to construct the counter-example to have confidence that fixing it would not cause some other side-effect. But still keep the backedge work lazy, since we don't want to allocate unnecessarily for a rarely used feature (recursion). Fix #59943 (cherry picked from commit f4847bf687ab0fa37fdcd237512d5ec6486ae788)
Author
Committer
KristofferC
Parents
Loading