mirror of
https://github.com/astral-sh/ruff
synced 2026-01-09 23:54:36 -05:00
[syntax-errors] Named expressions in decorators before Python 3.9 (#16386)
Summary -- This PR detects the relaxed grammar for decorators proposed in [PEP 614](https://peps.python.org/pep-0614/) on Python 3.8 and lower. The 3.8 grammar for decorators is [here](https://docs.python.org/3.8/reference/compound_stmts.html#grammar-token-decorators): ``` decorators ::= decorator+ decorator ::= "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE dotted_name ::= identifier ("." identifier)* ``` in contrast to the current grammar [here](https://docs.python.org/3/reference/compound_stmts.html#grammar-token-python-grammar-decorators) ``` decorators ::= decorator+ decorator ::= "@" assignment_expression NEWLINE assignment_expression ::= [identifier ":="] expression ``` Test Plan -- New inline parser tests.
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# parse_options: { "target-version": "3.8" }
|
||||
@buttons[0].clicked.connect
|
||||
def spam(): ...
|
||||
@@ -0,0 +1,3 @@
|
||||
# parse_options: { "target-version": "3.7" }
|
||||
@(x := lambda x: x)(foo)
|
||||
def bar(): ...
|
||||
Reference in New Issue
Block a user