Bug report
The compiler's algorithm for line propagation has some heuristics which are not quite correct (particularly the guarantee_lineno_for_exits, which tidies up loose ends by assigning a possible incorrect line number). Also, line numbers are propagated after optimisation, and this prevents optimisation in a few cases (like when it's not clear whether two jumps have the same line number or not).
Linked PRs
Bug report
The compiler's algorithm for line propagation has some heuristics which are not quite correct (particularly the
guarantee_lineno_for_exits, which tidies up loose ends by assigning a possible incorrect line number). Also, line numbers are propagated after optimisation, and this prevents optimisation in a few cases (like when it's not clear whether two jumps have the same line number or not).Linked PRs