From 079f9155dcfd64aeea6b20f695a477db5e3037fa Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Tue, 1 Sep 2026 02:35:45 +0900 Subject: [PATCH] Match CPython class generator syntax error Assisted-by: Codex:GPT-5 --- crates/ruff_python_parser/src/parser/expression.rs | 10 +++++++++- ...lass_def_unparenthesized_generator_argument.py.snap | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/crates/ruff_python_parser/src/parser/expression.rs b/crates/ruff_python_parser/src/parser/expression.rs index a90d18c2a7ba99..8016f777275bd7 100644 --- a/crates/ruff_python_parser/src/parser/expression.rs +++ b/crates/ruff_python_parser/src/parser/expression.rs @@ -3045,7 +3045,15 @@ impl<'src> Parser<'src> { // sum(x for x in range(10), 5) // total(1, 2, x for x in range(5), 6) // sum(x for x in range(10),) - self.add_error(ParseErrorType::UnparenthesizedGeneratorExpression, range); + let error = match context { + ArgumentsContext::Call => { + ParseErrorType::UnparenthesizedGeneratorExpression + } + ArgumentsContext::ClassDefinition => { + ParseErrorType::OtherError("invalid syntax".to_owned()) + } + }; + self.add_error(error, range); } } } diff --git a/crates/ruff_python_parser/tests/snapshots/invalid_syntax@class_def_unparenthesized_generator_argument.py.snap b/crates/ruff_python_parser/tests/snapshots/invalid_syntax@class_def_unparenthesized_generator_argument.py.snap index 5b2f3d6882144a..950e45933a75df 100644 --- a/crates/ruff_python_parser/tests/snapshots/invalid_syntax@class_def_unparenthesized_generator_argument.py.snap +++ b/crates/ruff_python_parser/tests/snapshots/invalid_syntax@class_def_unparenthesized_generator_argument.py.snap @@ -100,4 +100,4 @@ Module( | 1 | class Foo(base for base in bases): ... - | ^^^^^^^^^^^^^^^^^^^^^^ Syntax Error: Unparenthesized generator expression cannot be used here + | ^^^^^^^^^^^^^^^^^^^^^^ Syntax Error: invalid syntax