iter_yield_expr should not work correctly.

This commit is contained in:
Dave Halter
2017-09-01 09:34:01 +02:00
parent a21ec2c0ad
commit d3e58955a9
2 changed files with 9 additions and 1 deletions
+1 -1
View File
@@ -108,7 +108,7 @@ class PythonLeaf(PythonMixin, Leaf):
# indent error leafs somehow? No idea how, though. # indent error leafs somehow? No idea how, though.
previous_leaf = self.get_previous_leaf() previous_leaf = self.get_previous_leaf()
if previous_leaf is not None and previous_leaf.type == 'error_leaf' \ if previous_leaf is not None and previous_leaf.type == 'error_leaf' \
and previous_leaf.original_type == 'error_dedent': and previous_leaf.original_type in ('indent', 'error_dedent'):
previous_leaf = previous_leaf.get_previous_leaf() previous_leaf = previous_leaf.get_previous_leaf()
if previous_leaf is None: if previous_leaf is None:
+8
View File
@@ -121,13 +121,21 @@ def get_yield_exprs(code, version):
return list(parse(code, version=version).children[0].iter_yield_exprs()) return list(parse(code, version=version).children[0].iter_yield_exprs())
def get_return_stmts(code):
return list(parse(code).children[0].iter_return_stmts())
def test_yields(each_version): def test_yields(each_version):
y, = get_yield_exprs('def x(): yield', each_version) y, = get_yield_exprs('def x(): yield', each_version)
assert y.value == 'yield' assert y.value == 'yield'
assert y.type == 'keyword'
y, = get_yield_exprs('def x(): (yield 1)', each_version) y, = get_yield_exprs('def x(): (yield 1)', each_version)
assert y.type == 'yield_expr' assert y.type == 'yield_expr'
y, = get_yield_exprs('def x(): [1, (yield)]', each_version)
assert y.type == 'keyword'
def test_yield_from(): def test_yield_from():
y, = get_yield_exprs('def x(): (yield from 1)', '3.3') y, = get_yield_exprs('def x(): (yield from 1)', '3.3')