blob: 63ae61059cb86845564c7375c351aed20ca33900 [file] [log] [blame]
#![warn(clippy::modulo_one)]
#![allow(unconditional_panic)]
#![allow(clippy::no_effect, clippy::unnecessary_operation, clippy::identity_op)]
static STATIC_ONE: usize = 2 - 1;
static STATIC_NEG_ONE: i64 = 1 - 2;
fn main() {
10 % 1;
//~^ modulo_one
10 % -1;
//~^ modulo_one
10 % 2;
// also caught by rustc
i32::MIN % (-1);
//~^ modulo_one
const ONE: u32 = 1 * 1;
const NEG_ONE: i64 = 1 - 2;
const INT_MIN: i64 = i64::MIN;
2 % ONE;
//~^ modulo_one
// NOT caught by lint
5 % STATIC_ONE;
2 % NEG_ONE;
//~^ modulo_one
// NOT caught by lint
5 % STATIC_NEG_ONE;
// also caught by rustc
INT_MIN % NEG_ONE;
//~^ modulo_one
// Not caught by lint, we don't look into static items, even if entirely immutable.
INT_MIN % STATIC_NEG_ONE;
}