mirror of
https://github.com/davidhalter/parso.git
synced 2025-12-08 13:45:01 +08:00
Add yield issues when outside function.
This commit is contained in:
@@ -125,9 +125,9 @@ class ErrorFinder(Normalizer):
|
||||
in_loop = True
|
||||
if not in_loop:
|
||||
self._add_syntax_error("'break' outside loop", leaf)
|
||||
elif leaf.value == 'return':
|
||||
elif leaf.value in ('yield', 'return'):
|
||||
if self._context.node.type != 'funcdef':
|
||||
self._add_syntax_error("'return' outside function", leaf)
|
||||
self._add_syntax_error("'%s' outside function" % leaf.value, leaf)
|
||||
elif leaf.value == 'await':
|
||||
if self._context.node.type != 'funcdef' \
|
||||
or self._context.node.parent.type != 'async_funcdef':
|
||||
|
||||
@@ -71,6 +71,7 @@ def test_indentation_errors(code, positions):
|
||||
'continue',
|
||||
'break',
|
||||
'return',
|
||||
'yield',
|
||||
'try: pass\nexcept: pass\nexcept X: pass',
|
||||
|
||||
# IndentationError
|
||||
@@ -95,6 +96,7 @@ def test_python_exception_matches(code):
|
||||
('code', 'version'), [
|
||||
# SyntaxError
|
||||
('async def bla():\n def x(): await bla()', '3.5'),
|
||||
('yield from', '3.5'),
|
||||
|
||||
]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user