diff --git a/crates/ruff_linter/resources/test/fixtures/pylint/redeclared_assigned_name.py b/crates/ruff_linter/resources/test/fixtures/pylint/redeclared_assigned_name.py index 8f19c74f8fef49..d105b1e62d78a9 100644 --- a/crates/ruff_linter/resources/test/fixtures/pylint/redeclared_assigned_name.py +++ b/crates/ruff_linter/resources/test/fixtures/pylint/redeclared_assigned_name.py @@ -3,4 +3,4 @@ FIRST, (FIRST, SECOND, (THIRD, FIRST)) = (1, (1, 2)) # PLW0128 FIRST, SECOND, THIRD, FIRST, SECOND = (1, 2, 3, 4) # PLW0128 -FIRST, SECOND = (1, 2) # OK +FIRST, SECOND, _, _ = (1, 2, 3, 4) # OK diff --git a/crates/ruff_linter/src/rules/pylint/rules/redeclared_assigned_name.rs b/crates/ruff_linter/src/rules/pylint/rules/redeclared_assigned_name.rs index daa2229126b86c..ae1849e0866303 100644 --- a/crates/ruff_linter/src/rules/pylint/rules/redeclared_assigned_name.rs +++ b/crates/ruff_linter/src/rules/pylint/rules/redeclared_assigned_name.rs @@ -44,6 +44,10 @@ fn check_expr(checker: &mut Checker, expr: &Expr, names: &mut Vec) { } } Expr::Name(ast::ExprName { id, .. }) => { + if *id == "_" { + // Ignore `_` assignments + return; + } if names.contains(id) { checker.diagnostics.push(Diagnostic::new( RedeclaredAssignedName { diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0128_redeclared_assigned_name.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0128_redeclared_assigned_name.py.snap index cd8d042bddd809..c6afc0461d3144 100644 --- a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0128_redeclared_assigned_name.py.snap +++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0128_redeclared_assigned_name.py.snap @@ -43,7 +43,7 @@ redeclared_assigned_name.py:4:23: PLW0128 Redeclared variable `FIRST` in assignm 4 | FIRST, SECOND, THIRD, FIRST, SECOND = (1, 2, 3, 4) # PLW0128 | ^^^^^ PLW0128 5 | -6 | FIRST, SECOND = (1, 2) # OK +6 | FIRST, SECOND, _, _ = (1, 2, 3, 4) # OK | redeclared_assigned_name.py:4:30: PLW0128 Redeclared variable `SECOND` in assignment @@ -53,7 +53,7 @@ redeclared_assigned_name.py:4:30: PLW0128 Redeclared variable `SECOND` in assign 4 | FIRST, SECOND, THIRD, FIRST, SECOND = (1, 2, 3, 4) # PLW0128 | ^^^^^^ PLW0128 5 | -6 | FIRST, SECOND = (1, 2) # OK +6 | FIRST, SECOND, _, _ = (1, 2, 3, 4) # OK |