From: Gary Guo Date: Tue, 28 Apr 2026 13:10:58 +0000 (+0100) Subject: rust: pin-init: cleanup workaround for old Rust compiler X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3dc01266cdf02b7abf733b022f6b936be567fc17;p=thirdparty%2Flinux.git rust: pin-init: cleanup workaround for old Rust compiler The workaround mentions it's for Rust versions before 1.81. The minimum is now 1.82, thus clean up. Link: https://patch.msgid.link/20260428-pin-init-sync-v1-9-07f9bd3859fb@garyguo.net Signed-off-by: Gary Guo --- diff --git a/rust/pin-init/internal/src/init.rs b/rust/pin-init/internal/src/init.rs index 487ee0013fafe..b0bfe44695e19 100644 --- a/rust/pin-init/internal/src/init.rs +++ b/rust/pin-init/internal/src/init.rs @@ -172,14 +172,7 @@ pub(crate) fn expand( init(slot).map(|__InitOk| ()) }; // SAFETY: TODO - let init = unsafe { ::pin_init::#init_from_closure::<_, #error>(init) }; - // FIXME: this let binding is required to avoid a compiler error (cycle when computing the - // opaque type returned by this function) before Rust 1.81. Remove after MSRV bump. - #[allow( - clippy::let_and_return, - reason = "some clippy versions warn about the let binding" - )] - init + unsafe { ::pin_init::#init_from_closure::<_, #error>(init) } }}) } diff --git a/rust/pin-init/src/lib.rs b/rust/pin-init/src/lib.rs index 9b76cf5597c62..80c476e605f72 100644 --- a/rust/pin-init/src/lib.rs +++ b/rust/pin-init/src/lib.rs @@ -1139,14 +1139,7 @@ pub const unsafe fn init_from_closure( pub const unsafe fn cast_pin_init(init: impl PinInit) -> impl PinInit { // SAFETY: initialization delegated to a valid initializer. Cast is valid by function safety // requirements. - let res = unsafe { pin_init_from_closure(|ptr: *mut U| init.__pinned_init(ptr.cast::())) }; - // FIXME: this let binding is required to avoid a compiler error (cycle when computing the opaque - // type returned by this function) before Rust 1.81. Remove after MSRV bump. - #[allow( - clippy::let_and_return, - reason = "some clippy versions warn about the let binding" - )] - res + unsafe { pin_init_from_closure(|ptr: *mut U| init.__pinned_init(ptr.cast::())) } } /// Changes the to be initialized type. @@ -1158,14 +1151,7 @@ pub const unsafe fn cast_pin_init(init: impl PinInit) -> impl Pin pub const unsafe fn cast_init(init: impl Init) -> impl Init { // SAFETY: initialization delegated to a valid initializer. Cast is valid by function safety // requirements. - let res = unsafe { init_from_closure(|ptr: *mut U| init.__init(ptr.cast::())) }; - // FIXME: this let binding is required to avoid a compiler error (cycle when computing the opaque - // type returned by this function) before Rust 1.81. Remove after MSRV bump. - #[allow( - clippy::let_and_return, - reason = "some clippy versions warn about the let binding" - )] - res + unsafe { init_from_closure(|ptr: *mut U| init.__init(ptr.cast::())) } } /// An initializer that leaves the memory uninitialized.