From e25f884e6ff2e7031726b59852d57b6a0c433c12 Mon Sep 17 00:00:00 2001 From: Josh Mcguigan Date: Sat, 29 Sep 2018 07:39:30 -0700 Subject: [PATCH] Fixes #3180, suppress excessive_precision lint for floats with no decimal part --- clippy_lints/src/excessive_precision.rs | 6 ++++-- tests/ui/excessive_precision.rs | 3 +++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/clippy_lints/src/excessive_precision.rs b/clippy_lints/src/excessive_precision.rs index 6df88cdc6c3..0ae228d1dea 100644 --- a/clippy_lints/src/excessive_precision.rs +++ b/clippy_lints/src/excessive_precision.rs @@ -98,8 +98,9 @@ impl ExcessivePrecision { } } -/// Should we exclude the float because it has a .0 suffix +/// Should we exclude the float because it has a `.0` or `.` suffix /// Ex 1_000_000_000.0 +/// Ex 1_000_000_000. fn dot_zero_exclusion(s: &str) -> bool { if let Some(after_dec) = s.split('.').nth(1) { let mut decpart = after_dec @@ -108,7 +109,8 @@ fn dot_zero_exclusion(s: &str) -> bool { match decpart.next() { Some('0') => decpart.count() == 0, - _ => false, + Some(_) => false, + None => true, } } else { false diff --git a/tests/ui/excessive_precision.rs b/tests/ui/excessive_precision.rs index b44364d6beb..1b3412166d4 100644 --- a/tests/ui/excessive_precision.rs +++ b/tests/ui/excessive_precision.rs @@ -54,4 +54,7 @@ fn main() { let good_bige32: f32 = 1E-10; let bad_bige32: f32 = 1.123_456_788_888E-10; + + // Inferred type + let good_inferred: f32 = 1f32 * 1_000_000_000.; }