mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-25 09:28:14 +00:00
Summary
--
Detects starred assignment targets outside of tuples and lists like `*a
= (1,)`.
This PR only considers assignment statements. I also checked annotated
assigment statements, but these give a separate error that we already
catch, so I think they're okay not to consider:
```pycon
>>> *a: list[int] = []
File "<python-input-72>", line 1
*a: list[int] = []
^
SyntaxError: invalid syntax
```
Fixes #13759
Test Plan
--
New inline tests, plus a new `SemanticSyntaxError` for an existing
parser test. I also removed a now-invalid case from an otherwise-valid
test fixture.
The new semantic error leads to two errors for the case below:
```python
*foo() = 42
```
but this matches [pyright] too.
[pyright]: https://pyright-play.net/?code=FQMw9mAUCUAEC8sAsAmAUEA
|
||
|---|---|---|
| .. | ||
| ambiguous_lpar_with_items.py | ||
| annotated_assignment.py | ||
| assert.py | ||
| assignment.py | ||
| augmented_assignment.py | ||
| class.py | ||
| delete.py | ||
| for.py | ||
| from_import.py | ||
| function.py | ||
| if.py | ||
| import.py | ||
| match.py | ||
| raise.py | ||
| return.py | ||
| simple.py | ||
| try.py | ||
| type.py | ||
| while.py | ||
| with.py | ||