]> www.infradead.org Git - users/jedix/linux-maple.git/commit
rust: clean Rust 1.88.0's `unnecessary_transmutes` lint
authorMiguel Ojeda <ojeda@kernel.org>
Fri, 2 May 2025 14:02:35 +0000 (16:02 +0200)
committerMiguel Ojeda <ojeda@kernel.org>
Tue, 6 May 2025 22:11:47 +0000 (00:11 +0200)
commit7129ea6e242b00938532537da41ddf5fa3e21471
treefa5673fa167e1f39b72b225cedd71520b3c12aaa
parenta39f3087092716f2bd531d6fdc20403c3dc2a879
rust: clean Rust 1.88.0's `unnecessary_transmutes` lint

Starting with Rust 1.88.0 (expected 2025-06-26) [1][2], `rustc` may
introduce a new lint that catches unnecessary transmutes, e.g.:

     error: unnecessary transmute
         --> rust/uapi/uapi_generated.rs:23242:18
          |
    23242 |         unsafe { ::core::mem::transmute(self._bitfield_1.get(0usize, 1u8) as u8) }
          |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace this with: `(self._bitfield_1.get(0usize, 1u8) as u8 == 1)`
          |
          = note: `-D unnecessary-transmutes` implied by `-D warnings`
          = help: to override `-D warnings` add `#[allow(unnecessary_transmutes)]`

There are a lot of them (at least 300), but luckily they are all in
`bindgen`-generated code.

Thus clean all up by allowing it there.

Since unknown lints trigger a lint itself in older compilers, do it
conditionally so that we can keep the `unknown_lints` lint enabled.

Cc: stable@vger.kernel.org # Needed in 6.12.y and later (Rust is pinned in older LTSs).
Link: https://github.com/rust-lang/rust/pull/136083
Link: https://github.com/rust-lang/rust/issues/136067
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20250502140237.1659624-4-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
init/Kconfig
rust/bindings/lib.rs
rust/uapi/lib.rs