From 65a34615196c297a09a5791cebf003e344c88e46 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Fri, 20 Jan 2023 03:51:17 +0100 Subject: [PATCH] many-to-one 4/9: Rename define_rule_mapping! to register_rules! Currently the define_rule_mapping! macro generates both the Rule enum as well as the RuleCodePrefix enum and the mapping between the two. After this commit series the macro will only generate the Rule enum and the RuleCodePrefix enum and the mapping will be generated by a new map_codes proc macro, so we rename the macro now to fit its new purpose. --- crates/ruff/src/registry.rs | 2 +- crates/ruff_macros/src/lib.rs | 8 ++++---- .../{define_rule_mapping.rs => register_rules.rs} | 12 ++++++------ scripts/add_rule.py | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) rename crates/ruff_macros/src/{define_rule_mapping.rs => register_rules.rs} (95%) diff --git a/crates/ruff/src/registry.rs b/crates/ruff/src/registry.rs index 936deecd09..1fae5c351e 100644 --- a/crates/ruff/src/registry.rs +++ b/crates/ruff/src/registry.rs @@ -10,7 +10,7 @@ use crate::fix::Fix; use crate::rules; use crate::violation::Violation; -ruff_macros::define_rule_mapping!( +ruff_macros::register_rules!( // pycodestyle errors E101 => rules::pycodestyle::rules::MixedSpacesAndTabs, #[cfg(feature = "logical_lines")] diff --git a/crates/ruff_macros/src/lib.rs b/crates/ruff_macros/src/lib.rs index 5f077ed5b0..9fa940223e 100644 --- a/crates/ruff_macros/src/lib.rs +++ b/crates/ruff_macros/src/lib.rs @@ -3,9 +3,9 @@ use syn::{parse_macro_input, DeriveInput, ItemFn}; mod config; -mod define_rule_mapping; mod define_violation; mod derive_message_formats; +mod register_rules; mod rule_code_prefix; mod rule_namespace; @@ -19,9 +19,9 @@ pub fn derive_config(input: proc_macro::TokenStream) -> proc_macro::TokenStream } #[proc_macro] -pub fn define_rule_mapping(item: proc_macro::TokenStream) -> proc_macro::TokenStream { - let mapping = parse_macro_input!(item as define_rule_mapping::Mapping); - define_rule_mapping::define_rule_mapping(&mapping).into() +pub fn register_rules(item: proc_macro::TokenStream) -> proc_macro::TokenStream { + let mapping = parse_macro_input!(item as register_rules::Input); + register_rules::register_rules(&mapping).into() } #[proc_macro] diff --git a/crates/ruff_macros/src/define_rule_mapping.rs b/crates/ruff_macros/src/register_rules.rs similarity index 95% rename from crates/ruff_macros/src/define_rule_mapping.rs rename to crates/ruff_macros/src/register_rules.rs index 4e675c60df..5b67db2e44 100644 --- a/crates/ruff_macros/src/define_rule_mapping.rs +++ b/crates/ruff_macros/src/register_rules.rs @@ -5,7 +5,7 @@ use quote::quote; use syn::parse::Parse; use syn::{Attribute, Ident, LitStr, Path, Token}; -pub fn define_rule_mapping(mapping: &Mapping) -> proc_macro2::TokenStream { +pub fn register_rules(input: &Input) -> proc_macro2::TokenStream { let mut rule_variants = quote!(); let mut diagnostic_kind_variants = quote!(); let mut rule_message_formats_match_arms = quote!(); @@ -19,7 +19,7 @@ pub fn define_rule_mapping(mapping: &Mapping) -> proc_macro2::TokenStream { let mut diagnostic_kind_commit_match_arms = quote!(); let mut from_impls_for_diagnostic_kind = quote!(); - for (code, path, name, attr) in &mapping.entries { + for (code, path, name, attr) in &input.entries { let code_str = LitStr::new(&code.to_string(), Span::call_site()); rule_variants.extend(quote! { #[doc = #code_str] @@ -55,7 +55,7 @@ pub fn define_rule_mapping(mapping: &Mapping) -> proc_macro2::TokenStream { }); } - let code_to_name: HashMap<_, _> = mapping + let code_to_name: HashMap<_, _> = input .entries .iter() .map(|(code, _, name, _)| (code.to_string(), name)) @@ -64,7 +64,7 @@ pub fn define_rule_mapping(mapping: &Mapping) -> proc_macro2::TokenStream { let rule_code_prefix = super::rule_code_prefix::expand( &Ident::new("Rule", Span::call_site()), &Ident::new("RuleCodePrefix", Span::call_site()), - mapping.entries.iter().map(|(code, .., attr)| (code, attr)), + input.entries.iter().map(|(code, .., attr)| (code, attr)), |code| code_to_name[code], ); @@ -161,11 +161,11 @@ pub fn define_rule_mapping(mapping: &Mapping) -> proc_macro2::TokenStream { } } -pub struct Mapping { +pub struct Input { entries: Vec<(Ident, Path, Ident, Vec)>, } -impl Parse for Mapping { +impl Parse for Input { fn parse(input: syn::parse::ParseStream) -> syn::Result { let mut entries = Vec::new(); while !input.is_empty() { diff --git a/scripts/add_rule.py b/scripts/add_rule.py index f64676d3ca..3c2b2238ee 100755 --- a/scripts/add_rule.py +++ b/scripts/add_rule.py @@ -119,7 +119,7 @@ pub fn {rule_name_snake}(checker: &mut Checker) {{}} if has_written: continue - if line.startswith("ruff_macros::define_rule_mapping!"): + if line.startswith("ruff_macros::register_rules!"): seen_macro = True continue