Fix diff parser: Forgot that with statments are also flows

This commit is contained in:
Dave Halter
2019-01-06 15:39:10 +01:00
parent c442cf98be
commit 65a0748f4f
2 changed files with 27 additions and 2 deletions

View File

@@ -140,7 +140,7 @@ def _is_flow_node(node):
value = node.children[0].value
except AttributeError:
return False
return value in ('if', 'for', 'while', 'try')
return value in ('if', 'for', 'while', 'try', 'with')
class _PositionUpdatingFinished(Exception):

View File

@@ -886,7 +886,7 @@ Some'random text: yeah
differ.parse(code1, parsers=1, copies=1)
def test_l(differ):
def test_many_nested_ifs(differ):
code1 = dedent('''\
class C:
def f(self):
@@ -919,3 +919,28 @@ def test_l(differ):
differ.initialize(code1)
differ.parse(code2, parsers=2, copies=1, expect_error_leaves=True)
differ.parse(code1, parsers=1, copies=1)
def test_with_and_funcdef_in_call(differ):
code1 = dedent('''\
with x:
la = C(
a=1,
b=2,
c=3,
)
''')
code2 = dedent('''\
with x:
la = C(
a=1,
def y(self, args):
b=2,
c=3,
)
''')
differ.initialize(code1)
differ.parse(code2, parsers=3, copies=0, expect_error_leaves=True)
differ.parse(code1, parsers=1, copies=0)