Skip to content

Commit b6ce407

Browse files
committed
Remove else and finally from in_exc_handler
1 parent aec7f84 commit b6ce407

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

tests/snippets/try_exceptions.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,3 +161,13 @@ def __init__(self):
161161
except ZeroDivisionError as ex:
162162
assert type(ex.__cause__) == NameError
163163
assert ex.__context__ == None
164+
165+
try:
166+
try:
167+
raise ZeroDivisionError
168+
except ZeroDivisionError as ex:
169+
pass
170+
finally:
171+
raise NameError
172+
except NameError as ex2:
173+
assert ex2.__context__ == None

vm/src/compile.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,8 @@ impl Compiler {
637637
in_exc: true,
638638
});
639639

640+
self.in_exc_handler = was_in_exc_handler;
641+
640642
// We successfully ran the try block:
641643
// else:
642644
self.set_label(else_label);
@@ -649,7 +651,6 @@ impl Compiler {
649651
if let Some(statements) = finalbody {
650652
self.compile_statements(statements)?;
651653
}
652-
self.in_exc_handler = was_in_exc_handler;
653654
// unimplemented!();
654655
Ok(())
655656
}

0 commit comments

Comments
 (0)