#![warn(clippy::integer_division_remainder_used)] #![allow(unused_variables)] #![allow(clippy::op_ref)] struct CustomOps(pub i32); impl std::ops::Div for CustomOps { type Output = Self; fn div(self, rhs: Self) -> Self::Output { Self(self.0 / rhs.0) //~^ integer_division_remainder_used } } impl std::ops::Rem for CustomOps { type Output = Self; fn rem(self, rhs: Self) -> Self::Output { Self(self.0 % rhs.0) //~^ integer_division_remainder_used } } fn main() { // should trigger let a = 10; let b = 5; let c = a / b; //~^ integer_division_remainder_used let d = a % b; //~^ integer_division_remainder_used let e = &a / b; //~^ integer_division_remainder_used let f = a % &b; //~^ integer_division_remainder_used let g = &a / &b; //~^ integer_division_remainder_used let h = &10 % b; //~^ integer_division_remainder_used let i = a / &4; //~^ integer_division_remainder_used // should not trigger on custom Div and Rem let w = CustomOps(3); let x = CustomOps(4); let y = w / x; let w = CustomOps(3); let x = CustomOps(4); let z = w % x; }