unnecessary_cast false negative: parameter vs. local · Issue #13495 · rust-lang/rust-clippy (original) (raw)

Summary

unnecessary_cast appears to trigger for a parameter, but not for a local.

Lint Name

unnecessary_cast

Reproducer

I tried this code:

fn g() -> i16 { 42 }

pub fn f1() -> i32 { let x = g(); x as i32 as i32 }

pub fn f2(x: i16) -> i32 { x as i32 as i32 }

I expected to see this happen: two lints, one on each function.

Instead, this happened: one lint, only on f2.

Version

rustc 1.83.0-nightly (18b1161ec 2024-10-02)
binary: rustc
commit-hash: 18b1161ec9eeab8927f91405bca0ddf59a4a26c9
commit-date: 2024-10-02
host: x86_64-unknown-linux-gnu
release: 1.83.0-nightly
LLVM version: 19.1.0