Stop suggesting a float truncation that is not shorter
This commit is contained in:
parent
fb61d04896
commit
e63d69244e
@ -111,7 +111,7 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx hir::Expr<'_>) {
|
||||
Applicability::MachineApplicable,
|
||||
);
|
||||
}
|
||||
} else if digits > max as usize && sym_str != float_str {
|
||||
} else if digits > max as usize && float_str.len() < sym_str.len() {
|
||||
span_lint_and_sugg(
|
||||
cx,
|
||||
EXCESSIVE_PRECISION,
|
||||
|
@ -17,8 +17,8 @@ fn main() {
|
||||
const BAD32_3: f32 = 0.1;
|
||||
const BAD32_EDGE: f32 = 1.000_001;
|
||||
|
||||
const BAD64_1: f64 = 0.123_456_789_012_345_66_f64;
|
||||
const BAD64_2: f64 = 0.123_456_789_012_345_66;
|
||||
const BAD64_1: f64 = 0.123_456_789_012_345_67f64;
|
||||
const BAD64_2: f64 = 0.123_456_789_012_345_67;
|
||||
const BAD64_3: f64 = 0.1;
|
||||
|
||||
// Literal as param
|
||||
@ -37,9 +37,9 @@ fn main() {
|
||||
let bad32_suf: f32 = 1.123_456_8_f32;
|
||||
let bad32_inf = 1.123_456_8_f32;
|
||||
|
||||
let bad64: f64 = 0.123_456_789_012_345_66;
|
||||
let bad64_suf: f64 = 0.123_456_789_012_345_66_f64;
|
||||
let bad64_inf = 0.123_456_789_012_345_66;
|
||||
let bad64: f64 = 0.123_456_789_012_345_67;
|
||||
let bad64_suf: f64 = 0.123_456_789_012_345_67f64;
|
||||
let bad64_inf = 0.123_456_789_012_345_67;
|
||||
|
||||
// Vectors
|
||||
let good_vec32: Vec<f32> = vec![0.123_456];
|
||||
|
@ -24,18 +24,6 @@ error: float has excessive precision
|
||||
LL | const BAD32_EDGE: f32 = 1.000_000_9;
|
||||
| ^^^^^^^^^^^ help: consider changing the type or truncating it to: `1.000_001`
|
||||
|
||||
error: float has excessive precision
|
||||
--> $DIR/excessive_precision.rs:20:26
|
||||
|
|
||||
LL | const BAD64_1: f64 = 0.123_456_789_012_345_67f64;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.123_456_789_012_345_66_f64`
|
||||
|
||||
error: float has excessive precision
|
||||
--> $DIR/excessive_precision.rs:21:26
|
||||
|
|
||||
LL | const BAD64_2: f64 = 0.123_456_789_012_345_67;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.123_456_789_012_345_66`
|
||||
|
||||
error: float has excessive precision
|
||||
--> $DIR/excessive_precision.rs:22:26
|
||||
|
|
||||
@ -66,24 +54,6 @@ error: float has excessive precision
|
||||
LL | let bad32_inf = 1.123_456_789_f32;
|
||||
| ^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `1.123_456_8_f32`
|
||||
|
||||
error: float has excessive precision
|
||||
--> $DIR/excessive_precision.rs:40:22
|
||||
|
|
||||
LL | let bad64: f64 = 0.123_456_789_012_345_67;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.123_456_789_012_345_66`
|
||||
|
||||
error: float has excessive precision
|
||||
--> $DIR/excessive_precision.rs:41:26
|
||||
|
|
||||
LL | let bad64_suf: f64 = 0.123_456_789_012_345_67f64;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.123_456_789_012_345_66_f64`
|
||||
|
||||
error: float has excessive precision
|
||||
--> $DIR/excessive_precision.rs:42:21
|
||||
|
|
||||
LL | let bad64_inf = 0.123_456_789_012_345_67;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `0.123_456_789_012_345_66`
|
||||
|
||||
error: float has excessive precision
|
||||
--> $DIR/excessive_precision.rs:48:36
|
||||
|
|
||||
@ -108,5 +78,5 @@ error: float has excessive precision
|
||||
LL | let bad_bige32: f32 = 1.123_456_788_888E-10;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^ help: consider changing the type or truncating it to: `1.123_456_8E-10`
|
||||
|
||||
error: aborting due to 18 previous errors
|
||||
error: aborting due to 13 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user