mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 18:58:04 +00:00
[syntax-errors] Starred expressions in return, yield, and for (#17134)
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.
This commit is contained in:
parent
2ae39edccf
commit
d45593288f
20 changed files with 679 additions and 435 deletions
|
@ -552,7 +552,8 @@ impl SemanticSyntaxContext for Checker<'_> {
|
|||
| SemanticSyntaxErrorKind::MultipleCaseAssignment(_)
|
||||
| SemanticSyntaxErrorKind::IrrefutableCasePattern(_)
|
||||
| SemanticSyntaxErrorKind::SingleStarredAssignment
|
||||
| SemanticSyntaxErrorKind::WriteToDebug(_) => {
|
||||
| SemanticSyntaxErrorKind::WriteToDebug(_)
|
||||
| SemanticSyntaxErrorKind::InvalidStarExpression => {
|
||||
if self.settings.preview.is_enabled() {
|
||||
self.semantic_errors.borrow_mut().push(error);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue