You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm not quite sure where the incorrectness here is, but I think this bug indicates an incorrect parsing of the yield from expression. The following is a python snippet with illegal syntax:
defe():
x=yieldfromy=5
We can verify that it is indeed illegal syntax with:
$ python yield-elision.py
File "/tmp/tmp.1z4PScoI6T/yield-elision.py", line 2
x = yield from y = 5
^^^^^^^^^^^^
SyntaxError: assignment to yield expression not possible
Ruff, however, believes this is valid syntax:
$ ruff yield-elision.py --show-source --show-fixes
yield-elision.py:2:3: F841 [*] Local variable `x` is assigned to but never used
|
2 | def e():
3 | x = yield from y = 5
| ^ F841
|
= help: Remove assignment to unused variable `x`
yield-elision.py:2:18: F821 Undefined name `y`
|
2 | def e():
3 | x = yield from y = 5
| ^ F821
|
Found 2 errors.
And will attempt to fix it, leading to a self-reported parsing error:
$ ruff yield-elision.py --fix
error: Autofix introduced a syntax error in `yield-elision.py` with rule codes F841: invalid syntax. Got unexpected token '=' at byte offset 24
---
def e():
yield from y = 5
---
yield-elision.py:2:3: F841 Local variable `x` is assigned to but never used
yield-elision.py:2:18: F821 Undefined name `y`
Found 2 errors.
I believe this indicates a parsing bug.
The text was updated successfully, but these errors were encountered:
Originally reported as astral-sh/ruff#4992.
The text was updated successfully, but these errors were encountered: