Re: [PATCH] rust: pin-init: replace clippy `expect` with `allow`
From: Benno Lossin
Date: Sun Feb 15 2026 - 09:57:50 EST
On Sun Feb 15, 2026 at 3:24 PM CET, Tamir Duberstein wrote:
> On Sun, Feb 15, 2026 at 8:22 AM Benno Lossin <lossin@xxxxxxxxxx> wrote:
>>
>> `clippy` has changed behavior in [1] (Rust 1.95) where it no longer
>> warns about the `let_and_return` lint when a comment is placed between
>> the let binding and the return expression. Nightly thus fails to build,
>> because the expectation is no longer fulfilled.
>>
>> Thus replace the expectation with an `allow`.
>>
>> Link: https://github.com/rust-lang/rust-clippy/pull/16461 [1]
>> Signed-off-by: Benno Lossin <lossin@xxxxxxxxxx>
>> ---
>> rust/pin-init/src/lib.rs | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/rust/pin-init/src/lib.rs b/rust/pin-init/src/lib.rs
>> index 49945fc07f25..fe4c85ae3f02 100644
>> --- a/rust/pin-init/src/lib.rs
>> +++ b/rust/pin-init/src/lib.rs
>> @@ -1143,13 +1143,13 @@ unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), E> {
>> ///
>> /// - `*mut U` must be castable to `*mut T` and any value of type `T` written through such a
>> /// pointer must result in a valid `U`.
>> -#[expect(clippy::let_and_return)]
>> pub const unsafe fn cast_pin_init<T, U, E>(init: impl PinInit<T, E>) -> impl PinInit<U, E> {
>> // 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::<T>())) };
>> // FIXME: remove the let statement once the nightly-MSRV allows it (1.78 otherwise encounters a
>> // cycle when computing the type returned by this function)
>> + #[allow(clippy::let_and_return)]
>
> Consider adding `reason = "..."`.
Isn't the FIXME comment directly above enough? I don't want to duplicate
the information and the string constant explaining the reason looks
ugly.
Cheers,
Benno