mirror of
https://github.com/davidhalter/parso.git
synced 2026-05-11 09:08:40 +08:00
iter_yield_expr should not work correctly.
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
Reference in New Issue
Block a user