PY-22094 Include assert statements in CFG to resolve names in f-strings inside

Otherwise it's impossible to flow-sensitively resolve names referenced
inside such f-strings since we use the containing statement as the anchor
node in the graph.
This commit is contained in:
Mikhail Golubev
2017-03-28 16:44:21 +02:00
parent 8954f34691
commit 1d3eda1e2d
6 changed files with 35 additions and 20 deletions
@@ -1,10 +1,11 @@
0(1) element: null
1(2) READ ACCESS: isinstance
2(3) READ ACCESS: s
3(4) READ ACCESS: basestring
4(5) READ ACCESS: isinstance
5(6) READ ACCESS: x
6(7) READ ACCESS: int
7(8) ASSERTTYPE ACCESS: s
8(9) ASSERTTYPE ACCESS: x
9() element: null
1(2) element: PyAssertStatement
2(3) READ ACCESS: isinstance
3(4) READ ACCESS: s
4(5) READ ACCESS: basestring
5(6) READ ACCESS: isinstance
6(7) READ ACCESS: x
7(8) READ ACCESS: int
8(9) ASSERTTYPE ACCESS: s
9(10) ASSERTTYPE ACCESS: x
10() element: null
@@ -1,6 +1,8 @@
0(1) element: null
1(5) READ ACCESS: false
2(3) element: PyPrintStatement
3(5) READ ACCESS: False
4(5) element: PyPrintStatement
5() element: null
1(2) element: PyAssertStatement
2(7) READ ACCESS: false
3(4) element: PyPrintStatement
4(5) element: PyAssertStatement
5(7) READ ACCESS: False
6(7) element: PyPrintStatement
7() element: null
@@ -1,7 +1,9 @@
0(1) element: null
1(6) READ ACCESS: False
2(3) element: PyPrintStatement
3(4) READ ACCESS: False
4(6) READ ACCESS: f
5(6) element: PyPrintStatement
6() element: null
1(2) element: PyAssertStatement
2(8) READ ACCESS: False
3(4) element: PyPrintStatement
4(5) element: PyAssertStatement
5(6) READ ACCESS: False
6(8) READ ACCESS: f
7(8) element: PyPrintStatement
8() element: null