From b5cc384bb163312e899f39194e731e1b14850397 Mon Sep 17 00:00:00 2001 From: Dhruv Manilawala Date: Thu, 7 Mar 2024 16:06:22 +0530 Subject: [PATCH] Fix tests and clippy warnings --- crates/ruff/tests/format.rs | 2 +- crates/ruff/tests/integration_test.rs | 4 +- ...ow_settings__display_default_settings.snap | 1 + ...r__rules__isort__tests__bom_sorted.py.snap | 13 --- ..._rules__isort__tests__bom_unsorted.py.snap | 5 +- ...les__pycodestyle__tests__E999_E999.py.snap | 12 +- ...er__rules__pyupgrade__tests__UP027.py.snap | 108 ++++++++++++++++++ .../invalid_formatter_suppression_comment.rs | 3 + crates/ruff_python_ast/src/nodes.rs | 12 +- ...atter__comments__tests__only_comments.snap | 4 +- .../src/other/f_string_element.rs | 2 + .../src/parser/expression.rs | 2 +- crates/ruff_python_parser/src/parser/mod.rs | 3 +- .../ruff_python_parser/src/parser/pattern.rs | 2 +- .../src/parser/statement.rs | 4 +- ...ests__parser__tests__parse_await_expr.snap | 4 +- ...tests__parser__tests__parse_call_expr.snap | 4 +- ...ests__parser__tests__parse_decorators.snap | 4 +- ...tests__parser__tests__parse_dict_expr.snap | 5 +- ...__parser__tests__parse_generator_expr.snap | 40 ++++--- ...ts__parser__tests__parse_if_else_expr.snap | 36 +++--- ...__tests__parser__tests__parse_if_stmt.snap | 4 +- ...__parser__tests__parse_list_comp_expr.snap | 16 +-- ...tests__parser__tests__parse_list_expr.snap | 5 +- ...ests__parser__tests__parse_match_stmt.snap | 8 +- ...ests__parser__tests__parse_named_expr.snap | 36 +++--- ...ts__parser__tests__parse_simple_stmts.snap | 4 +- ...__parser__tests__parse_subscript_expr.snap | 12 +- ...ests__parser__tests__parse_while_stmt.snap | 4 +- ...tests__parser__tests__parse_with_stmt.snap | 8 +- crates/ruff_python_parser/src/string.rs | 2 +- ...ements__invalid_assignment_targets.py.snap | 16 ++- ...ements__named_expression_statement.py.snap | 7 +- ...ntax@expressions__named_expression.py.snap | 9 +- pyproject.toml | 3 +- 35 files changed, 253 insertions(+), 151 deletions(-) diff --git a/crates/ruff/tests/format.rs b/crates/ruff/tests/format.rs index b1727b54a6..5922bf145a 100644 --- a/crates/ruff/tests/format.rs +++ b/crates/ruff/tests/format.rs @@ -523,7 +523,7 @@ from module import = ----- stdout ----- ----- stderr ----- - error: Failed to parse main.py:2:20: expecting an identifier + error: Failed to parse main.py:2:20: Unexpected token = "###); Ok(()) diff --git a/crates/ruff/tests/integration_test.rs b/crates/ruff/tests/integration_test.rs index 441b85842d..aa4e105bc6 100644 --- a/crates/ruff/tests/integration_test.rs +++ b/crates/ruff/tests/integration_test.rs @@ -728,11 +728,11 @@ fn stdin_parse_error() { success: false exit_code: 1 ----- stdout ----- - -:1:17: E999 SyntaxError: expecting an identifier + -:1:17: E999 SyntaxError: Unexpected token = Found 1 error. ----- stderr ----- - error: Failed to parse at 1:17: expecting an identifier + error: Failed to parse at 1:17: Unexpected token = "###); } diff --git a/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap b/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap index 6b7d064333..09d2f1f927 100644 --- a/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap +++ b/crates/ruff/tests/snapshots/show_settings__display_default_settings.snap @@ -52,6 +52,7 @@ file_resolver.exclude = [ file_resolver.extend_exclude = [ "crates/ruff_linter/resources/", "crates/ruff_python_formatter/resources/", + "crates/ruff_python_parser/resources/", ] file_resolver.force_exclude = false file_resolver.include = [ diff --git a/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_sorted.py.snap b/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_sorted.py.snap index 3e1ab5ae4c..ed369f0fd6 100644 --- a/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_sorted.py.snap +++ b/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_sorted.py.snap @@ -1,17 +1,4 @@ --- source: crates/ruff_linter/src/rules/isort/mod.rs --- -bom_sorted.py:1:1: I001 [*] Import block is un-sorted or un-formatted - | -1 | import bar - | _^ -2 | | import foo - | - = help: Organize imports - -ℹ Safe fix -1 |-import bar -2 |-import foo - 1 |+import rt - diff --git a/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_unsorted.py.snap b/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_unsorted.py.snap index 4f49a26ac5..d9c75d398f 100644 --- a/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_unsorted.py.snap +++ b/crates/ruff_linter/src/rules/isort/snapshots/ruff_linter__rules__isort__tests__bom_unsorted.py.snap @@ -12,6 +12,5 @@ bom_unsorted.py:1:1: I001 [*] Import block is un-sorted or un-formatted ℹ Safe fix 1 |-import foo 2 |-import bar - 1 |+import rt - - + 1 |+import bar + 2 |+import foo diff --git a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E999_E999.py.snap b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E999_E999.py.snap index 06fb17d2a1..04bf862616 100644 --- a/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E999_E999.py.snap +++ b/crates/ruff_linter/src/rules/pycodestyle/snapshots/ruff_linter__rules__pycodestyle__tests__E999_E999.py.snap @@ -1,8 +1,10 @@ --- source: crates/ruff_linter/src/rules/pycodestyle/mod.rs --- -E999.py:5:1: E999 SyntaxError: expected a single statement or an indented body after function definition - | - | - - +E999.py:3:1: E999 SyntaxError: unindent does not match any outer indentation level + | +2 | def x(): +3 | + | ^ E999 +4 | + | diff --git a/crates/ruff_linter/src/rules/pyupgrade/snapshots/ruff_linter__rules__pyupgrade__tests__UP027.py.snap b/crates/ruff_linter/src/rules/pyupgrade/snapshots/ruff_linter__rules__pyupgrade__tests__UP027.py.snap index 2bacb5d540..c177a26b81 100644 --- a/crates/ruff_linter/src/rules/pyupgrade/snapshots/ruff_linter__rules__pyupgrade__tests__UP027.py.snap +++ b/crates/ruff_linter/src/rules/pyupgrade/snapshots/ruff_linter__rules__pyupgrade__tests__UP027.py.snap @@ -1,4 +1,112 @@ --- source: crates/ruff_linter/src/rules/pyupgrade/mod.rs --- +UP027.py:2:17: UP027 [*] Replace unpacked list comprehension with a generator expression + | +1 | # Should change +2 | foo, bar, baz = [fn(x) for x in items] + | ^^^^^^^^^^^^^^^^^^^^^^ UP027 +3 | +4 | foo, bar, baz =[fn(x) for x in items] + | + = help: Replace with generator expression +ℹ Safe fix +1 1 | # Should change +2 |-foo, bar, baz = [fn(x) for x in items] + 2 |+foo, bar, baz = (fn(x) for x in items) +3 3 | +4 4 | foo, bar, baz =[fn(x) for x in items] +5 5 | + +UP027.py:4:16: UP027 [*] Replace unpacked list comprehension with a generator expression + | +2 | foo, bar, baz = [fn(x) for x in items] +3 | +4 | foo, bar, baz =[fn(x) for x in items] + | ^^^^^^^^^^^^^^^^^^^^^^ UP027 +5 | +6 | foo, bar, baz = [fn(x) for x in items] + | + = help: Replace with generator expression + +ℹ Safe fix +1 1 | # Should change +2 2 | foo, bar, baz = [fn(x) for x in items] +3 3 | +4 |-foo, bar, baz =[fn(x) for x in items] + 4 |+foo, bar, baz =(fn(x) for x in items) +5 5 | +6 6 | foo, bar, baz = [fn(x) for x in items] +7 7 | + +UP027.py:6:26: UP027 [*] Replace unpacked list comprehension with a generator expression + | +4 | foo, bar, baz =[fn(x) for x in items] +5 | +6 | foo, bar, baz = [fn(x) for x in items] + | ^^^^^^^^^^^^^^^^^^^^^^ UP027 +7 | +8 | foo, bar, baz = [[i for i in fn(x)] for x in items] + | + = help: Replace with generator expression + +ℹ Safe fix +3 3 | +4 4 | foo, bar, baz =[fn(x) for x in items] +5 5 | +6 |-foo, bar, baz = [fn(x) for x in items] + 6 |+foo, bar, baz = (fn(x) for x in items) +7 7 | +8 8 | foo, bar, baz = [[i for i in fn(x)] for x in items] +9 9 | + +UP027.py:8:17: UP027 [*] Replace unpacked list comprehension with a generator expression + | + 6 | foo, bar, baz = [fn(x) for x in items] + 7 | + 8 | foo, bar, baz = [[i for i in fn(x)] for x in items] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP027 + 9 | +10 | foo, bar, baz = [ + | + = help: Replace with generator expression + +ℹ Safe fix +5 5 | +6 6 | foo, bar, baz = [fn(x) for x in items] +7 7 | +8 |-foo, bar, baz = [[i for i in fn(x)] for x in items] + 8 |+foo, bar, baz = ([i for i in fn(x)] for x in items) +9 9 | +10 10 | foo, bar, baz = [ +11 11 | fn(x) + +UP027.py:10:17: UP027 [*] Replace unpacked list comprehension with a generator expression + | + 8 | foo, bar, baz = [[i for i in fn(x)] for x in items] + 9 | +10 | foo, bar, baz = [ + | _________________^ +11 | | fn(x) +12 | | for x in items +13 | | ] + | |_^ UP027 +14 | +15 | # Should not change + | + = help: Replace with generator expression + +ℹ Safe fix +7 7 | +8 8 | foo, bar, baz = [[i for i in fn(x)] for x in items] +9 9 | +10 |-foo, bar, baz = [ + 10 |+foo, bar, baz = ( +11 11 | fn(x) +12 12 | for x in items +13 |-] + 13 |+) +14 14 | +15 15 | # Should not change +16 16 | foo = [fn(x) for x in items] diff --git a/crates/ruff_linter/src/rules/ruff/rules/invalid_formatter_suppression_comment.rs b/crates/ruff_linter/src/rules/ruff/rules/invalid_formatter_suppression_comment.rs index 50945f5b98..76a8a1fa6d 100644 --- a/crates/ruff_linter/src/rules/ruff/rules/invalid_formatter_suppression_comment.rs +++ b/crates/ruff_linter/src/rules/ruff/rules/invalid_formatter_suppression_comment.rs @@ -339,5 +339,8 @@ const fn is_valid_enclosing_node(node: AnyNodeRef) -> bool { | AnyNodeRef::FString(_) | AnyNodeRef::StringLiteral(_) | AnyNodeRef::BytesLiteral(_) => false, + AnyNodeRef::FStringInvalidElement(_) + | AnyNodeRef::ExprInvalid(_) + | AnyNodeRef::PatternMatchInvalid(_) => unreachable!(), } } diff --git a/crates/ruff_python_ast/src/nodes.rs b/crates/ruff_python_ast/src/nodes.rs index 8cabc9f065..f3fcd9b193 100644 --- a/crates/ruff_python_ast/src/nodes.rs +++ b/crates/ruff_python_ast/src/nodes.rs @@ -555,7 +555,6 @@ impl From for Stmt { } /// See also [expr](https://docs.python.org/3/library/ast.html#ast.expr) -#[allow(deprecated)] #[derive(Clone, Debug, PartialEq, is_macro::Is)] pub enum Expr { #[is(name = "bool_op_expr")] @@ -625,9 +624,8 @@ pub enum Expr { #[is(name = "ipy_escape_command_expr")] IpyEscapeCommand(ExprIpyEscapeCommand), + // TODO(dhruvmanila): Remove this variant #[is(name = "invalid_expr")] - #[deprecated] - #[allow(deprecated)] Invalid(ExprInvalid), } @@ -1229,13 +1227,11 @@ impl From for Expr { } #[derive(Clone, Debug, PartialEq, is_macro::Is)] -#[allow(deprecated)] pub enum FStringElement { Literal(FStringLiteralElement), Expression(FStringExpressionElement), - #[allow(deprecated)] - #[deprecated] + // TODO(dhruvmanila): Remove this variant Invalid(FStringInvalidElement), } @@ -2707,7 +2703,6 @@ pub struct MatchCase { /// See also [pattern](https://docs.python.org/3/library/ast.html#ast.pattern) #[derive(Clone, Debug, PartialEq, is_macro::Is)] -#[allow(deprecated)] pub enum Pattern { MatchValue(PatternMatchValue), MatchSingleton(PatternMatchSingleton), @@ -2717,7 +2712,8 @@ pub enum Pattern { MatchStar(PatternMatchStar), MatchAs(PatternMatchAs), MatchOr(PatternMatchOr), - #[deprecated] + + // TODO(dhruvmanila): Remove this variant Invalid(PatternMatchInvalid), } diff --git a/crates/ruff_python_formatter/src/comments/snapshots/ruff_python_formatter__comments__tests__only_comments.snap b/crates/ruff_python_formatter/src/comments/snapshots/ruff_python_formatter__comments__tests__only_comments.snap index 8f5f96bd72..49f7ca154b 100644 --- a/crates/ruff_python_formatter/src/comments/snapshots/ruff_python_formatter__comments__tests__only_comments.snap +++ b/crates/ruff_python_formatter/src/comments/snapshots/ruff_python_formatter__comments__tests__only_comments.snap @@ -5,8 +5,8 @@ expression: comments.debug(test_case.source_code) { Node { kind: ModModule, - range: 0..35, - source: `⏎`, + range: 0..0, + source: ``, }: { "leading": [ SourceComment { diff --git a/crates/ruff_python_formatter/src/other/f_string_element.rs b/crates/ruff_python_formatter/src/other/f_string_element.rs index 024276c616..f7fba23719 100644 --- a/crates/ruff_python_formatter/src/other/f_string_element.rs +++ b/crates/ruff_python_formatter/src/other/f_string_element.rs @@ -37,6 +37,8 @@ impl Format> for FormatFStringElement<'_> { FStringElement::Expression(expression) => { FormatFStringExpressionElement::new(expression, self.context).fmt(f) } + #[allow(deprecated)] + FStringElement::Invalid(_) => unreachable!(), } } } diff --git a/crates/ruff_python_parser/src/parser/expression.rs b/crates/ruff_python_parser/src/parser/expression.rs index 15510d9996..867bbf5530 100644 --- a/crates/ruff_python_parser/src/parser/expression.rs +++ b/crates/ruff_python_parser/src/parser/expression.rs @@ -1674,7 +1674,7 @@ enum Precedence { } impl Precedence { - fn increment_precedence(&self) -> Precedence { + fn increment_precedence(self) -> Precedence { match self { Precedence::Or => Precedence::And, Precedence::And => Precedence::Not, diff --git a/crates/ruff_python_parser/src/parser/mod.rs b/crates/ruff_python_parser/src/parser/mod.rs index ccce8a0e8f..568349d2ac 100644 --- a/crates/ruff_python_parser/src/parser/mod.rs +++ b/crates/ruff_python_parser/src/parser/mod.rs @@ -487,9 +487,8 @@ impl<'src> Parser<'src> { if self.eat(TokenKind::Comma) { trailing_comma_range = Some(maybe_comma_range); continue; - } else { - trailing_comma_range = None; } + trailing_comma_range = None; if kind.is_list_terminator(self) { break; diff --git a/crates/ruff_python_parser/src/parser/pattern.rs b/crates/ruff_python_parser/src/parser/pattern.rs index 9373b4638e..0d3ef8e059 100644 --- a/crates/ruff_python_parser/src/parser/pattern.rs +++ b/crates/ruff_python_parser/src/parser/pattern.rs @@ -428,7 +428,7 @@ impl<'src> Parser<'src> { Pattern::MatchAs(ast::PatternMatchAs { range, pattern: None, - name: if name.contains("_") { + name: if name.contains('_') { None } else { Some(ast::Identifier { diff --git a/crates/ruff_python_parser/src/parser/statement.rs b/crates/ruff_python_parser/src/parser/statement.rs index c6c01dc556..5992706723 100644 --- a/crates/ruff_python_parser/src/parser/statement.rs +++ b/crates/ruff_python_parser/src/parser/statement.rs @@ -375,7 +375,7 @@ impl<'src> Parser<'src> { let parenthesized = self.eat(TokenKind::Lpar); let names = - self.parse_delimited_list(RecoveryContextKind::ImportNames, |p| p.parse_alias(), true); + self.parse_delimited_list(RecoveryContextKind::ImportNames, Parser::parse_alias, true); if parenthesized { self.expect(TokenKind::Rpar); @@ -1460,7 +1460,7 @@ impl<'src> Parser<'src> { let type_params = self.parse_delimited_list( RecoveryContextKind::TypeParams, - |p| p.parse_type_param(), + Parser::parse_type_param, true, ); diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_await_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_await_expr.snap index 83c56f825e..3ff84a4aa7 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_await_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_await_expr.snap @@ -326,8 +326,8 @@ Program { Expr( StmtExpr { range: 122..147, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 122..147, test: BooleanLiteral( ExprBooleanLiteral { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_call_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_call_expr.snap index 8b9ac9ce82..4d011afc4f 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_call_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_call_expr.snap @@ -540,8 +540,8 @@ Program { range: 228..229, }, ), - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 230..249, test: BooleanLiteral( ExprBooleanLiteral { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_decorators.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_decorators.snap index cf08786f6c..90829b843f 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_decorators.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_decorators.snap @@ -286,8 +286,8 @@ Program { decorator_list: [ Decorator { range: 94..112, - expression: NamedExpr( - ExprNamedExpr { + expression: Named( + ExprNamed { range: 95..112, target: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_dict_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_dict_expr.snap index d75410dfaa..8d75d2c885 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_dict_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_dict_expr.snap @@ -622,8 +622,8 @@ Program { arguments: Arguments { range: 203..227, args: [ - GeneratorExp( - ExprGeneratorExp { + Generator( + ExprGenerator { range: 204..226, elt: Name( ExprName { @@ -678,6 +678,7 @@ Program { is_async: false, }, ], + parenthesized: false, }, ), ], diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_generator_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_generator_expr.snap index b07ea320b4..0445c86763 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_generator_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_generator_expr.snap @@ -10,8 +10,8 @@ Program { Expr( StmtExpr { range: 1..18, - value: GeneratorExp( - ExprGeneratorExp { + value: Generator( + ExprGenerator { range: 1..18, elt: Name( ExprName { @@ -41,6 +41,7 @@ Program { is_async: false, }, ], + parenthesized: true, }, ), }, @@ -48,8 +49,8 @@ Program { Expr( StmtExpr { range: 19..42, - value: GeneratorExp( - ExprGeneratorExp { + value: Generator( + ExprGenerator { range: 19..42, elt: Name( ExprName { @@ -79,6 +80,7 @@ Program { is_async: true, }, ], + parenthesized: true, }, ), }, @@ -86,8 +88,8 @@ Program { Expr( StmtExpr { range: 43..84, - value: GeneratorExp( - ExprGeneratorExp { + value: Generator( + ExprGenerator { range: 43..84, elt: Name( ExprName { @@ -171,6 +173,7 @@ Program { is_async: false, }, ], + parenthesized: true, }, ), }, @@ -178,8 +181,8 @@ Program { Expr( StmtExpr { range: 85..130, - value: GeneratorExp( - ExprGeneratorExp { + value: Generator( + ExprGenerator { range: 85..130, elt: Name( ExprName { @@ -276,6 +279,7 @@ Program { is_async: false, }, ], + parenthesized: true, }, ), }, @@ -283,8 +287,8 @@ Program { Expr( StmtExpr { range: 131..182, - value: GeneratorExp( - ExprGeneratorExp { + value: Generator( + ExprGenerator { range: 131..182, elt: Name( ExprName { @@ -381,6 +385,7 @@ Program { is_async: true, }, ], + parenthesized: true, }, ), }, @@ -401,8 +406,8 @@ Program { arguments: Arguments { range: 184..198, args: [ - GeneratorExp( - ExprGeneratorExp { + Generator( + ExprGenerator { range: 185..197, elt: Name( ExprName { @@ -432,6 +437,7 @@ Program { is_async: false, }, ], + parenthesized: false, }, ), ], @@ -464,8 +470,8 @@ Program { ctx: Load, }, ), - GeneratorExp( - ExprGeneratorExp { + Generator( + ExprGenerator { range: 204..216, elt: Name( ExprName { @@ -495,6 +501,7 @@ Program { is_async: false, }, ], + parenthesized: false, }, ), ], @@ -527,8 +534,8 @@ Program { ctx: Load, }, ), - GeneratorExp( - ExprGeneratorExp { + Generator( + ExprGenerator { range: 223..238, elt: Name( ExprName { @@ -574,6 +581,7 @@ Program { is_async: false, }, ], + parenthesized: false, }, ), ], diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_else_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_else_expr.snap index 04f08d2b10..ec8f44d522 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_else_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_else_expr.snap @@ -10,8 +10,8 @@ Program { Expr( StmtExpr { range: 1..17, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 1..17, test: BooleanLiteral( ExprBooleanLiteral { @@ -40,8 +40,8 @@ Program { Expr( StmtExpr { range: 18..36, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 18..36, test: Name( ExprName { @@ -79,8 +79,8 @@ Program { Expr( StmtExpr { range: 37..62, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 37..62, test: Name( ExprName { @@ -96,8 +96,8 @@ Program { ctx: Load, }, ), - orelse: IfExp( - ExprIfExp { + orelse: If( + ExprIf { range: 49..62, test: Name( ExprName { @@ -129,8 +129,8 @@ Program { Expr( StmtExpr { range: 63..85, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 63..85, test: Compare( ExprCompare { @@ -200,8 +200,8 @@ Program { Expr( StmtExpr { range: 86..109, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 86..109, test: Name( ExprName { @@ -245,8 +245,8 @@ Program { Expr( StmtExpr { range: 110..128, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 110..128, test: Name( ExprName { @@ -293,8 +293,8 @@ Program { Expr( StmtExpr { range: 129..155, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 129..155, test: BoolOp( ExprBoolOp { @@ -349,8 +349,8 @@ Program { ), }, ), - IfExp( - ExprIfExp { + If( + ExprIf { range: 159..172, test: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_stmt.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_stmt.snap index 70b9948f63..e56b16802b 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_stmt.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_if_stmt.snap @@ -287,8 +287,8 @@ Program { If( StmtIf { range: 175..187, - test: NamedExpr( - ExprNamedExpr { + test: Named( + ExprNamed { range: 178..182, target: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_comp_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_comp_expr.snap index 78a0b94af1..8ae4ef7461 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_comp_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_comp_expr.snap @@ -624,8 +624,8 @@ Program { ctx: Store, }, ), - iter: IfExp( - ExprIfExp { + iter: If( + ExprIf { range: 287..303, test: BooleanLiteral( ExprBooleanLiteral { @@ -688,8 +688,8 @@ Program { ctx: Store, }, ), - iter: IfExp( - ExprIfExp { + iter: If( + ExprIf { range: 324..346, test: BooleanLiteral( ExprBooleanLiteral { @@ -760,8 +760,8 @@ Program { iter: Await( ExprAwait { range: 366..390, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 373..389, test: BooleanLiteral( ExprBooleanLiteral { @@ -839,8 +839,8 @@ Program { arguments: Arguments { range: 410..429, args: [ - IfExp( - ExprIfExp { + If( + ExprIf { range: 411..428, test: BooleanLiteral( ExprBooleanLiteral { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_expr.snap index a54e8b8753..4d4ecf8033 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_list_expr.snap @@ -268,8 +268,8 @@ Program { arguments: Arguments { range: 76..100, args: [ - GeneratorExp( - ExprGeneratorExp { + Generator( + ExprGenerator { range: 77..99, elt: Call( ExprCall { @@ -337,6 +337,7 @@ Program { is_async: false, }, ], + parenthesized: false, }, ), ], diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_match_stmt.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_match_stmt.snap index 8e68f5f58f..547d314365 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_match_stmt.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_match_stmt.snap @@ -2124,8 +2124,8 @@ Program { Match( StmtMatch { range: 1516..1610, - subject: NamedExpr( - ExprNamedExpr { + subject: Named( + ExprNamed { range: 1522..1528, target: Name( ExprName { @@ -2309,8 +2309,8 @@ Program { }, ), guard: Some( - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 1651..1657, target: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_named_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_named_expr.snap index d6fedec5f4..58eee292a2 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_named_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_named_expr.snap @@ -10,8 +10,8 @@ Program { Expr( StmtExpr { range: 1..7, - value: NamedExpr( - ExprNamedExpr { + value: Named( + ExprNamed { range: 2..6, target: Name( ExprName { @@ -39,8 +39,8 @@ Program { ExprSet { range: 8..18, elts: [ - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 10..16, target: Name( ExprName { @@ -71,8 +71,8 @@ Program { ExprList { range: 19..27, elts: [ - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 20..26, target: Name( ExprName { @@ -100,8 +100,8 @@ Program { Expr( StmtExpr { range: 28..40, - value: NamedExpr( - ExprNamedExpr { + value: Named( + ExprNamed { range: 29..39, target: Name( ExprName { @@ -150,8 +150,8 @@ Program { ctx: Load, }, ), - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 44..56, target: Name( ExprName { @@ -205,8 +205,8 @@ Program { ctx: Load, }, ), - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 62..72, target: Name( ExprName { @@ -260,8 +260,8 @@ Program { ctx: Load, }, ), - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 78..86, target: Name( ExprName { @@ -299,8 +299,8 @@ Program { arguments: Arguments { range: 89..101, args: [ - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 90..94, target: Name( ExprName { @@ -318,8 +318,8 @@ Program { ), }, ), - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 96..100, target: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_simple_stmts.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_simple_stmts.snap index ed65908a33..41da2b5d7b 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_simple_stmts.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_simple_stmts.snap @@ -108,8 +108,8 @@ Program { Expr( StmtExpr { range: 44..57, - value: IfExp( - ExprIfExp { + value: If( + ExprIf { range: 44..57, test: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_subscript_expr.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_subscript_expr.snap index b3f0849039..8681d3112b 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_subscript_expr.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_subscript_expr.snap @@ -692,8 +692,8 @@ Program { ctx: Load, }, ), - slice: NamedExpr( - ExprNamedExpr { + slice: Named( + ExprNamed { range: 123..129, target: Name( ExprName { @@ -867,8 +867,8 @@ Program { ExprSlice { range: 161..168, lower: Some( - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 162..166, target: Name( ExprName { @@ -914,8 +914,8 @@ Program { ExprSlice { range: 172..180, lower: Some( - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 173..177, target: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_while_stmt.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_while_stmt.snap index 84993da422..cd5d9e8739 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_while_stmt.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_while_stmt.snap @@ -224,8 +224,8 @@ Program { While( StmtWhile { range: 152..169, - test: NamedExpr( - ExprNamedExpr { + test: Named( + ExprNamed { range: 158..164, target: Name( ExprName { diff --git a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_with_stmt.snap b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_with_stmt.snap index 289f2c7aac..7e146abcab 100644 --- a/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_with_stmt.snap +++ b/crates/ruff_python_parser/src/parser/tests/snapshots/ruff_python_parser__parser__tests__parser__tests__parse_with_stmt.snap @@ -550,8 +550,8 @@ Program { items: [ WithItem { range: 291..297, - context_expr: NamedExpr( - ExprNamedExpr { + context_expr: Named( + ExprNamed { range: 291..297, target: Name( ExprName { @@ -685,8 +685,8 @@ Program { ExprTuple { range: 365..376, elts: [ - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 366..372, target: Name( ExprName { diff --git a/crates/ruff_python_parser/src/string.rs b/crates/ruff_python_parser/src/string.rs index e87e293ddb..5fbafdbad7 100644 --- a/crates/ruff_python_parser/src/string.rs +++ b/crates/ruff_python_parser/src/string.rs @@ -76,7 +76,7 @@ impl StringParser { #[inline] fn range(&self, start_location: TextSize) -> TextRange { - TextRange::new(dbg!(start_location), dbg!(self.offset)) + TextRange::new(start_location, self.offset) } /// Returns the next byte in the string, if there is one. diff --git a/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__invalid_assignment_targets.py.snap b/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__invalid_assignment_targets.py.snap index 57f4abf1fc..09af88d162 100644 --- a/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__invalid_assignment_targets.py.snap +++ b/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__invalid_assignment_targets.py.snap @@ -126,8 +126,8 @@ Module( StmtAssign { range: 315..328, targets: [ - NamedExpr( - ExprNamedExpr { + Named( + ExprNamed { range: 316..322, target: Name( ExprName { @@ -275,8 +275,8 @@ Module( StmtAssign { range: 367..385, targets: [ - IfExp( - ExprIfExp { + If( + ExprIf { range: 367..380, test: Name( ExprName { @@ -558,8 +558,8 @@ Module( StmtAssign { range: 479..499, targets: [ - GeneratorExp( - ExprGeneratorExp { + Generator( + ExprGenerator { range: 479..494, elt: Name( ExprName { @@ -589,6 +589,7 @@ Module( is_async: false, }, ], + parenthesized: true, }, ), ], @@ -1667,6 +1668,3 @@ Module( 53 | (x, foo(), y) = (42, 42, 42) | ^^^^^^^^^^^^^ Syntax Error: invalid assignment target | - - - diff --git a/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__named_expression_statement.py.snap b/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__named_expression_statement.py.snap index 346e20396b..92af7eeece 100644 --- a/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__named_expression_statement.py.snap +++ b/crates/ruff_python_parser/tests/snapshots/invalid_syntax@statements__named_expression_statement.py.snap @@ -12,8 +12,8 @@ Module( Expr( StmtExpr { range: 120..128, - value: NamedExpr( - ExprNamedExpr { + value: Named( + ExprNamed { range: 121..127, target: NumberLiteral( ExprNumberLiteral { @@ -47,6 +47,3 @@ Module( 3 | (5 := 3) | ^ Syntax Error: invalid assignment target | - - - diff --git a/crates/ruff_python_parser/tests/snapshots/valid_syntax@expressions__named_expression.py.snap b/crates/ruff_python_parser/tests/snapshots/valid_syntax@expressions__named_expression.py.snap index a6ca4b0b1c..05b271bcbf 100644 --- a/crates/ruff_python_parser/tests/snapshots/valid_syntax@expressions__named_expression.py.snap +++ b/crates/ruff_python_parser/tests/snapshots/valid_syntax@expressions__named_expression.py.snap @@ -12,8 +12,8 @@ Module( If( StmtIf { range: 0..19, - test: NamedExpr( - ExprNamedExpr { + test: Named( + ExprNamed { range: 3..9, target: Name( ExprName { @@ -45,8 +45,8 @@ Module( Expr( StmtExpr { range: 21..29, - value: NamedExpr( - ExprNamedExpr { + value: Named( + ExprNamed { range: 22..28, target: Name( ExprName { @@ -71,4 +71,3 @@ Module( }, ) ``` - diff --git a/pyproject.toml b/pyproject.toml index 1a0b2cf3a8..4e8ae9e68f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -59,7 +59,8 @@ include = [ [tool.ruff] extend-exclude = [ "crates/ruff_linter/resources/", - "crates/ruff_python_formatter/resources/" + "crates/ruff_python_formatter/resources/", + "crates/ruff_python_parser/resources/" ] [tool.black]