diff options
| author | Josh Mcguigan <joshmcg88@gmail.com> | 2018-10-07 11:38:20 -0700 |
|---|---|---|
| committer | Josh Mcguigan <joshmcg88@gmail.com> | 2018-10-07 11:38:20 -0700 |
| commit | 8a77a25b8a4020577476056b5741fccb87be587e (patch) | |
| tree | a0f3f82bc2b23d2e42c44662dee0da09fcdebea0 | |
| parent | 63ceabf0cf5758fa513b12b648608db7ff6f5166 (diff) | |
| download | rust-8a77a25b8a4020577476056b5741fccb87be587e.tar.gz rust-8a77a25b8a4020577476056b5741fccb87be587e.zip | |
Fix excessive_precision false positive
| -rw-r--r-- | clippy_lints/src/excessive_precision.rs | 6 | ||||
| -rw-r--r-- | tests/ui/excessive_precision.rs | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/clippy_lints/src/excessive_precision.rs b/clippy_lints/src/excessive_precision.rs index 9f8224cd2f0..99668880f72 100644 --- a/clippy_lints/src/excessive_precision.rs +++ b/clippy_lints/src/excessive_precision.rs @@ -136,10 +136,10 @@ fn max_digits(fty: FloatTy) -> u32 { /// Counts the digits excluding leading zeros fn count_digits(s: &str) -> usize { - // Note that s does not contain the f32/64 suffix + // Note that s does not contain the f32/64 suffix, and underscores have been stripped s.chars() - .filter(|c| *c != '-' || *c != '.') - .take_while(|c| *c != 'e' || *c != 'E') + .filter(|c| *c != '-' && *c != '.') + .take_while(|c| *c != 'e' && *c != 'E') .fold(0, |count, c| { // leading zeros if c == '0' && count == 0 { diff --git a/tests/ui/excessive_precision.rs b/tests/ui/excessive_precision.rs index ab0412a16b5..abfdb0b3da1 100644 --- a/tests/ui/excessive_precision.rs +++ b/tests/ui/excessive_precision.rs @@ -67,4 +67,7 @@ fn main() { // Inferred type let good_inferred: f32 = 1f32 * 1_000_000_000.; + + // issue #2840 + let num = 0.000_000_000_01e-10f64; } |
