From 66bc12564a5c7494cb17ac816255ac87b6f4016b Mon Sep 17 00:00:00 2001 From: clippered Date: Mon, 6 Nov 2017 21:34:30 +1100 Subject: [PATCH] put back negative tests but allow float_cmp --- tests/ui/float_cmp_const.rs | 9 ++++- tests/ui/float_cmp_const.stderr | 66 ++++++++++++++++----------------- 2 files changed, 40 insertions(+), 35 deletions(-) diff --git a/tests/ui/float_cmp_const.rs b/tests/ui/float_cmp_const.rs index 990a8373068..adf2ab70368 100644 --- a/tests/ui/float_cmp_const.rs +++ b/tests/ui/float_cmp_const.rs @@ -2,6 +2,7 @@ #![warn(float_cmp_const)] +#![allow(float_cmp)] #![allow(unused, no_effect, unnecessary_operation)] const ONE: f32 = 1.0; @@ -35,6 +36,10 @@ fn main() { ONE != ::std::f32::INFINITY; ONE == ::std::f32::NEG_INFINITY; - // Note: float_cmp will warn as expected on cases where there are no float constants - // e.g. v == 1.0 + // no errors, but will warn float_cmp if '#![allow(float_cmp)]' above is removed + let w = 1.1; + v == w; + v != w; + v == 1.0; + v != 1.0; } diff --git a/tests/ui/float_cmp_const.stderr b/tests/ui/float_cmp_const.stderr index 0bdbb6770dc..fe277de28dd 100644 --- a/tests/ui/float_cmp_const.stderr +++ b/tests/ui/float_cmp_const.stderr @@ -1,85 +1,85 @@ error: strict comparison of f32 or f64 constant - --> $DIR/float_cmp_const.rs:16:5 + --> $DIR/float_cmp_const.rs:17:5 | -16 | 1f32 == ONE; +17 | 1f32 == ONE; | ^^^^^^^^^^^ help: consider comparing them within some error: `(1f32 - ONE).abs() < error` | = note: `-D float-cmp-const` implied by `-D warnings` note: std::f32::EPSILON and std::f64::EPSILON are available. - --> $DIR/float_cmp_const.rs:16:5 + --> $DIR/float_cmp_const.rs:17:5 | -16 | 1f32 == ONE; +17 | 1f32 == ONE; | ^^^^^^^^^^^ -error: strict comparison of f32 or f64 constant - --> $DIR/float_cmp_const.rs:17:5 - | -17 | TWO == ONE; - | ^^^^^^^^^^ help: consider comparing them within some error: `(TWO - ONE).abs() < error` - | -note: std::f32::EPSILON and std::f64::EPSILON are available. - --> $DIR/float_cmp_const.rs:17:5 - | -17 | TWO == ONE; - | ^^^^^^^^^^ - error: strict comparison of f32 or f64 constant --> $DIR/float_cmp_const.rs:18:5 | -18 | TWO != ONE; +18 | TWO == ONE; | ^^^^^^^^^^ help: consider comparing them within some error: `(TWO - ONE).abs() < error` | note: std::f32::EPSILON and std::f64::EPSILON are available. --> $DIR/float_cmp_const.rs:18:5 | -18 | TWO != ONE; +18 | TWO == ONE; | ^^^^^^^^^^ error: strict comparison of f32 or f64 constant --> $DIR/float_cmp_const.rs:19:5 | -19 | ONE + ONE == TWO; +19 | TWO != ONE; + | ^^^^^^^^^^ help: consider comparing them within some error: `(TWO - ONE).abs() < error` + | +note: std::f32::EPSILON and std::f64::EPSILON are available. + --> $DIR/float_cmp_const.rs:19:5 + | +19 | TWO != ONE; + | ^^^^^^^^^^ + +error: strict comparison of f32 or f64 constant + --> $DIR/float_cmp_const.rs:20:5 + | +20 | ONE + ONE == TWO; | ^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(ONE + ONE - TWO).abs() < error` | note: std::f32::EPSILON and std::f64::EPSILON are available. - --> $DIR/float_cmp_const.rs:19:5 + --> $DIR/float_cmp_const.rs:20:5 | -19 | ONE + ONE == TWO; +20 | ONE + ONE == TWO; | ^^^^^^^^^^^^^^^^ error: strict comparison of f32 or f64 constant - --> $DIR/float_cmp_const.rs:20:5 + --> $DIR/float_cmp_const.rs:21:5 | -20 | 1 as f32 == ONE; +21 | 1 as f32 == ONE; | ^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(1 as f32 - ONE).abs() < error` | note: std::f32::EPSILON and std::f64::EPSILON are available. - --> $DIR/float_cmp_const.rs:20:5 + --> $DIR/float_cmp_const.rs:21:5 | -20 | 1 as f32 == ONE; +21 | 1 as f32 == ONE; | ^^^^^^^^^^^^^^^ error: strict comparison of f32 or f64 constant - --> $DIR/float_cmp_const.rs:23:5 + --> $DIR/float_cmp_const.rs:24:5 | -23 | v == ONE; +24 | v == ONE; | ^^^^^^^^ help: consider comparing them within some error: `(v - ONE).abs() < error` | note: std::f32::EPSILON and std::f64::EPSILON are available. - --> $DIR/float_cmp_const.rs:23:5 + --> $DIR/float_cmp_const.rs:24:5 | -23 | v == ONE; +24 | v == ONE; | ^^^^^^^^ error: strict comparison of f32 or f64 constant - --> $DIR/float_cmp_const.rs:24:5 + --> $DIR/float_cmp_const.rs:25:5 | -24 | v != ONE; +25 | v != ONE; | ^^^^^^^^ help: consider comparing them within some error: `(v - ONE).abs() < error` | note: std::f32::EPSILON and std::f64::EPSILON are available. - --> $DIR/float_cmp_const.rs:24:5 + --> $DIR/float_cmp_const.rs:25:5 | -24 | v != ONE; +25 | v != ONE; | ^^^^^^^^