From 9fa98ed90b65c8559a1ec2414184fa8ed896517f Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Tue, 7 Feb 2023 10:50:50 -0500 Subject: [PATCH] Accommodate pos-only arguments when checking self name (#2626) --- .../ruff/resources/test/fixtures/pep8_naming/N805.py | 8 ++++++++ crates/ruff/src/rules/pep8_naming/rules.rs | 2 +- ...uff__rules__pep8_naming__tests__N805_N805.py.snap | 12 +++++++++++- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/crates/ruff/resources/test/fixtures/pep8_naming/N805.py b/crates/ruff/resources/test/fixtures/pep8_naming/N805.py index c5fb3e5c10..d45a9c3118 100644 --- a/crates/ruff/resources/test/fixtures/pep8_naming/N805.py +++ b/crates/ruff/resources/test/fixtures/pep8_naming/N805.py @@ -51,3 +51,11 @@ class MetaClass(ABCMeta): def func(x): return x + + +class PosOnlyClass: + def good_method_pos_only(self, blah, /, something: str): + pass + + def bad_method_pos_only(this, blah, /, self, something: str): + pass diff --git a/crates/ruff/src/rules/pep8_naming/rules.rs b/crates/ruff/src/rules/pep8_naming/rules.rs index 6266bf6c46..3d4fd179bd 100644 --- a/crates/ruff/src/rules/pep8_naming/rules.rs +++ b/crates/ruff/src/rules/pep8_naming/rules.rs @@ -316,7 +316,7 @@ pub fn invalid_first_argument_name_for_method( ) { return None; } - let arg = args.args.first()?; + let arg = args.posonlyargs.first().or_else(|| args.args.first())?; if arg.node.arg == "self" { return None; } diff --git a/crates/ruff/src/rules/pep8_naming/snapshots/ruff__rules__pep8_naming__tests__N805_N805.py.snap b/crates/ruff/src/rules/pep8_naming/snapshots/ruff__rules__pep8_naming__tests__N805_N805.py.snap index 7bb40698b9..52bc9cef56 100644 --- a/crates/ruff/src/rules/pep8_naming/snapshots/ruff__rules__pep8_naming__tests__N805_N805.py.snap +++ b/crates/ruff/src/rules/pep8_naming/snapshots/ruff__rules__pep8_naming__tests__N805_N805.py.snap @@ -1,5 +1,5 @@ --- -source: src/rules/pep8_naming/mod.rs +source: crates/ruff/src/rules/pep8_naming/mod.rs expression: diagnostics --- - kind: @@ -42,4 +42,14 @@ expression: diagnostics column: 17 fix: ~ parent: ~ +- kind: + InvalidFirstArgumentNameForMethod: ~ + location: + row: 60 + column: 28 + end_location: + row: 60 + column: 32 + fix: ~ + parent: ~