Files
python-uncompyle6/test/simple_source/bug36/04_try_finally.py
2018-03-22 23:54:12 -04:00

49 lines
1.1 KiB
Python

# From 3.6 _pyio.py
# Bug was in "return" not having "COME_FROM"
# and in 1st try/finally no END_FINALLY (which really
# hooks into the control-flow analysis).
# The 2nd try/finally has an END_FINALLY although still
# no "COME_FROM".
def getvalue(self):
try:
return 3
finally:
return 1
def getvalue1(self):
try:
return 4
finally:
pass
return 2
# From Python 3.6 asynchat.py
# Bug is handling as why in the face of a return.
# uncompyle6 shows removal of "why" after the return.
def handle_read(self):
try:
data = 5
except ZeroDivisionError:
return
except OSError as why:
return why
return data
# From 3.6 contextlib
# Bug is indentation of "return exc"
# Also there are extra statements to remove exec,
# which we hide (unless doing fragments).
# Note: The indentation bug may be a result of using improper
# grammar.
def __exit__(self, type, value, traceback):
try:
value()
except StopIteration as exc:
return exc
except RuntimeError as exc:
return exc
return