mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-15 17:15:22 +00:00

Summary -- Fixes https://github.com/astral-sh/ruff/issues/16520 by flagging single, starred expressions in `return`, `yield`, and `for` statements. I thought `yield from` would also be included here, but that error is emitted by the CPython parser: ```pycon >>> ast.parse("def f(): yield from *x") Traceback (most recent call last): File "<python-input-214>", line 1, in <module> ast.parse("def f(): yield from *x") ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.13/ast.py", line 54, in parse return compile(source, filename, mode, flags, _feature_version=feature_version, optimize=optimize) File "<unknown>", line 1 def f(): yield from *x ^ SyntaxError: invalid syntax ``` And we also already catch it in our parser. Test Plan -- New inline tests and updates to existing tests.
37 lines
523 B
Python
37 lines
523 B
Python
for target in iter:
|
|
pass
|
|
|
|
for target in (1, 2, 3):
|
|
pass
|
|
|
|
for target.attr in call():
|
|
pass
|
|
|
|
for target[0] in x.attr:
|
|
pass
|
|
|
|
for target in x <= y:
|
|
pass
|
|
|
|
for target in a and b:
|
|
pass
|
|
|
|
for a, b, c, in iter:
|
|
pass
|
|
|
|
for (a, b) in iter:
|
|
pass
|
|
|
|
for target in [1, 2]:
|
|
pass
|
|
|
|
for target in await x: ...
|
|
for target in lambda x: x: ...
|
|
for target in x if True else y: ...
|
|
|
|
if x:
|
|
for target in iter:
|
|
pass
|
|
# This `else` is not part of the `try` statement, so don't raise an error
|
|
else:
|
|
pass
|