Messages in this thread | | | Date | Wed, 3 Apr 2024 15:38:12 -0700 | From | Boqun Feng <> | Subject | Re: [PATCH] rust: init: change the generated name of guard variables |
| |
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@proton.me/ >
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@gmail.com>
Regards, Boqun
> -- > Cheers, > Benno > >
| |