Open maartenvd opened 1 month ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 75.19%. Comparing base (
8f5f50e
) to head (8ca9f1f
). Report is 11 commits behind head on master.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
but there is an issue where try ... can branch. handlers/catch_branches
yeah, the ssa!
pass seems to be written with the assumption that there is only one leave
per try region (+1 leave in the catch region) which is not the case when there is a return in the try.
Here is a minimal reproducer which you can add as a test:
function f(cond)
try
if cond return end
finally
end
end
I am not sure about this fix, though
I must admit I don't fully understand the ssa! pass, but there is an issue where try ... can branch. handlers/catch_branches will be incorrect for those branches. Example:
Again, I don't fully understand the pass, and this 'fix' may break other things!
I imagine that it is possible for a branch to jump back to an earlier branch, and catch_branches will then be completely wrong!