Re: [PATCH] rust: init: change the generated name of guard variables

From: Boqun Feng
Date: Wed Apr 03 2024 - 18:39:26 EST


On Wed, Apr 03, 2024 at 10:09:49PM +0000, Benno Lossin wrote:
> On 03.04.24 23:20, Boqun Feng wrote:
> > On Wed, Apr 03, 2024 at 07:43:37PM +0000, Benno Lossin wrote:
> >> The initializers created by the `[try_][pin_]init!` macros utilize the
> >> guard pattern to drop already initialized fields, when initialization
> >> fails mid-way. These guards are generated to have the same name as the
> >> field that they handle. To prevent namespacing issues when the field
> >
> > Do you have an example of this kind of issues?
>
> https://lore.kernel.org/rust-for-linux/1e8a2a1f-abbf-44ba-8344-705a9cbb1627@xxxxxxxxx/
>

Ok, so a new binding cannot shadow the name of a constant, that's a bit
surprising, but seems makes sense.

The solution is not ideal (for example, a constant can have the name
"__something_guard"), but nothing better we could I guess.

FWIW:

Reviewed-by: Boqun Feng <boqun.feng@xxxxxxxxx>

Regards,
Boqun

> --
> Cheers,
> Benno
>
>