Fix integer_division false negative for NonZero denominators (#14664)

Close rust-lang/rust-clippy#14652

changelog: [`integer_division`]: fix false negative for NonZero
denominators
This commit is contained in:
Alejandra González 2025-05-09 20:50:04 +00:00 committed by GitHub
commit 16fd2a83d7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 24 additions and 5 deletions

View file

@ -1,5 +1,9 @@
#![warn(clippy::integer_division)]
use std::num::NonZeroU32;
const TWO: NonZeroU32 = NonZeroU32::new(2).unwrap();
fn main() {
let two = 2;
let n = 1 / 2;
@ -12,4 +16,8 @@ fn main() {
//~^ integer_division
let x = 1. / 2.0;
let a = 1;
let s = a / TWO;
//~^ integer_division
}

View file

@ -1,5 +1,5 @@
error: integer division
--> tests/ui/integer_division.rs:5:13
--> tests/ui/integer_division.rs:9:13
|
LL | let n = 1 / 2;
| ^^^^^
@ -9,7 +9,7 @@ LL | let n = 1 / 2;
= help: to override `-D warnings` add `#[allow(clippy::integer_division)]`
error: integer division
--> tests/ui/integer_division.rs:8:13
--> tests/ui/integer_division.rs:12:13
|
LL | let o = 1 / two;
| ^^^^^^^
@ -17,12 +17,20 @@ LL | let o = 1 / two;
= help: division of integers may cause loss of precision. consider using floats
error: integer division
--> tests/ui/integer_division.rs:11:13
--> tests/ui/integer_division.rs:15:13
|
LL | let p = two / 4;
| ^^^^^^^
|
= help: division of integers may cause loss of precision. consider using floats
error: aborting due to 3 previous errors
error: integer division
--> tests/ui/integer_division.rs:21:13
|
LL | let s = a / TWO;
| ^^^^^^^
|
= help: division of integers may cause loss of precision. consider using floats
error: aborting due to 4 previous errors