PY-1244 "Unreachable code" false positive with try/except/else/finally

This commit is contained in:
Oleg Shpynov
2010-07-09 16:33:51 +04:00
parent e476a0721d
commit 2dbae7c34b
4 changed files with 36 additions and 4 deletions
@@ -0,0 +1,9 @@
d = dict()
try:
v = d['key']
except KeyError:
print 'element not found'
else:
print 'element value {0}'.format(v)
finally:
print 'excuting finally clause'
@@ -0,0 +1,19 @@
0(1) element: null
1(2) element: PyAssignmentStatement
2(3) READ ACCESS: dict
3(4) WRITE ACCESS: d
4(5) element: PyTryExceptStatement
5(6) element: PyTryPart
6(7) element: PyAssignmentStatement
7(8) element: PySubscriptionExpression
8(9) READ ACCESS: d
9(10,13) WRITE ACCESS: v
10(11) element: PyElsePart
11(12) element: PyPrintStatement
12(16) READ ACCESS: v
13(14) element: PyExceptPart
14(15) READ ACCESS: KeyError
15(16) element: PyPrintStatement
16(17) element: PyFinallyPart
17(18) element: PyPrintStatement
18() element: null