5FRUf>B*}q}>0}%0BlHWMkUHNs%2({a_b>M&UP
z1ZDxbh8Qe$madvs9R^GNrUm30VzAVOx@uZ=7%cUs7LaR*!BWTSs%h0>u=HWh0&)!z
m*eDEXh2ZLG>QGr)dl?|-2$iM9m$RoSL}h99Wq_QcPWB7qT#MiU
literal 8943
zcmeI$OK-w33;#mJ2mu5(Ut9hde~
zMV-cR92wQ=QWj8ZVWmlQx8HB;s*-p|Z#BYg(#PB8=6dj?M9UZAoQJH(XJcXR|cQhZBjB0mErVQetu&LQHN`dfk21
z-`a;ozjp%TW3##5Dl%Hk9*o|Vg{~QNZck^b;LRCt9L&v7Pu_y@T%z$g
zg|}q9aWFSS;XS?=_&?7TbLJG@8$WrDkY`Hatr*WE=A;O`WzKkxkatS)akJtjLrKby
z`xQjw4JbcuS-fN@N%?Wtf{45U<;RVSmkcEdzg5PsUt|;>P^#S2ggfF2N|nEAVWaSf
zQsoXZ+!0q$s@zv%qwt7Q;%KIy1^h9uD{Q=cOY;phq
diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W191_W19.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W191_W19.py.snap
index ec2fd5bb5a..b1fce5b6a5 100644
--- a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W191_W19.py.snap
+++ b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__W191_W19.py.snap
@@ -8,14 +8,14 @@ W19.py:1:1: W191 Indentation contains tabs
2 | multiline string with tab in it'''
|
-W19.py:1:1: SyntaxError: Unexpected indentation
+W19.py:1:1: invalid-syntax: Unexpected indentation
|
1 | '''File starts with a tab
| ^^^^
2 | multiline string with tab in it'''
|
-W19.py:5:1: SyntaxError: Expected a statement
+W19.py:5:1: invalid-syntax: Expected a statement
|
4 | #: W191
5 | if False:
diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__white_space_syntax_error_compatibility.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__white_space_syntax_error_compatibility.snap
index 8e10a8f07d..d78a1c3367 100644
--- a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__white_space_syntax_error_compatibility.snap
+++ b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__white_space_syntax_error_compatibility.snap
@@ -1,8 +1,7 @@
---
source: crates/ruff_linter/src/rules/pycodestyle/mod.rs
-snapshot_kind: text
---
-E2_syntax_error.py:1:10: SyntaxError: Expected an expression
+E2_syntax_error.py:1:10: invalid-syntax: Expected an expression
|
1 | a = (1 or)
| ^
diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters_syntax_error.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters_syntax_error.py.snap
index 191bff373d..8ab97da102 100644
--- a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters_syntax_error.py.snap
+++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLE2510_invalid_characters_syntax_error.py.snap
@@ -11,7 +11,7 @@ invalid_characters_syntax_error.py:5:6: PLE2510 Invalid unescaped character back
|
= help: Replace with escape sequence
-invalid_characters_syntax_error.py:7:5: SyntaxError: missing closing quote in string literal
+invalid_characters_syntax_error.py:7:5: invalid-syntax: missing closing quote in string literal
|
5 | b = '␈'
6 | # Unterminated string
@@ -21,7 +21,7 @@ invalid_characters_syntax_error.py:7:5: SyntaxError: missing closing quote in st
9 | # Unterminated f-string
|
-invalid_characters_syntax_error.py:7:7: SyntaxError: Expected a statement
+invalid_characters_syntax_error.py:7:7: invalid-syntax: Expected a statement
|
5 | b = '␈'
6 | # Unterminated string
@@ -43,7 +43,7 @@ invalid_characters_syntax_error.py:8:6: PLE2510 Invalid unescaped character back
|
= help: Replace with escape sequence
-invalid_characters_syntax_error.py:10:7: SyntaxError: f-string: unterminated string
+invalid_characters_syntax_error.py:10:7: invalid-syntax: f-string: unterminated string
|
8 | b = '␈'
9 | # Unterminated f-string
@@ -53,7 +53,7 @@ invalid_characters_syntax_error.py:10:7: SyntaxError: f-string: unterminated str
12 | # Implicitly concatenated
|
-invalid_characters_syntax_error.py:10:8: SyntaxError: Expected FStringEnd, found newline
+invalid_characters_syntax_error.py:10:8: invalid-syntax: Expected FStringEnd, found newline
|
8 | b = '␈'
9 | # Unterminated f-string
@@ -93,7 +93,7 @@ invalid_characters_syntax_error.py:13:11: PLE2510 Invalid unescaped character ba
|
= help: Replace with escape sequence
-invalid_characters_syntax_error.py:13:14: SyntaxError: missing closing quote in string literal
+invalid_characters_syntax_error.py:13:14: invalid-syntax: missing closing quote in string literal
|
11 | b = f'␈'
12 | # Implicitly concatenated
@@ -101,7 +101,7 @@ invalid_characters_syntax_error.py:13:14: SyntaxError: missing closing quote in
| ^^
|
-invalid_characters_syntax_error.py:13:16: SyntaxError: Expected a statement
+invalid_characters_syntax_error.py:13:16: invalid-syntax: Expected a statement
|
11 | b = f'␈'
12 | # Implicitly concatenated
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__async_comprehension_in_sync_comprehension_notebook_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__async_comprehension_in_sync_comprehension_notebook_3.10.snap
index c573573f70..b8f733bcbc 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__async_comprehension_in_sync_comprehension_notebook_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__async_comprehension_in_sync_comprehension_notebook_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-resources/test/fixtures/syntax_errors/async_comprehension.ipynb:3:5: SyntaxError: cannot use an asynchronous comprehension inside of a synchronous comprehension on Python 3.10 (syntax was added in 3.11)
+resources/test/fixtures/syntax_errors/async_comprehension.ipynb:3:5: invalid-syntax: cannot use an asynchronous comprehension inside of a synchronous comprehension on Python 3.10 (syntax was added in 3.11)
|
1 | async def elements(n): yield n
2 | [x async for x in elements(5)] # okay, async at top level
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_AsyncComprehensionOutsideAsyncFunction_async_in_sync_error_on_310_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_AsyncComprehensionOutsideAsyncFunction_async_in_sync_error_on_310_3.10.snap
index 9fd781f021..8f0b694212 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_AsyncComprehensionOutsideAsyncFunction_async_in_sync_error_on_310_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_AsyncComprehensionOutsideAsyncFunction_async_in_sync_error_on_310_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:1:27: SyntaxError: cannot use an asynchronous comprehension inside of a synchronous comprehension on Python 3.10 (syntax was added in 3.11)
+:1:27: invalid-syntax: cannot use an asynchronous comprehension inside of a synchronous comprehension on Python 3.10 (syntax was added in 3.11)
|
1 | async def f(): return [[x async for x in foo(n)] for n in range(3)]
| ^^^^^^^^^^^^^^^^^^^^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchClassAttribute_duplicate_match_class_attribute_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchClassAttribute_duplicate_match_class_attribute_3.10.snap
index bac3111de0..c54cffce1c 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchClassAttribute_duplicate_match_class_attribute_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchClassAttribute_duplicate_match_class_attribute_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:3:21: SyntaxError: attribute name `x` repeated in class pattern
+:3:21: invalid-syntax: attribute name `x` repeated in class pattern
|
2 | match x:
3 | case Point(x=1, x=2):
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchKey_duplicate_match_key_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchKey_duplicate_match_key_3.10.snap
index f877e86e31..0dff722356 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchKey_duplicate_match_key_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateMatchKey_duplicate_match_key_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:3:21: SyntaxError: mapping pattern checks duplicate key `'key'`
+:3:21: invalid-syntax: mapping pattern checks duplicate key `'key'`
|
2 | match x:
3 | case {'key': 1, 'key': 2}:
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateTypeParameter_duplicate_type_param_3.12.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateTypeParameter_duplicate_type_param_3.12.snap
index 5ede497ec6..a216e0014f 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateTypeParameter_duplicate_type_param_3.12.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_DuplicateTypeParameter_duplicate_type_param_3.12.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:1:12: SyntaxError: duplicate type parameter
+:1:12: invalid-syntax: duplicate type parameter
|
1 | class C[T, T]: pass
| ^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_walrus_in_return_annotation_3.12.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_walrus_in_return_annotation_3.12.snap
index a09dda153f..9302f2f743 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_walrus_in_return_annotation_3.12.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_walrus_in_return_annotation_3.12.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:22: SyntaxError: named expression cannot be used within a generic definition
+:2:22: invalid-syntax: named expression cannot be used within a generic definition
|
2 | def f[T](x: int) -> (y := 3): return x
| ^^^^^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_from_in_base_class_3.12.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_from_in_base_class_3.12.snap
index 6f71b926a1..9b53c29edd 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_from_in_base_class_3.12.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_from_in_base_class_3.12.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:13: SyntaxError: yield expression cannot be used within a generic definition
+:2:13: invalid-syntax: yield expression cannot be used within a generic definition
|
2 | class C[T]((yield from [object])):
| ^^^^^^^^^^^^^^^^^^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_alias_3.12.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_alias_3.12.snap
index 39c220e6a1..04022d4371 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_alias_3.12.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_alias_3.12.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:11: SyntaxError: yield expression cannot be used within a type alias
+:2:11: invalid-syntax: yield expression cannot be used within a type alias
|
2 | type Y = (yield 1)
| ^^^^^^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_param_3.12.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_param_3.12.snap
index 9f0c12aaac..77f409e139 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_param_3.12.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidExpression_invalid_expression_yield_in_type_param_3.12.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:12: SyntaxError: yield expression cannot be used within a TypeVar bound
+:2:12: invalid-syntax: yield expression cannot be used within a TypeVar bound
|
2 | type X[T: (yield 1)] = int
| ^^^^^^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_3.10.snap
index 81bc057071..823721b5ad 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:3:12: SyntaxError: Starred expression cannot be used here
+:3:12: invalid-syntax: Starred expression cannot be used here
|
2 | def func():
3 | return *x
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_for_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_for_3.10.snap
index 811caf59bb..360ed91ab1 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_for_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_for_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:5: SyntaxError: Starred expression cannot be used here
+:2:5: invalid-syntax: Starred expression cannot be used here
|
2 | for *x in range(10):
| ^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_yield_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_yield_3.10.snap
index ee1549b0cd..250f75191b 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_yield_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_InvalidStarExpression_invalid_star_expression_yield_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:3:11: SyntaxError: Starred expression cannot be used here
+:3:11: invalid-syntax: Starred expression cannot be used here
|
2 | def func():
3 | yield *x
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_capture_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_capture_3.10.snap
index 502f151558..f4eff967a9 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_capture_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_capture_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:3:10: SyntaxError: name capture `irrefutable` makes remaining patterns unreachable
+:3:10: invalid-syntax: name capture `irrefutable` makes remaining patterns unreachable
|
2 | match value:
3 | case irrefutable:
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_wildcard_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_wildcard_3.10.snap
index cc54b4776b..ac8a5e593e 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_wildcard_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_IrrefutableCasePattern_irrefutable_case_pattern_wildcard_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:3:10: SyntaxError: wildcard makes remaining patterns unreachable
+:3:10: invalid-syntax: wildcard makes remaining patterns unreachable
|
2 | match value:
3 | case _:
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_MultipleCaseAssignment_multiple_case_assignment_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_MultipleCaseAssignment_multiple_case_assignment_3.10.snap
index 6cee83489a..6fca18778a 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_MultipleCaseAssignment_multiple_case_assignment_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_MultipleCaseAssignment_multiple_case_assignment_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:3:14: SyntaxError: multiple assignments to name `a` in pattern
+:3:14: invalid-syntax: multiple assignments to name `a` in pattern
|
2 | match x:
3 | case [a, a]:
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_ReboundComprehensionVariable_rebound_comprehension_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_ReboundComprehensionVariable_rebound_comprehension_3.10.snap
index 80fb65620a..c08764edd5 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_ReboundComprehensionVariable_rebound_comprehension_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_ReboundComprehensionVariable_rebound_comprehension_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:1:2: SyntaxError: assignment expression cannot rebind comprehension variable
+:1:2: invalid-syntax: assignment expression cannot rebind comprehension variable
|
1 | [x:= 2 for x in range(2)]
| ^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_SingleStarredAssignment_single_starred_assignment_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_SingleStarredAssignment_single_starred_assignment_3.10.snap
index ecc8f955d8..2295dec878 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_SingleStarredAssignment_single_starred_assignment_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_SingleStarredAssignment_single_starred_assignment_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:1:1: SyntaxError: starred assignment target must be in a list or tuple
+:1:1: invalid-syntax: starred assignment target must be in a list or tuple
|
1 | *a = [1, 2, 3, 4]
| ^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_3.10.snap
index baebbdf41f..576fcb6706 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:1: SyntaxError: cannot assign to `__debug__`
+:2:1: invalid-syntax: cannot assign to `__debug__`
|
2 | __debug__ = False
| ^^^^^^^^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_class_type_param_3.12.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_class_type_param_3.12.snap
index 44139dc6cf..7db94e4b2e 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_class_type_param_3.12.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_class_type_param_3.12.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:15: SyntaxError: cannot assign to `__debug__`
+:2:15: invalid-syntax: cannot assign to `__debug__`
|
2 | class Generic[__debug__]:
| ^^^^^^^^^
diff --git a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_in_function_param_3.10.snap b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_in_function_param_3.10.snap
index 935ad56054..12e6d3d0a6 100644
--- a/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_in_function_param_3.10.snap
+++ b/crates/ruff_linter/src/snapshots/ruff_linter__linter__tests__semantic_syntax_error_WriteToDebug_write_to_debug_in_function_param_3.10.snap
@@ -1,7 +1,7 @@
---
source: crates/ruff_linter/src/linter.rs
---
-:2:13: SyntaxError: cannot assign to `__debug__`
+:2:13: invalid-syntax: cannot assign to `__debug__`
|
2 | def process(__debug__):
| ^^^^^^^^^
diff --git a/crates/ruff_wasm/src/lib.rs b/crates/ruff_wasm/src/lib.rs
index 8fcb8d791b..da5c91e7b5 100644
--- a/crates/ruff_wasm/src/lib.rs
+++ b/crates/ruff_wasm/src/lib.rs
@@ -57,7 +57,7 @@ export interface Diagnostic {
#[derive(Serialize, Deserialize, Eq, PartialEq, Debug)]
pub struct ExpandedMessage {
- pub code: Option,
+ pub code: String,
pub message: String,
pub start_location: Location,
pub end_location: Location,
@@ -229,7 +229,7 @@ impl Workspace {
let messages: Vec = diagnostics
.into_iter()
.map(|msg| ExpandedMessage {
- code: msg.secondary_code().map(ToString::to_string),
+ code: msg.secondary_code_or_id().to_string(),
message: msg.body().to_string(),
start_location: source_code.line_column(msg.expect_range().start()).into(),
end_location: source_code.line_column(msg.expect_range().end()).into(),
diff --git a/crates/ruff_wasm/tests/api.rs b/crates/ruff_wasm/tests/api.rs
index fb7478d3b2..8dada44a5b 100644
--- a/crates/ruff_wasm/tests/api.rs
+++ b/crates/ruff_wasm/tests/api.rs
@@ -27,7 +27,7 @@ fn empty_config() {
"if (1, 2):\n pass",
r#"{}"#,
[ExpandedMessage {
- code: Some(Rule::IfTuple.noqa_code().to_string()),
+ code: Rule::IfTuple.noqa_code().to_string(),
message: "If test is a tuple, which is always `True`".to_string(),
start_location: Location {
row: OneIndexed::from_zero_indexed(0),
@@ -50,8 +50,8 @@ fn syntax_error() {
"x =\ny = 1\n",
r#"{}"#,
[ExpandedMessage {
- code: None,
- message: "SyntaxError: Expected an expression".to_string(),
+ code: "invalid-syntax".to_string(),
+ message: "Expected an expression".to_string(),
start_location: Location {
row: OneIndexed::from_zero_indexed(0),
column: OneIndexed::from_zero_indexed(3)
@@ -73,8 +73,9 @@ fn unsupported_syntax_error() {
"match 2:\n case 1: ...",
r#"{"target-version": "py39"}"#,
[ExpandedMessage {
- code: None,
- message: "SyntaxError: Cannot use `match` statement on Python 3.9 (syntax was added in Python 3.10)".to_string(),
+ code: "invalid-syntax".to_string(),
+ message: "Cannot use `match` statement on Python 3.9 (syntax was added in Python 3.10)"
+ .to_string(),
start_location: Location {
row: OneIndexed::from_zero_indexed(0),
column: OneIndexed::from_zero_indexed(0)
diff --git a/python/ruff-ecosystem/ruff_ecosystem/check.py b/python/ruff-ecosystem/ruff_ecosystem/check.py
index bf8d222125..6babd762d4 100644
--- a/python/ruff-ecosystem/ruff_ecosystem/check.py
+++ b/python/ruff-ecosystem/ruff_ecosystem/check.py
@@ -45,7 +45,7 @@ CHECK_DIFF_LINE_RE = re.compile(
)
CHECK_DIAGNOSTIC_LINE_RE = re.compile(
- r"^(?P[+-])? ?(?P.*): (?P[A-Z]{1,4}[0-9]{3,4}|SyntaxError:)(?P \[\*\])? (?P.*)"
+ r"^(?P[+-])? ?(?P.*): (?P[A-Z]{1,4}[0-9]{3,4}|[a-z\-]+:)(?P \[\*\])? (?P.*)"
)
CHECK_VIOLATION_FIX_INDICATOR = " [*]"