2016-04-30 02:01:47 +00:00
|
|
|
#![feature(plugin)]
|
|
|
|
#![plugin(clippy)]
|
|
|
|
|
|
|
|
#![deny(integer_arithmetic, float_arithmetic)]
|
2016-05-13 14:43:47 +00:00
|
|
|
#![allow(unused, shadow_reuse, shadow_unrelated, no_effect, unnecessary_operation)]
|
2016-04-30 02:01:47 +00:00
|
|
|
fn main() {
|
|
|
|
let i = 1i32;
|
|
|
|
1 + i; //~ERROR integer arithmetic detected
|
|
|
|
i * 2; //~ERROR integer arithmetic detected
|
|
|
|
1 % //~ERROR integer arithmetic detected
|
2016-04-30 15:11:59 +00:00
|
|
|
i / 2; // no error, this is part of the expression in the preceding line
|
2016-04-30 02:01:47 +00:00
|
|
|
i - 2 + 2 - i; //~ERROR integer arithmetic detected
|
|
|
|
-i; //~ERROR integer arithmetic detected
|
2016-05-13 14:43:47 +00:00
|
|
|
|
2016-04-30 02:01:47 +00:00
|
|
|
i & 1; // no wrapping
|
2016-05-13 14:43:47 +00:00
|
|
|
i | 1;
|
2016-04-30 02:01:47 +00:00
|
|
|
i ^ 1;
|
|
|
|
i >> 1;
|
|
|
|
i << 1;
|
2016-05-13 14:43:47 +00:00
|
|
|
|
2016-04-30 02:01:47 +00:00
|
|
|
let f = 1.0f32;
|
2016-05-13 14:43:47 +00:00
|
|
|
|
2016-04-30 02:01:47 +00:00
|
|
|
f * 2.0; //~ERROR floating-point arithmetic detected
|
2016-05-13 14:43:47 +00:00
|
|
|
|
2016-04-30 02:01:47 +00:00
|
|
|
1.0 + f; //~ERROR floating-point arithmetic detected
|
|
|
|
f * 2.0; //~ERROR floating-point arithmetic detected
|
|
|
|
f / 2.0; //~ERROR floating-point arithmetic detected
|
|
|
|
f - 2.0 * 4.2; //~ERROR floating-point arithmetic detected
|
|
|
|
-f; //~ERROR floating-point arithmetic detected
|
|
|
|
}
|