2015-10-12 02:22:13 +00:00
|
|
|
#![feature(plugin)]
|
|
|
|
#![plugin(clippy)]
|
|
|
|
|
|
|
|
#[allow(unused_variables)]
|
|
|
|
#[deny(zero_divided_by_zero)]
|
|
|
|
fn main() {
|
|
|
|
let nan = 0.0 / 0.0; //~ERROR constant division of 0.0 with 0.0 will always result in NaN
|
2016-02-03 19:42:05 +00:00
|
|
|
//~^ equal expressions as operands to `/`
|
2015-10-12 02:22:13 +00:00
|
|
|
let f64_nan = 0.0 / 0.0f64; //~ERROR constant division of 0.0 with 0.0 will always result in NaN
|
2016-02-03 19:42:05 +00:00
|
|
|
//~^ equal expressions as operands to `/`
|
2015-10-12 02:22:13 +00:00
|
|
|
let other_f64_nan = 0.0f64 / 0.0; //~ERROR constant division of 0.0 with 0.0 will always result in NaN
|
2016-02-03 19:42:05 +00:00
|
|
|
//~^ equal expressions as operands to `/`
|
2015-10-12 02:22:13 +00:00
|
|
|
let one_more_f64_nan = 0.0f64/0.0f64; //~ERROR constant division of 0.0 with 0.0 will always result in NaN
|
2016-02-03 19:42:05 +00:00
|
|
|
//~^ equal expressions as operands to `/`
|
2015-10-12 02:22:13 +00:00
|
|
|
let zero = 0.0;
|
|
|
|
let other_zero = 0.0;
|
|
|
|
let other_nan = zero / other_zero; // fine - this lint doesn't propegate constants.
|
|
|
|
let not_nan = 2.0/0.0; // not an error: 2/0 = inf
|
|
|
|
let also_not_nan = 0.0/2.0; // not an error: 0/2 = 0
|
|
|
|
}
|