[syntax-errors] Improve error message and range for pre-PEP-614 decorator syntax errors (#16581)

## Summary

A small followup to https://github.com/astral-sh/ruff/pull/16386. We now
tell the user exactly what it was about their decorator that constituted
invalid syntax on Python <3.9, and the range now highlights the specific
sub-expression that is invalid rather than highlighting the whole
decorator

## Test Plan

Inline snapshots are updated, and new ones are added.
This commit is contained in:
Alex Waygood 2025-03-17 11:17:27 +00:00 committed by GitHub
parent 4da6936ec4
commit 38bfda94ce
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 574 additions and 19 deletions

View file

@ -0,0 +1,4 @@
# parse_options: { "target-version": "3.8" }
async def foo():
@await bar
def baz(): ...

View file

@ -0,0 +1,3 @@
# parse_options: { "target-version": "3.8" }
@{3: 3}
def bar(): ...

View file

@ -0,0 +1,3 @@
# parse_options: { "target-version": "3.8" }
@3.14
def bar(): ...

View file

@ -0,0 +1,3 @@
# parse_options: { "target-version": "3.8" }
@foo().bar()
def baz(): ...

View file

@ -0,0 +1,4 @@
# parse_options: { "target-version": "3.9" }
async def foo():
@await bar
def baz(): ...