Re: [PATCH v2] rust: num: bounded: mark __new as unsafe

From: Alexandre Courbot

Date: Wed Dec 03 2025 - 07:29:42 EST


On Tue Dec 2, 2025 at 12:25 PM JST, Hsiu Che Yu wrote:
> The `Bounded::__new()` constructor relies on the caller to ensure the
> value can be represented within N bits. Failing to uphold this
> requirement breaks the type invariant. Mark it as unsafe and document
> this requirement in a Safety section to make the contract explicit.
>
> Update all call sites to use unsafe blocks and change their comments
> from `INVARIANT:` to `SAFETY:`, as they are now justifying unsafe
> operations rather than establishing type invariants.
>
> Fixes: 01e345e82ec3a ("rust: num: add Bounded integer wrapping type")
> Reported-by: Miguel Ojeda <ojeda@xxxxxxxxxx>

Wasn't it Alice who said that `__new` should be unsafe?

Although Miguel did create the bug. In any case, maybe add a `Link:` tag
to this:

https://lore.kernel.org/all/aS1qC_ol2XEpZ44b@xxxxxxxxxx/

> Closes: https://github.com/Rust-for-Linux/linux/issues/1211
>
> Signed-off-by: Hsiu Che Yu <yu.whisper.personal@xxxxxxxxx>

The empty line is not needed.

With this,

Acked-by: Alexandre Courbot <acourbot@xxxxxxxxxx>