From 7482a4a5b860e66f73a256bf43411b0fd422071f Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Wed, 8 Feb 2023 12:18:36 -0500 Subject: [PATCH] Avoid false-positive in chained type calls (#2663) --- crates/ruff/resources/test/fixtures/pyupgrade/UP003.py | 1 + crates/ruff/src/checkers/ast.rs | 2 +- crates/ruff/src/rules/pyupgrade/rules/type_of_primitive.rs | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/ruff/resources/test/fixtures/pyupgrade/UP003.py b/crates/ruff/resources/test/fixtures/pyupgrade/UP003.py index fc6ce04ca1..00562efdd7 100644 --- a/crates/ruff/resources/test/fixtures/pyupgrade/UP003.py +++ b/crates/ruff/resources/test/fixtures/pyupgrade/UP003.py @@ -10,3 +10,4 @@ y = x.dtype.type(0.0) # OK type = lambda *args, **kwargs: None type("") +type(arg)(" ") diff --git a/crates/ruff/src/checkers/ast.rs b/crates/ruff/src/checkers/ast.rs index 832d296e06..28426da2e7 100644 --- a/crates/ruff/src/checkers/ast.rs +++ b/crates/ruff/src/checkers/ast.rs @@ -2280,7 +2280,7 @@ where // pyupgrade if self.settings.rules.enabled(&Rule::TypeOfPrimitive) { - pyupgrade::rules::type_of_primitive(self, expr, func, args); + pyupgrade::rules::type_of_primitive(self, expr, args); } if self.settings.rules.enabled(&Rule::DeprecatedUnittestAlias) { pyupgrade::rules::deprecated_unittest_alias(self, func); diff --git a/crates/ruff/src/rules/pyupgrade/rules/type_of_primitive.rs b/crates/ruff/src/rules/pyupgrade/rules/type_of_primitive.rs index 6101973f97..9d5fa867d2 100644 --- a/crates/ruff/src/rules/pyupgrade/rules/type_of_primitive.rs +++ b/crates/ruff/src/rules/pyupgrade/rules/type_of_primitive.rs @@ -27,12 +27,12 @@ impl AlwaysAutofixableViolation for TypeOfPrimitive { } /// UP003 -pub fn type_of_primitive(checker: &mut Checker, expr: &Expr, func: &Expr, args: &[Expr]) { +pub fn type_of_primitive(checker: &mut Checker, expr: &Expr, args: &[Expr]) { if args.len() != 1 { return; } if !checker - .resolve_call_path(func) + .resolve_call_path(expr) .map_or(false, |call_path| call_path.as_slice() == ["", "type"]) { return;