From 77f170b97c220a0babe8c83489f7c47215bb10c7 Mon Sep 17 00:00:00 2001 From: Steve C Date: Sat, 17 Aug 2024 16:06:39 -0400 Subject: [PATCH 1/3] [`pylint`] - remove AugAssign errors from `self-cls-assignment` (`W0642`) --- .../fixtures/pylint/self_or_cls_assignment.py | 2 - .../src/checkers/ast/analyze/statement.rs | 3 - ...ts__PLW0642_self_or_cls_assignment.py.snap | 168 ++++++++---------- 3 files changed, 73 insertions(+), 100 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py b/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py index 999b930ffe7bd..a2c9137f2a944 100644 --- a/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py +++ b/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py @@ -3,7 +3,6 @@ class Fruit: def list_fruits(cls) -> None: cls = "apple" # PLW0642 cls: Fruit = "apple" # PLW0642 - cls += "orange" # PLW0642 *cls = "banana" # PLW0642 cls, blah = "apple", "orange" # PLW0642 blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 @@ -16,7 +15,6 @@ def add_fruits(cls, fruits, /) -> None: def print_color(self) -> None: self = "red" # PLW0642 self: Self = "red" # PLW0642 - self += "blue" # PLW0642 *self = "blue" # PLW0642 self, blah = "red", "blue" # PLW0642 blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 diff --git a/crates/ruff_linter/src/checkers/ast/analyze/statement.rs b/crates/ruff_linter/src/checkers/ast/analyze/statement.rs index 349a81df2f195..7cbd4db520c8d 100644 --- a/crates/ruff_linter/src/checkers/ast/analyze/statement.rs +++ b/crates/ruff_linter/src/checkers/ast/analyze/statement.rs @@ -1112,9 +1112,6 @@ pub(crate) fn statement(stmt: &Stmt, checker: &mut Checker) { } } Stmt::AugAssign(aug_assign @ ast::StmtAugAssign { target, .. }) => { - if checker.enabled(Rule::SelfOrClsAssignment) { - pylint::rules::self_or_cls_assignment(checker, target); - } if checker.enabled(Rule::GlobalStatement) { if let Expr::Name(ast::ExprName { id, .. }) = target.as_ref() { pylint::rules::global_statement(checker, id); diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap index 428b6fb98f3e0..abeff8ed45f44 100644 --- a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap +++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap @@ -8,7 +8,7 @@ self_or_cls_assignment.py:4:9: PLW0642 Reassigned `cls` variable in class method 4 | cls = "apple" # PLW0642 | ^^^ PLW0642 5 | cls: Fruit = "apple" # PLW0642 -6 | cls += "orange" # PLW0642 +6 | *cls = "banana" # PLW0642 | = help: Consider using a different variable name @@ -18,157 +18,135 @@ self_or_cls_assignment.py:5:9: PLW0642 Reassigned `cls` variable in class method 4 | cls = "apple" # PLW0642 5 | cls: Fruit = "apple" # PLW0642 | ^^^ PLW0642 -6 | cls += "orange" # PLW0642 -7 | *cls = "banana" # PLW0642 +6 | *cls = "banana" # PLW0642 +7 | cls, blah = "apple", "orange" # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:6:9: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:6:10: PLW0642 Reassigned `cls` variable in class method | 4 | cls = "apple" # PLW0642 5 | cls: Fruit = "apple" # PLW0642 -6 | cls += "orange" # PLW0642 - | ^^^ PLW0642 -7 | *cls = "banana" # PLW0642 -8 | cls, blah = "apple", "orange" # PLW0642 +6 | *cls = "banana" # PLW0642 + | ^^^ PLW0642 +7 | cls, blah = "apple", "orange" # PLW0642 +8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:7:10: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:7:9: PLW0642 Reassigned `cls` variable in class method | 5 | cls: Fruit = "apple" # PLW0642 -6 | cls += "orange" # PLW0642 -7 | *cls = "banana" # PLW0642 - | ^^^ PLW0642 -8 | cls, blah = "apple", "orange" # PLW0642 -9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 +6 | *cls = "banana" # PLW0642 +7 | cls, blah = "apple", "orange" # PLW0642 + | ^^^ PLW0642 +8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 +9 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:8:9: PLW0642 Reassigned `cls` variable in class method - | - 6 | cls += "orange" # PLW0642 - 7 | *cls = "banana" # PLW0642 - 8 | cls, blah = "apple", "orange" # PLW0642 - | ^^^ PLW0642 - 9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 -10 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 - | - = help: Consider using a different variable name +self_or_cls_assignment.py:8:16: PLW0642 Reassigned `cls` variable in class method + | +6 | *cls = "banana" # PLW0642 +7 | cls, blah = "apple", "orange" # PLW0642 +8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 + | ^^^ PLW0642 +9 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 + | + = help: Consider using a different variable name self_or_cls_assignment.py:9:16: PLW0642 Reassigned `cls` variable in class method | - 7 | *cls = "banana" # PLW0642 - 8 | cls, blah = "apple", "orange" # PLW0642 - 9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 + 7 | cls, blah = "apple", "orange" # PLW0642 + 8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 + 9 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 | ^^^ PLW0642 -10 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 +10 | +11 | @classmethod | = help: Consider using a different variable name -self_or_cls_assignment.py:10:16: PLW0642 Reassigned `cls` variable in class method - | - 8 | cls, blah = "apple", "orange" # PLW0642 - 9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 -10 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 - | ^^^ PLW0642 -11 | -12 | @classmethod +self_or_cls_assignment.py:13:9: PLW0642 Reassigned `cls` variable in class method | - = help: Consider using a different variable name - -self_or_cls_assignment.py:14:9: PLW0642 Reassigned `cls` variable in class method - | -12 | @classmethod -13 | def add_fruits(cls, fruits, /) -> None: -14 | cls = fruits # PLW0642 +11 | @classmethod +12 | def add_fruits(cls, fruits, /) -> None: +13 | cls = fruits # PLW0642 | ^^^ PLW0642 -15 | -16 | def print_color(self) -> None: - | - = help: Consider using a different variable name - -self_or_cls_assignment.py:17:9: PLW0642 Reassigned `self` variable in instance method - | -16 | def print_color(self) -> None: -17 | self = "red" # PLW0642 - | ^^^^ PLW0642 -18 | self: Self = "red" # PLW0642 -19 | self += "blue" # PLW0642 +14 | +15 | def print_color(self) -> None: | = help: Consider using a different variable name -self_or_cls_assignment.py:18:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:16:9: PLW0642 Reassigned `self` variable in instance method | -16 | def print_color(self) -> None: -17 | self = "red" # PLW0642 -18 | self: Self = "red" # PLW0642 +15 | def print_color(self) -> None: +16 | self = "red" # PLW0642 | ^^^^ PLW0642 -19 | self += "blue" # PLW0642 -20 | *self = "blue" # PLW0642 +17 | self: Self = "red" # PLW0642 +18 | *self = "blue" # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:19:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:17:9: PLW0642 Reassigned `self` variable in instance method | -17 | self = "red" # PLW0642 -18 | self: Self = "red" # PLW0642 -19 | self += "blue" # PLW0642 +15 | def print_color(self) -> None: +16 | self = "red" # PLW0642 +17 | self: Self = "red" # PLW0642 | ^^^^ PLW0642 -20 | *self = "blue" # PLW0642 -21 | self, blah = "red", "blue" # PLW0642 +18 | *self = "blue" # PLW0642 +19 | self, blah = "red", "blue" # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:20:10: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:18:10: PLW0642 Reassigned `self` variable in instance method | -18 | self: Self = "red" # PLW0642 -19 | self += "blue" # PLW0642 -20 | *self = "blue" # PLW0642 +16 | self = "red" # PLW0642 +17 | self: Self = "red" # PLW0642 +18 | *self = "blue" # PLW0642 | ^^^^ PLW0642 -21 | self, blah = "red", "blue" # PLW0642 -22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +19 | self, blah = "red", "blue" # PLW0642 +20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:21:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:19:9: PLW0642 Reassigned `self` variable in instance method | -19 | self += "blue" # PLW0642 -20 | *self = "blue" # PLW0642 -21 | self, blah = "red", "blue" # PLW0642 +17 | self: Self = "red" # PLW0642 +18 | *self = "blue" # PLW0642 +19 | self, blah = "red", "blue" # PLW0642 | ^^^^ PLW0642 -22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 -23 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 +20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +21 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:22:16: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:20:16: PLW0642 Reassigned `self` variable in instance method | -20 | *self = "blue" # PLW0642 -21 | self, blah = "red", "blue" # PLW0642 -22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +18 | *self = "blue" # PLW0642 +19 | self, blah = "red", "blue" # PLW0642 +20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 | ^^^^ PLW0642 -23 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 +21 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:23:16: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:21:16: PLW0642 Reassigned `self` variable in instance method | -21 | self, blah = "red", "blue" # PLW0642 -22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 -23 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 +19 | self, blah = "red", "blue" # PLW0642 +20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +21 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 | ^^^^ PLW0642 -24 | -25 | def print_color(self, color, /) -> None: +22 | +23 | def print_color(self, color, /) -> None: | = help: Consider using a different variable name -self_or_cls_assignment.py:26:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:24:9: PLW0642 Reassigned `self` variable in instance method | -25 | def print_color(self, color, /) -> None: -26 | self = color +23 | def print_color(self, color, /) -> None: +24 | self = color | ^^^^ PLW0642 -27 | -28 | def ok(self) -> None: +25 | +26 | def ok(self) -> None: | = help: Consider using a different variable name From 5ca6377058e9232a2b92b49f6aca638c31f081dc Mon Sep 17 00:00:00 2001 From: Steve C Date: Sat, 17 Aug 2024 16:15:51 -0400 Subject: [PATCH 2/3] keep the aug assigns in tests/snapshots --- .../fixtures/pylint/self_or_cls_assignment.py | 2 + ...ts__PLW0642_self_or_cls_assignment.py.snap | 175 +++++++++--------- 2 files changed, 90 insertions(+), 87 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py b/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py index a2c9137f2a944..bc92106a87d9a 100644 --- a/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py +++ b/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py @@ -1,6 +1,7 @@ class Fruit: @classmethod def list_fruits(cls) -> None: + cls += "orange" # OK, augmented assignments are ignored cls = "apple" # PLW0642 cls: Fruit = "apple" # PLW0642 *cls = "banana" # PLW0642 @@ -13,6 +14,7 @@ def add_fruits(cls, fruits, /) -> None: cls = fruits # PLW0642 def print_color(self) -> None: + self += "blue" # OK, augmented assignments are ignored self = "red" # PLW0642 self: Self = "red" # PLW0642 *self = "blue" # PLW0642 diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap index abeff8ed45f44..998dac141b534 100644 --- a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap +++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap @@ -1,152 +1,153 @@ --- source: crates/ruff_linter/src/rules/pylint/mod.rs --- -self_or_cls_assignment.py:4:9: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:5:9: PLW0642 Reassigned `cls` variable in class method | -2 | @classmethod 3 | def list_fruits(cls) -> None: -4 | cls = "apple" # PLW0642 +4 | cls += "orange" # OK, augmented assignments are ignored +5 | cls = "apple" # PLW0642 | ^^^ PLW0642 -5 | cls: Fruit = "apple" # PLW0642 -6 | *cls = "banana" # PLW0642 +6 | cls: Fruit = "apple" # PLW0642 +7 | *cls = "banana" # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:5:9: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:6:9: PLW0642 Reassigned `cls` variable in class method | -3 | def list_fruits(cls) -> None: -4 | cls = "apple" # PLW0642 -5 | cls: Fruit = "apple" # PLW0642 +4 | cls += "orange" # OK, augmented assignments are ignored +5 | cls = "apple" # PLW0642 +6 | cls: Fruit = "apple" # PLW0642 | ^^^ PLW0642 -6 | *cls = "banana" # PLW0642 -7 | cls, blah = "apple", "orange" # PLW0642 +7 | *cls = "banana" # PLW0642 +8 | cls, blah = "apple", "orange" # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:6:10: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:7:10: PLW0642 Reassigned `cls` variable in class method | -4 | cls = "apple" # PLW0642 -5 | cls: Fruit = "apple" # PLW0642 -6 | *cls = "banana" # PLW0642 +5 | cls = "apple" # PLW0642 +6 | cls: Fruit = "apple" # PLW0642 +7 | *cls = "banana" # PLW0642 | ^^^ PLW0642 -7 | cls, blah = "apple", "orange" # PLW0642 -8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 +8 | cls, blah = "apple", "orange" # PLW0642 +9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:7:9: PLW0642 Reassigned `cls` variable in class method - | -5 | cls: Fruit = "apple" # PLW0642 -6 | *cls = "banana" # PLW0642 -7 | cls, blah = "apple", "orange" # PLW0642 - | ^^^ PLW0642 -8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 -9 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 - | - = help: Consider using a different variable name - -self_or_cls_assignment.py:8:16: PLW0642 Reassigned `cls` variable in class method - | -6 | *cls = "banana" # PLW0642 -7 | cls, blah = "apple", "orange" # PLW0642 -8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 - | ^^^ PLW0642 -9 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 - | - = help: Consider using a different variable name +self_or_cls_assignment.py:8:9: PLW0642 Reassigned `cls` variable in class method + | + 6 | cls: Fruit = "apple" # PLW0642 + 7 | *cls = "banana" # PLW0642 + 8 | cls, blah = "apple", "orange" # PLW0642 + | ^^^ PLW0642 + 9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 +10 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 + | + = help: Consider using a different variable name self_or_cls_assignment.py:9:16: PLW0642 Reassigned `cls` variable in class method | - 7 | cls, blah = "apple", "orange" # PLW0642 - 8 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 - 9 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 + 7 | *cls = "banana" # PLW0642 + 8 | cls, blah = "apple", "orange" # PLW0642 + 9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 | ^^^ PLW0642 -10 | -11 | @classmethod +10 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:13:9: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:10:16: PLW0642 Reassigned `cls` variable in class method + | + 8 | cls, blah = "apple", "orange" # PLW0642 + 9 | blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 +10 | blah, [cls, blah2] = "apple", ("orange", "banana") # PLW0642 + | ^^^ PLW0642 +11 | +12 | @classmethod | -11 | @classmethod -12 | def add_fruits(cls, fruits, /) -> None: -13 | cls = fruits # PLW0642 + = help: Consider using a different variable name + +self_or_cls_assignment.py:14:9: PLW0642 Reassigned `cls` variable in class method + | +12 | @classmethod +13 | def add_fruits(cls, fruits, /) -> None: +14 | cls = fruits # PLW0642 | ^^^ PLW0642 -14 | -15 | def print_color(self) -> None: +15 | +16 | def print_color(self) -> None: | = help: Consider using a different variable name -self_or_cls_assignment.py:16:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:18:9: PLW0642 Reassigned `self` variable in instance method | -15 | def print_color(self) -> None: -16 | self = "red" # PLW0642 +16 | def print_color(self) -> None: +17 | self += "blue" # OK, augmented assignments are ignored +18 | self = "red" # PLW0642 | ^^^^ PLW0642 -17 | self: Self = "red" # PLW0642 -18 | *self = "blue" # PLW0642 +19 | self: Self = "red" # PLW0642 +20 | *self = "blue" # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:17:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:19:9: PLW0642 Reassigned `self` variable in instance method | -15 | def print_color(self) -> None: -16 | self = "red" # PLW0642 -17 | self: Self = "red" # PLW0642 +17 | self += "blue" # OK, augmented assignments are ignored +18 | self = "red" # PLW0642 +19 | self: Self = "red" # PLW0642 | ^^^^ PLW0642 -18 | *self = "blue" # PLW0642 -19 | self, blah = "red", "blue" # PLW0642 +20 | *self = "blue" # PLW0642 +21 | self, blah = "red", "blue" # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:18:10: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:20:10: PLW0642 Reassigned `self` variable in instance method | -16 | self = "red" # PLW0642 -17 | self: Self = "red" # PLW0642 -18 | *self = "blue" # PLW0642 +18 | self = "red" # PLW0642 +19 | self: Self = "red" # PLW0642 +20 | *self = "blue" # PLW0642 | ^^^^ PLW0642 -19 | self, blah = "red", "blue" # PLW0642 -20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +21 | self, blah = "red", "blue" # PLW0642 +22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:19:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:21:9: PLW0642 Reassigned `self` variable in instance method | -17 | self: Self = "red" # PLW0642 -18 | *self = "blue" # PLW0642 -19 | self, blah = "red", "blue" # PLW0642 +19 | self: Self = "red" # PLW0642 +20 | *self = "blue" # PLW0642 +21 | self, blah = "red", "blue" # PLW0642 | ^^^^ PLW0642 -20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 -21 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 +22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +23 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:20:16: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:22:16: PLW0642 Reassigned `self` variable in instance method | -18 | *self = "blue" # PLW0642 -19 | self, blah = "red", "blue" # PLW0642 -20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +20 | *self = "blue" # PLW0642 +21 | self, blah = "red", "blue" # PLW0642 +22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 | ^^^^ PLW0642 -21 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 +23 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 | = help: Consider using a different variable name -self_or_cls_assignment.py:21:16: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:23:16: PLW0642 Reassigned `self` variable in instance method | -19 | self, blah = "red", "blue" # PLW0642 -20 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 -21 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 +21 | self, blah = "red", "blue" # PLW0642 +22 | blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 +23 | blah, [self, blah2] = "apple", ("orange", "banana") # PLW0642 | ^^^^ PLW0642 -22 | -23 | def print_color(self, color, /) -> None: +24 | +25 | def print_color(self, color, /) -> None: | = help: Consider using a different variable name -self_or_cls_assignment.py:24:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:26:9: PLW0642 Reassigned `self` variable in instance method | -23 | def print_color(self, color, /) -> None: -24 | self = color +25 | def print_color(self, color, /) -> None: +26 | self = color | ^^^^ PLW0642 -25 | -26 | def ok(self) -> None: +27 | +28 | def ok(self) -> None: | = help: Consider using a different variable name From f9825985d520afe8c6e25d84e110becaaa2d58ac Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Sun, 18 Aug 2024 16:26:32 +0100 Subject: [PATCH 3/3] reduce diff in the snapshot --- .../fixtures/pylint/self_or_cls_assignment.py | 4 +- ...ts__PLW0642_self_or_cls_assignment.py.snap | 51 +++++++++---------- 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py b/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py index bc92106a87d9a..fe016694fc19a 100644 --- a/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py +++ b/crates/ruff_linter/resources/test/fixtures/pylint/self_or_cls_assignment.py @@ -1,9 +1,9 @@ class Fruit: @classmethod def list_fruits(cls) -> None: - cls += "orange" # OK, augmented assignments are ignored cls = "apple" # PLW0642 cls: Fruit = "apple" # PLW0642 + cls += "orange" # OK, augmented assignments are ignored *cls = "banana" # PLW0642 cls, blah = "apple", "orange" # PLW0642 blah, (cls, blah2) = "apple", ("orange", "banana") # PLW0642 @@ -14,9 +14,9 @@ def add_fruits(cls, fruits, /) -> None: cls = fruits # PLW0642 def print_color(self) -> None: - self += "blue" # OK, augmented assignments are ignored self = "red" # PLW0642 self: Self = "red" # PLW0642 + self += "blue" # OK, augmented assignments are ignored *self = "blue" # PLW0642 self, blah = "red", "blue" # PLW0642 blah, (self, blah2) = "apple", ("orange", "banana") # PLW0642 diff --git a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap index 998dac141b534..315998894e2c3 100644 --- a/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap +++ b/crates/ruff_linter/src/rules/pylint/snapshots/ruff_linter__rules__pylint__tests__PLW0642_self_or_cls_assignment.py.snap @@ -1,32 +1,32 @@ --- source: crates/ruff_linter/src/rules/pylint/mod.rs --- -self_or_cls_assignment.py:5:9: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:4:9: PLW0642 Reassigned `cls` variable in class method | +2 | @classmethod 3 | def list_fruits(cls) -> None: -4 | cls += "orange" # OK, augmented assignments are ignored -5 | cls = "apple" # PLW0642 +4 | cls = "apple" # PLW0642 | ^^^ PLW0642 -6 | cls: Fruit = "apple" # PLW0642 -7 | *cls = "banana" # PLW0642 +5 | cls: Fruit = "apple" # PLW0642 +6 | cls += "orange" # OK, augmented assignments are ignored | = help: Consider using a different variable name -self_or_cls_assignment.py:6:9: PLW0642 Reassigned `cls` variable in class method +self_or_cls_assignment.py:5:9: PLW0642 Reassigned `cls` variable in class method | -4 | cls += "orange" # OK, augmented assignments are ignored -5 | cls = "apple" # PLW0642 -6 | cls: Fruit = "apple" # PLW0642 +3 | def list_fruits(cls) -> None: +4 | cls = "apple" # PLW0642 +5 | cls: Fruit = "apple" # PLW0642 | ^^^ PLW0642 +6 | cls += "orange" # OK, augmented assignments are ignored 7 | *cls = "banana" # PLW0642 -8 | cls, blah = "apple", "orange" # PLW0642 | = help: Consider using a different variable name self_or_cls_assignment.py:7:10: PLW0642 Reassigned `cls` variable in class method | -5 | cls = "apple" # PLW0642 -6 | cls: Fruit = "apple" # PLW0642 +5 | cls: Fruit = "apple" # PLW0642 +6 | cls += "orange" # OK, augmented assignments are ignored 7 | *cls = "banana" # PLW0642 | ^^^ PLW0642 8 | cls, blah = "apple", "orange" # PLW0642 @@ -36,7 +36,7 @@ self_or_cls_assignment.py:7:10: PLW0642 Reassigned `cls` variable in class metho self_or_cls_assignment.py:8:9: PLW0642 Reassigned `cls` variable in class method | - 6 | cls: Fruit = "apple" # PLW0642 + 6 | cls += "orange" # OK, augmented assignments are ignored 7 | *cls = "banana" # PLW0642 8 | cls, blah = "apple", "orange" # PLW0642 | ^^^ PLW0642 @@ -77,32 +77,31 @@ self_or_cls_assignment.py:14:9: PLW0642 Reassigned `cls` variable in class metho | = help: Consider using a different variable name -self_or_cls_assignment.py:18:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:17:9: PLW0642 Reassigned `self` variable in instance method | 16 | def print_color(self) -> None: -17 | self += "blue" # OK, augmented assignments are ignored -18 | self = "red" # PLW0642 +17 | self = "red" # PLW0642 | ^^^^ PLW0642 -19 | self: Self = "red" # PLW0642 -20 | *self = "blue" # PLW0642 +18 | self: Self = "red" # PLW0642 +19 | self += "blue" # OK, augmented assignments are ignored | = help: Consider using a different variable name -self_or_cls_assignment.py:19:9: PLW0642 Reassigned `self` variable in instance method +self_or_cls_assignment.py:18:9: PLW0642 Reassigned `self` variable in instance method | -17 | self += "blue" # OK, augmented assignments are ignored -18 | self = "red" # PLW0642 -19 | self: Self = "red" # PLW0642 +16 | def print_color(self) -> None: +17 | self = "red" # PLW0642 +18 | self: Self = "red" # PLW0642 | ^^^^ PLW0642 +19 | self += "blue" # OK, augmented assignments are ignored 20 | *self = "blue" # PLW0642 -21 | self, blah = "red", "blue" # PLW0642 | = help: Consider using a different variable name self_or_cls_assignment.py:20:10: PLW0642 Reassigned `self` variable in instance method | -18 | self = "red" # PLW0642 -19 | self: Self = "red" # PLW0642 +18 | self: Self = "red" # PLW0642 +19 | self += "blue" # OK, augmented assignments are ignored 20 | *self = "blue" # PLW0642 | ^^^^ PLW0642 21 | self, blah = "red", "blue" # PLW0642 @@ -112,7 +111,7 @@ self_or_cls_assignment.py:20:10: PLW0642 Reassigned `self` variable in instance self_or_cls_assignment.py:21:9: PLW0642 Reassigned `self` variable in instance method | -19 | self: Self = "red" # PLW0642 +19 | self += "blue" # OK, augmented assignments are ignored 20 | *self = "blue" # PLW0642 21 | self, blah = "red", "blue" # PLW0642 | ^^^^ PLW0642