- Notifications
You must be signed in to change notification settings - Fork 1.8k
Closed
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-positiveIssue: The lint was triggered on code it shouldn't haveIssue: The lint was triggered on code it shouldn't have
Description
Summary
Hi,
Clippy shoudn't lint about casting x2n as an unsigned integer since the result cannot be negative. The lint should still be shown for x3.
Lint Name
cast_sign_loss
Reproducer
I tried this code:
#[forbid(clippy::cast_sign_loss)] pub fn square(x: i16) -> u32 { let x = x as i32; (x * x) as u32 }I saw this happen:
error: casting `i32` to `u32` may lose the sign of the value --> src/lib.rs:6:5 | 6 | (x * x) as u32 | ^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss I expected to see this happen:
No output, as x² ⩾ 0.
Version
rustc 1.73.0 (cc66ad468 2023-10-03) binary: rustc commit-hash: cc66ad468955717ab92600c770da8c1601a4ff33 commit-date: 2023-10-03 host: x86_64-unknown-linux-gnu release: 1.73.0 LLVM version: 17.0.2 Additional Labels
No response
Metadata
Metadata
Assignees
Labels
C-bugCategory: Clippy is not doing the correct thingCategory: Clippy is not doing the correct thingI-false-positiveIssue: The lint was triggered on code it shouldn't haveIssue: The lint was triggered on code it shouldn't have