mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 02:38:25 +00:00
Consider if
expression for parenthesized with items parsing (#11010)
## Summary This PR fixes the bug in parenthesized with items parsing where the `if` expression would result into a syntax error. The reason being that once we identify that the ambiguous left parenthesis belongs to the context expression, the parser converts the parsed with item into an equivalent expression. Then, the parser continuous to parse any postfix expressions. Now, attribute, subscript, and call are taken into account as they're grouped in `parse_postfix_expression` but `if` expression has it's own parsing function. Use `parse_if_expression` once all postfix expressions have been parsed. Ideally, I think that `if` could be included in postfix expression parsing as they can be chained as well (`x if True else y if True else z`). ## Test Plan Add test cases and verified the snapshots.
This commit is contained in:
parent
8020d486f6
commit
6c4d779140
4 changed files with 297 additions and 3 deletions
|
@ -0,0 +1,4 @@
|
|||
with (x) if True else y: ...
|
||||
with (x for x in iter) if True else y: ...
|
||||
with (x async for x in iter) if True else y: ...
|
||||
with (x)[0] if True else y: ...
|
Loading…
Add table
Add a link
Reference in a new issue