From ec664e84bfe67e0835ec0bb04e63a1210007b598 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Wed, 13 Nov 2019 08:27:27 +0200 Subject: [PATCH] literal representation restructure 5 Use `split_digit_parts` in `check_lit`. --- clippy_lints/src/literal_representation.rs | 41 +++++++--------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/clippy_lints/src/literal_representation.rs b/clippy_lints/src/literal_representation.rs index fe1ade60ca00..eacba87073a6 100644 --- a/clippy_lints/src/literal_representation.rs +++ b/clippy_lints/src/literal_representation.rs @@ -400,36 +400,21 @@ impl LiteralDigitGrouping { } } - match lit.kind { - LitKind::Int(..) => { - Self::do_lint(digit_info.digits, in_macro)?; - }, - LitKind::Float(..) => { - // Separate digits into integral and fractional parts. - let parts: Vec<&str> = digit_info - .digits - .split_terminator('.') - .collect(); + let (integer, fraction, _) = digit_info.split_digit_parts(); - // Lint integral and fractional parts separately, and then check consistency of digit - // groups if both pass. - let integral_group_size = Self::do_lint(parts[0], in_macro)?; - if parts.len() > 1 { - // Lint the fractional part of literal just like integral part, but reversed. - let fractional_part = &parts[1].chars().rev().collect::(); - let fractional_group_size = Self::do_lint(fractional_part, in_macro)?; - let consistent = Self::parts_consistent(integral_group_size, - fractional_group_size, - parts[0].len(), - parts[1].len()); - if !consistent { - return Err(WarningType::InconsistentDigitGrouping); - }; - }; - }, - _ => (), + let integral_group_size = Self::do_lint(integer, in_macro)?; + if let Some(fraction) = fraction { + let fractional_part = fraction.chars().rev().collect::(); + let fractional_group_size = Self::do_lint(&fractional_part, in_macro)?; + + let consistent = Self::parts_consistent(integral_group_size, + fractional_group_size, + integer.len(), + fraction.len()); + if !consistent { + return Err(WarningType::InconsistentDigitGrouping); + }; } - Ok(()) })();