From 583b4a8aaeefa206b32c2e422d5c663ea085ee89 Mon Sep 17 00:00:00 2001 From: Thomas Coratger Date: Fri, 7 Feb 2025 21:35:52 +0100 Subject: [PATCH] add clippy rules for ff-macros crate --- ff-macros/Cargo.toml | 7 +++++-- ff-macros/src/lib.rs | 4 ++-- ff-macros/src/montgomery/mod.rs | 8 ++++---- ff-macros/src/unroll.rs | 2 +- ff-macros/src/utils.rs | 6 +++--- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ff-macros/Cargo.toml b/ff-macros/Cargo.toml index 2cf69c6b5..ce9df1efa 100644 --- a/ff-macros/Cargo.toml +++ b/ff-macros/Cargo.toml @@ -13,12 +13,15 @@ edition.workspace = true rust-version.workspace = true metadata.docs.rs.workspace = true package.metadata.release.workspace = true -keywords = ["cryptography", "finite-fields", "assembly" ] +keywords = ["cryptography", "finite-fields", "assembly"] + +[lints] +workspace = true [dependencies] quote.workspace = true proc-macro2.workspace = true -syn = { workspace = true, features = ["full", "parsing", "extra-traits"]} +syn = { workspace = true, features = ["full", "parsing", "extra-traits"] } num-bigint.workspace = true num-traits.workspace = true diff --git a/ff-macros/src/lib.rs b/ff-macros/src/lib.rs index f027ec85c..15c220ced 100644 --- a/ff-macros/src/lib.rs +++ b/ff-macros/src/lib.rs @@ -120,9 +120,8 @@ fn fetch_attr(name: &str, attrs: &[syn::Attribute]) -> Option { }) = nv.value { return Some(s.value()); - } else { - panic!("attribute {name} should be a string") } + panic!("attribute {name} should be a string") }, _ => continue, } @@ -131,6 +130,7 @@ fn fetch_attr(name: &str, attrs: &[syn::Attribute]) -> Option { } #[test] +#[allow(clippy::match_same_arms)] fn test_str_to_limbs() { use num_bigint::Sign::*; for i in 0..100 { diff --git a/ff-macros/src/montgomery/mod.rs b/ff-macros/src/montgomery/mod.rs index e03c999eb..f07facf0d 100644 --- a/ff-macros/src/montgomery/mod.rs +++ b/ff-macros/src/montgomery/mod.rs @@ -21,7 +21,7 @@ use sum_of_products::sum_of_products_impl; use crate::utils; -pub fn mont_config_helper( +pub(crate) fn mont_config_helper( modulus: BigUint, generator: BigUint, small_subgroup_base: Option, @@ -60,10 +60,10 @@ pub fn mont_config_helper( let modulus_has_spare_bit = modulus_limbs.last().unwrap() >> 63 == 0; let can_use_no_carry_mul_opt = { let first_limb_check = *modulus_limbs.last().unwrap() < (u64::MAX >> 1); - if limbs != 1 { - first_limb_check && modulus_limbs[..limbs - 1].iter().any(|l| *l != u64::MAX) - } else { + if limbs == 1 { first_limb_check + } else { + first_limb_check && modulus_limbs[..limbs - 1].iter().any(|l| *l != u64::MAX) } }; let modulus = quote::quote! { BigInt([ #( #modulus_limbs ),* ]) }; diff --git a/ff-macros/src/unroll.rs b/ff-macros/src/unroll.rs index da3842e0e..7b5c44005 100644 --- a/ff-macros/src/unroll.rs +++ b/ff-macros/src/unroll.rs @@ -65,7 +65,7 @@ pub(crate) fn unroll_in_block(block: &Block, unroll_by: usize) -> Block { ref stmts, } = block; let mut new_stmts = Vec::new(); - for stmt in stmts.iter() { + for stmt in stmts { if let Stmt::Expr(expr, semi) = stmt { new_stmts.push(Stmt::Expr(unroll(expr, unroll_by), *semi)); } else { diff --git a/ff-macros/src/utils.rs b/ff-macros/src/utils.rs index 055fbf79f..4ebdfcd4f 100644 --- a/ff-macros/src/utils.rs +++ b/ff-macros/src/utils.rs @@ -5,7 +5,7 @@ use num_traits::Num; use proc_macro::TokenStream; use syn::{Expr, Lit}; -pub fn parse_string(input: TokenStream) -> Option { +pub(crate) fn parse_string(input: TokenStream) -> Option { let input: Expr = syn::parse(input).unwrap(); let input = if let Expr::Group(syn::ExprGroup { expr, .. }) = input { expr @@ -21,12 +21,12 @@ pub fn parse_string(input: TokenStream) -> Option { } } -pub fn str_to_limbs(num: &str) -> (bool, Vec) { +pub(crate) fn str_to_limbs(num: &str) -> (bool, Vec) { let (sign, limbs) = str_to_limbs_u64(num); (sign, limbs.into_iter().map(|l| format!("{l}u64")).collect()) } -pub fn str_to_limbs_u64(num: &str) -> (bool, Vec) { +pub(crate) fn str_to_limbs_u64(num: &str) -> (bool, Vec) { let is_negative = num.starts_with('-'); let num = if is_negative { &num[1..] } else { num }; let number = if num.starts_with("0x") || num.starts_with("0X") {