From ebfa55cea35e00f8e86624363290254d9225760d Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 2 Feb 2023 17:03:09 +0200 Subject: [PATCH] Move flake8-builtins violations to rules file (#2478) --- src/registry.rs | 6 ++-- src/rules/flake8_builtins/rules.rs | 52 ++++++++++++++++++++++++++---- src/violations.rs | 41 ----------------------- 3 files changed, 49 insertions(+), 50 deletions(-) diff --git a/src/registry.rs b/src/registry.rs index 916c9af4c2..f54ab1a594 100644 --- a/src/registry.rs +++ b/src/registry.rs @@ -95,9 +95,9 @@ ruff_macros::define_rule_mapping!( PLR0913 => rules::pylint::rules::TooManyArgs, PLR0915 => rules::pylint::rules::TooManyStatements, // flake8-builtins - A001 => violations::BuiltinVariableShadowing, - A002 => violations::BuiltinArgumentShadowing, - A003 => violations::BuiltinAttributeShadowing, + A001 => rules::flake8_builtins::rules::BuiltinVariableShadowing, + A002 => rules::flake8_builtins::rules::BuiltinArgumentShadowing, + A003 => rules::flake8_builtins::rules::BuiltinAttributeShadowing, // flake8-bugbear B002 => rules::flake8_bugbear::rules::UnaryPrefixIncrement, B003 => rules::flake8_bugbear::rules::AssignmentToOsEnviron, diff --git a/src/rules/flake8_builtins/rules.rs b/src/rules/flake8_builtins/rules.rs index ca946853ca..5f799dde69 100644 --- a/src/rules/flake8_builtins/rules.rs +++ b/src/rules/flake8_builtins/rules.rs @@ -1,10 +1,50 @@ -use rustpython_ast::Located; - use super::types::ShadowingType; use crate::ast::types::Range; +use crate::define_violation; use crate::python::builtins::BUILTINS; use crate::registry::{Diagnostic, DiagnosticKind}; -use crate::violations; +use crate::violation::Violation; +use ruff_macros::derive_message_formats; +use rustpython_ast::Located; + +define_violation!( + pub struct BuiltinVariableShadowing { + pub name: String, + } +); +impl Violation for BuiltinVariableShadowing { + #[derive_message_formats] + fn message(&self) -> String { + let BuiltinVariableShadowing { name } = self; + format!("Variable `{name}` is shadowing a python builtin") + } +} + +define_violation!( + pub struct BuiltinArgumentShadowing { + pub name: String, + } +); +impl Violation for BuiltinArgumentShadowing { + #[derive_message_formats] + fn message(&self) -> String { + let BuiltinArgumentShadowing { name } = self; + format!("Argument `{name}` is shadowing a python builtin") + } +} + +define_violation!( + pub struct BuiltinAttributeShadowing { + pub name: String, + } +); +impl Violation for BuiltinAttributeShadowing { + #[derive_message_formats] + fn message(&self) -> String { + let BuiltinAttributeShadowing { name } = self; + format!("Class attribute `{name}` is shadowing a python builtin") + } +} /// Check builtin name shadowing. pub fn builtin_shadowing( @@ -16,15 +56,15 @@ pub fn builtin_shadowing( if BUILTINS.contains(&name) && !ignorelist.contains(&name.to_string()) { Some(Diagnostic::new::( match node_type { - ShadowingType::Variable => violations::BuiltinVariableShadowing { + ShadowingType::Variable => BuiltinVariableShadowing { name: name.to_string(), } .into(), - ShadowingType::Argument => violations::BuiltinArgumentShadowing { + ShadowingType::Argument => BuiltinArgumentShadowing { name: name.to_string(), } .into(), - ShadowingType::Attribute => violations::BuiltinAttributeShadowing { + ShadowingType::Attribute => BuiltinAttributeShadowing { name: name.to_string(), } .into(), diff --git a/src/violations.rs b/src/violations.rs index cb351f72a6..a55260e1a3 100644 --- a/src/violations.rs +++ b/src/violations.rs @@ -947,47 +947,6 @@ impl Violation for GlobalVariableNotAssigned { } } -// flake8-builtins - -define_violation!( - pub struct BuiltinVariableShadowing { - pub name: String, - } -); -impl Violation for BuiltinVariableShadowing { - #[derive_message_formats] - fn message(&self) -> String { - let BuiltinVariableShadowing { name } = self; - format!("Variable `{name}` is shadowing a python builtin") - } -} - -define_violation!( - pub struct BuiltinArgumentShadowing { - pub name: String, - } -); -impl Violation for BuiltinArgumentShadowing { - #[derive_message_formats] - fn message(&self) -> String { - let BuiltinArgumentShadowing { name } = self; - format!("Argument `{name}` is shadowing a python builtin") - } -} - -define_violation!( - pub struct BuiltinAttributeShadowing { - pub name: String, - } -); -impl Violation for BuiltinAttributeShadowing { - #[derive_message_formats] - fn message(&self) -> String { - let BuiltinAttributeShadowing { name } = self; - format!("Class attribute `{name}` is shadowing a python builtin") - } -} - // flake8-blind-except define_violation!(