mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
bpo-33026: Fix jumping out of "with" block by setting f_lineno. (#6026)
This commit is contained in:
parent
51302a5fcc
commit
26c9f565d0
3 changed files with 44 additions and 9 deletions
|
@ -827,6 +827,34 @@ class JumpTestCase(unittest.TestCase):
|
|||
with tracecontext(output, 4):
|
||||
output.append(5)
|
||||
|
||||
@jump_test(4, 5, [1, 3, 5, 6])
|
||||
def test_jump_out_of_with_block_within_for_block(output):
|
||||
output.append(1)
|
||||
for i in [1]:
|
||||
with tracecontext(output, 3):
|
||||
output.append(4)
|
||||
output.append(5)
|
||||
output.append(6)
|
||||
|
||||
@jump_test(4, 5, [1, 2, 3, 5, -2, 6])
|
||||
def test_jump_out_of_with_block_within_with_block(output):
|
||||
output.append(1)
|
||||
with tracecontext(output, 2):
|
||||
with tracecontext(output, 3):
|
||||
output.append(4)
|
||||
output.append(5)
|
||||
output.append(6)
|
||||
|
||||
@jump_test(5, 6, [2, 4, 6, 7])
|
||||
def test_jump_out_of_with_block_within_finally_block(output):
|
||||
try:
|
||||
output.append(2)
|
||||
finally:
|
||||
with tracecontext(output, 4):
|
||||
output.append(5)
|
||||
output.append(6)
|
||||
output.append(7)
|
||||
|
||||
@jump_test(8, 11, [1, 3, 5, 11, 12])
|
||||
def test_jump_out_of_complex_nested_blocks(output):
|
||||
output.append(1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue