From 16bc5b276d356ff0c7eca3f0f0d6ea19bc52019c Mon Sep 17 00:00:00 2001 From: oech3 <79379754+oech3@users.noreply.github.com> Date: Fri, 24 Jul 2026 02:47:34 +0900 Subject: [PATCH] fix & enable clippy::match_same_arms --- Cargo.toml | 1 - src/uu/date/src/format_modifiers.rs | 1 + src/uu/ls/src/colors.rs | 4 - src/uu/ls/src/ls.rs | 11 +-- src/uu/runcon/src/errors.rs | 8 +- src/uu/stat/src/stat.rs | 26 +++--- src/uucore/build.rs | 1 + .../src/lib/features/extendedbigdecimal.rs | 81 +++++++------------ 8 files changed, 48 insertions(+), 85 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index fa2382ab69f..53f6e7a90e5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -538,7 +538,6 @@ multiple_crate_versions = "allow" # 2882 missing_errors_doc = "allow" # 1572 missing_panics_doc = "allow" # 946 must_use_candidate = "allow" # 322 -match_same_arms = "allow" # 204 cast_possible_truncation = "allow" # 122 too_many_lines = "allow" # 101 cast_possible_wrap = "allow" # 78 diff --git a/src/uu/date/src/format_modifiers.rs b/src/uu/date/src/format_modifiers.rs index 1693726f404..1a9d3568837 100644 --- a/src/uu/date/src/format_modifiers.rs +++ b/src/uu/date/src/format_modifiers.rs @@ -282,6 +282,7 @@ fn is_space_padded_specifier(specifier: &str) -> bool { /// Returns the default width for a specifier. /// This is used when a flag like `_` is used without an explicit width. fn get_default_width(specifier: &str) -> usize { + #[allow(clippy::match_same_arms)] // needs comment match specifier.chars().last() { // Day of month: 2 digits (01-31) Some('d') | Some('e') => 2, diff --git a/src/uu/ls/src/colors.rs b/src/uu/ls/src/colors.rs index 4584578569f..71c47958725 100644 --- a/src/uu/ls/src/colors.rs +++ b/src/uu/ls/src/colors.rs @@ -673,10 +673,6 @@ fn parse_funky_string( state = State::Hex(0); idx += 1; } - b'a' | b'b' | b'e' | b'f' | b'n' | b'r' | b't' | b'v' | b'?' | b'_' => { - state = State::Ground; - idx += 1; - } _ => { state = State::Ground; idx += 1; diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs index 360d41bc71b..424a3132bc1 100644 --- a/src/uu/ls/src/ls.rs +++ b/src/uu/ls/src/ls.rs @@ -109,15 +109,8 @@ enum LsError { impl UError for LsError { fn code(&self) -> i32 { match self { - Self::InvalidLineWidth(_) => 2, - Self::IOError(_) | Self::WriteError(_) => 1, - Self::IOErrorContext(_, _, false) => 1, - Self::IOErrorContext(_, _, true) => 2, - Self::BlockSizeParseError(_) => 2, - Self::DiredAndZeroAreIncompatible => 2, - Self::AlreadyListedError(_) => 2, - Self::TimeStyleParseError(_) => 2, - Self::InvalidTabSize(_) => 2, + Self::IOError(_) | Self::WriteError(_) | Self::IOErrorContext(_, _, false) => 1, + _ => 2, } } } diff --git a/src/uu/runcon/src/errors.rs b/src/uu/runcon/src/errors.rs index 31a108e18ff..9baa30613bc 100644 --- a/src/uu/runcon/src/errors.rs +++ b/src/uu/runcon/src/errors.rs @@ -128,14 +128,8 @@ impl Display for RunconError { impl UError for Error { fn code(&self) -> i32 { match self { - Self::MissingCommand => error_exit_status::ANOTHER_ERROR, - Self::SELinuxNotEnabled => error_exit_status::ANOTHER_ERROR, - Self::NotUTF8(_) => error_exit_status::ANOTHER_ERROR, Self::CommandLine(e) => e.exit_code(), - Self::SELinux { .. } => error_exit_status::ANOTHER_ERROR, - Self::Io { .. } => error_exit_status::ANOTHER_ERROR, - Self::Io1 { .. } => error_exit_status::ANOTHER_ERROR, - Self::Write(_) => error_exit_status::ANOTHER_ERROR, + _ => error_exit_status::ANOTHER_ERROR, } } } diff --git a/src/uu/stat/src/stat.rs b/src/uu/stat/src/stat.rs index e26099258c3..8e1f76779a1 100644 --- a/src/uu/stat/src/stat.rs +++ b/src/uu/stat/src/stat.rs @@ -586,8 +586,7 @@ fn print_integer( "" }; let extended = match precision { - Precision::NotSpecified => format!("{prefix}{arg}"), - Precision::NoNumber => format!("{prefix}{arg}"), + Precision::NotSpecified | Precision::NoNumber => format!("{prefix}{arg}"), Precision::Number(p) => format!("{prefix}{arg:0>p$}"), }; pad_and_print(&extended, flags.left, width, padding_char); @@ -618,13 +617,14 @@ fn precision_trunc(num: f64, precision: Precision) -> String { let num_str = num.to_string(); let n = num_str.len(); match (num_str.find('.'), precision) { - (None, Precision::NotSpecified) => num_str, - (None, Precision::NoNumber) => num_str, - (None, Precision::Number(0)) => num_str, + (None, Precision::NotSpecified) + | (None, Precision::NoNumber) + | (None, Precision::Number(0)) + | (Some(_), Precision::NoNumber) => num_str, (None, Precision::Number(p)) => format!("{num_str}.{zeros}", zeros = "0".repeat(p)), - (Some(i), Precision::NotSpecified) => num_str[..i].to_string(), - (Some(_), Precision::NoNumber) => num_str, - (Some(i), Precision::Number(0)) => num_str[..i].to_string(), + (Some(i), Precision::NotSpecified) | (Some(i), Precision::Number(0)) => { + num_str[..i].to_string() + } (Some(i), Precision::Number(p)) if p < n - i => num_str[..i + 1 + p].to_string(), (Some(i), Precision::Number(p)) => { format!("{num_str}{zeros}", zeros = "0".repeat(p - (n - i - 1))) @@ -668,8 +668,7 @@ fn print_unsigned( Cow::Borrowed(num.as_str()) }; let s = match precision { - Precision::NotSpecified => s, - Precision::NoNumber => s, + Precision::NotSpecified | Precision::NoNumber => s, Precision::Number(p) => format!("{s:0>p$}").into(), }; pad_and_print(&s, flags.left, width, padding_char); @@ -693,8 +692,7 @@ fn print_unsigned_oct( ) { let prefix = if flags.alter { "0" } else { "" }; let s = match precision { - Precision::NotSpecified => format!("{prefix}{num:o}"), - Precision::NoNumber => format!("{prefix}{num:o}"), + Precision::NotSpecified | Precision::NoNumber => format!("{prefix}{num:o}"), Precision::Number(p) => format!("{prefix}{num:0>p$o}"), }; pad_and_print(&s, flags.left, width, padding_char); @@ -718,8 +716,7 @@ fn print_unsigned_hex( ) { let prefix = if flags.alter { "0x" } else { "" }; let s = match precision { - Precision::NotSpecified => format!("{prefix}{num:x}"), - Precision::NoNumber => format!("{prefix}{num:x}"), + Precision::NotSpecified | Precision::NoNumber => format!("{prefix}{num:x}"), Precision::Number(p) => format!("{prefix}{num:0>p$x}"), }; pad_and_print(&s, flags.left, width, padding_char); @@ -732,6 +729,7 @@ fn print_raw_byte(byte: u8) { impl Stater { fn process_flags(chars: &[char], i: &mut usize, bound: usize, flag: &mut Flags) { while *i < bound { + #[expect(clippy::match_same_arms)] // needs comment match chars[*i] { '#' => flag.alter = true, '0' => flag.zero = true, diff --git a/src/uucore/build.rs b/src/uucore/build.rs index 3eb6f7db7f6..45a185656fa 100644 --- a/src/uucore/build.rs +++ b/src/uucore/build.rs @@ -22,6 +22,7 @@ pub fn main() -> Result<(), Box> { writeln!(embedded_file)?; // Generate optimized lookup function instead of HashMap + writeln!(embedded_file, "#[expect(clippy::match_same_arms)]")?; writeln!( embedded_file, "pub fn get_embedded_locale(key: &str) -> Option<&'static str> {{" diff --git a/src/uucore/src/lib/features/extendedbigdecimal.rs b/src/uucore/src/lib/features/extendedbigdecimal.rs index d119da4f77b..edde158d56d 100644 --- a/src/uucore/src/lib/features/extendedbigdecimal.rs +++ b/src/uucore/src/lib/features/extendedbigdecimal.rs @@ -162,21 +162,20 @@ impl Add for ExtendedBigDecimal { fn add(self, other: Self) -> Self { match (self, other) { (Self::BigDecimal(m), Self::BigDecimal(n)) => Self::BigDecimal(m.add(n)), - (Self::BigDecimal(_), Self::MinusInfinity) => Self::MinusInfinity, - (Self::BigDecimal(_), Self::Infinity) => Self::Infinity, + (Self::BigDecimal(_), Self::MinusInfinity) + | (Self::MinusInfinity, Self::BigDecimal(_)) + | (Self::MinusInfinity, Self::MinusInfinity) + | (Self::MinusInfinity, Self::MinusZero) => Self::MinusInfinity, + (Self::BigDecimal(_), Self::Infinity) + | (Self::Infinity, Self::BigDecimal(_)) + | (Self::Infinity, Self::Infinity) + | (Self::Infinity, Self::MinusZero) => Self::Infinity, (Self::BigDecimal(m), Self::MinusZero) => Self::BigDecimal(m), - (Self::Infinity, Self::BigDecimal(_)) => Self::Infinity, - (Self::Infinity, Self::Infinity) => Self::Infinity, - (Self::Infinity, Self::MinusZero) => Self::Infinity, - (Self::Infinity, Self::MinusInfinity) => Self::Nan, - (Self::MinusInfinity, Self::BigDecimal(_)) => Self::MinusInfinity, - (Self::MinusInfinity, Self::MinusInfinity) => Self::MinusInfinity, - (Self::MinusInfinity, Self::MinusZero) => Self::MinusInfinity, - (Self::MinusInfinity, Self::Infinity) => Self::Nan, - (Self::Nan, _) => Self::Nan, - (_, Self::Nan) => Self::Nan, - (Self::MinusNan, _) => Self::MinusNan, - (_, Self::MinusNan) => Self::MinusNan, + (Self::Infinity, Self::MinusInfinity) + | (Self::MinusInfinity, Self::Infinity) + | (Self::Nan, _) + | (_, Self::Nan) => Self::Nan, + (Self::MinusNan, _) | (_, Self::MinusNan) => Self::MinusNan, (Self::MinusZero, other) => other, } } @@ -186,25 +185,10 @@ impl PartialEq for ExtendedBigDecimal { fn eq(&self, other: &Self) -> bool { match (self, other) { (Self::BigDecimal(m), Self::BigDecimal(n)) => m.eq(n), - (Self::BigDecimal(_), Self::MinusInfinity) => false, - (Self::BigDecimal(_), Self::Infinity) => false, - (Self::BigDecimal(_), Self::MinusZero) => false, - (Self::Infinity, Self::BigDecimal(_)) => false, - (Self::Infinity, Self::Infinity) => true, - (Self::Infinity, Self::MinusZero) => false, - (Self::Infinity, Self::MinusInfinity) => false, - (Self::MinusInfinity, Self::BigDecimal(_)) => false, - (Self::MinusInfinity, Self::Infinity) => false, - (Self::MinusInfinity, Self::MinusZero) => false, - (Self::MinusInfinity, Self::MinusInfinity) => true, - (Self::MinusZero, Self::BigDecimal(_)) => false, - (Self::MinusZero, Self::Infinity) => false, - (Self::MinusZero, Self::MinusZero) => true, - (Self::MinusZero, Self::MinusInfinity) => false, - (Self::Nan, _) => false, - (Self::MinusNan, _) => false, - (_, Self::Nan) => false, - (_, Self::MinusNan) => false, + (Self::Infinity, Self::Infinity) + | (Self::MinusInfinity, Self::MinusInfinity) + | (Self::MinusZero, Self::MinusZero) => true, + _ => false, } } } @@ -213,25 +197,22 @@ impl PartialOrd for ExtendedBigDecimal { fn partial_cmp(&self, other: &Self) -> Option { match (self, other) { (Self::BigDecimal(m), Self::BigDecimal(n)) => m.partial_cmp(n), - (Self::BigDecimal(_), Self::MinusInfinity) => Some(Ordering::Greater), - (Self::BigDecimal(_), Self::Infinity) => Some(Ordering::Less), + (Self::BigDecimal(_), Self::MinusInfinity) + | (Self::Infinity, Self::BigDecimal(_)) + | (Self::Infinity, Self::MinusZero) + | (Self::Infinity, Self::MinusInfinity) + | (Self::MinusZero, Self::MinusInfinity) => Some(Ordering::Greater), + (Self::BigDecimal(_), Self::Infinity) + | (Self::MinusInfinity, Self::BigDecimal(_)) + | (Self::MinusInfinity, Self::Infinity) + | (Self::MinusInfinity, Self::MinusZero) + | (Self::MinusZero, Self::Infinity) => Some(Ordering::Less), (Self::BigDecimal(m), Self::MinusZero) => m.partial_cmp(&BigDecimal::zero()), - (Self::Infinity, Self::BigDecimal(_)) => Some(Ordering::Greater), - (Self::Infinity, Self::Infinity) => Some(Ordering::Equal), - (Self::Infinity, Self::MinusZero) => Some(Ordering::Greater), - (Self::Infinity, Self::MinusInfinity) => Some(Ordering::Greater), - (Self::MinusInfinity, Self::BigDecimal(_)) => Some(Ordering::Less), - (Self::MinusInfinity, Self::Infinity) => Some(Ordering::Less), - (Self::MinusInfinity, Self::MinusZero) => Some(Ordering::Less), - (Self::MinusInfinity, Self::MinusInfinity) => Some(Ordering::Equal), + (Self::Infinity, Self::Infinity) + | (Self::MinusInfinity, Self::MinusInfinity) + | (Self::MinusZero, Self::MinusZero) => Some(Ordering::Equal), (Self::MinusZero, Self::BigDecimal(n)) => BigDecimal::zero().partial_cmp(n), - (Self::MinusZero, Self::Infinity) => Some(Ordering::Less), - (Self::MinusZero, Self::MinusZero) => Some(Ordering::Equal), - (Self::MinusZero, Self::MinusInfinity) => Some(Ordering::Greater), - (Self::Nan, _) => None, - (Self::MinusNan, _) => None, - (_, Self::Nan) => None, - (_, Self::MinusNan) => None, + _ => None, } } }