Re: [PATCH v3 0/2] rust: pin-init: fix incorrect accessor reference lifetime
From: Gary Guo
Date: Thu Apr 30 2026 - 20:26:36 EST
On Thu Apr 30, 2026 at 9:44 PM BST, Miguel Ojeda wrote:
> On Mon, Apr 27, 2026 at 5:43 PM Gary Guo <gary@xxxxxxxxxxx> wrote:
>>
>> When a field has been initialized, `init!`/`pin_init!` create a reference
>> or pinned reference to the field so it can be accessed later during the
>> initialization of other fields. However, the reference it created is
>> incorrectly `&'static` rather than just the scope of the initializer.
>>
>> This means that you can do
>>
>> init!(Foo {
>> a: 1,
>> _: {
>> let b: &'static u32 = a;
>> }
>> })
>>
>> which is unsound.
>>
>> This series fix the issue. Details can be found in the second patch.
>
> Applied to `rust-fixes` (originally, half a day ago) -- thanks!
>
> There are a couple typos in the contents of #2, but I didn't change
> them since I imagine you may want to do that upstream (relinguished,
> transfer -> transfers). I only fixed a couple nits in the commit
> messages since I assume that has no impact on your processes:
>
> [ Reworded for missing word. - Miguel ]
>
> [ Reworded for typo. - Miguel ]
For this specific one it would be okay even if you fixed up the typos, as I
haven't merged the PR yet (I hold up merging just in case you modify the
commit).
Best,
Gary