Skip to content

Remove unnecessary safety conditions related to unchecked uint arithmetic#155450

Merged
rust-bors[bot] merged 1 commit intorust-lang:mainfrom
safer-rust:fix-doc2
Apr 18, 2026
Merged

Remove unnecessary safety conditions related to unchecked uint arithmetic#155450
rust-bors[bot] merged 1 commit intorust-lang:mainfrom
safer-rust:fix-doc2

Conversation

@hxuhack
Copy link
Copy Markdown
Contributor

@hxuhack hxuhack commented Apr 17, 2026

Improve the safety documentation of three unsafe APIs related to unsigned integer arithmetic.

The examples use usize for demonstration. All unsigned integer types suffer from the same issue because their APIs are generated by the same macro uint_impl, and fixing the macro documentation will fix them all.

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Apr 17, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 17, 2026

r? @jhpratt

rustbot has assigned @jhpratt.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

Why was this reviewer chosen?

The reviewer was selected based on:

  • Owners of files modified in this PR: @scottmcm, libs
  • @scottmcm, libs expanded to 7 candidates
  • Random selection from Mark-Simulacrum, jhpratt, scottmcm

@jhpratt
Copy link
Copy Markdown
Member

jhpratt commented Apr 18, 2026

Nice catch.

@bors r+ rollup

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 18, 2026

📌 Commit d9c7177 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 18, 2026
jhpratt added a commit to jhpratt/rust that referenced this pull request Apr 18, 2026
Remove unnecessary safety conditions related to unchecked uint arithmetic

Improve the safety documentation of three unsafe APIs related to unsigned integer arithmetic.

- [unchecked_add](https://doc.rust-lang.org/nightly/core/primitive.usize.html#method.unchecked_add): It is impossible for `self + rhs < usize::MIN`.
- [unchecked_sub](https://doc.rust-lang.org/nightly/core/primitive.usize.html#method.unchecked_sub): It is impossible for `self - rhs > usize::MAX`.
- [unchecked_mul](https://doc.rust-lang.org/nightly/core/primitive.usize.html#method.unchecked_mul): It is impossible for `self * rhs < usize::MIN`.

The examples use `usize` for demonstration. All unsigned integer types suffer from the same issue because their APIs are generated by the same macro `uint_impl`, and fixing the macro documentation will fix them all.
rust-bors Bot pushed a commit that referenced this pull request Apr 18, 2026
Rollup of 12 pull requests

Successful merges:

 - #147811 (naked functions: respect `function-sections`)
 - #154935 (Add Sized supertrait for CoerceUnsized and DispatchFromDyn)
 - #139690 (`impl Default for RepeatN`)
 - #153511 (`std::any::TypeId`: remove misplaced "and" in `Unique<T>` example)
 - #154943 (Move recursion out of `MatchPairTree::for_pattern` helpers )
 - #155295 (Fix misleading "borrowed data escapes outside of function" diagnostic)
 - #155427 (ptr: update text in intro text to one in with_addr doc)
 - #155428 (Fix ICE in borrowck mutability suggestion with multi-byte ref sigil)
 - #155435 (rustdoc: Fix `redundant_explicit_links` incorrectly firing (or not firing) under certain scenarios)
 - #155450 (Remove unnecessary safety conditions related to unchecked uint arithmetic)
 - #155454 (docs: Fix typo in std/src/thready/scoped.rs)
 - #155467 (`std::error::Request`: clean up documentation)
@rust-bors rust-bors Bot merged commit 0c326ec into rust-lang:main Apr 18, 2026
11 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 18, 2026
rust-timer added a commit that referenced this pull request Apr 18, 2026
Rollup merge of #155450 - safer-rust:fix-doc2, r=jhpratt

Remove unnecessary safety conditions related to unchecked uint arithmetic

Improve the safety documentation of three unsafe APIs related to unsigned integer arithmetic.

- [unchecked_add](https://doc.rust-lang.org/nightly/core/primitive.usize.html#method.unchecked_add): It is impossible for `self + rhs < usize::MIN`.
- [unchecked_sub](https://doc.rust-lang.org/nightly/core/primitive.usize.html#method.unchecked_sub): It is impossible for `self - rhs > usize::MAX`.
- [unchecked_mul](https://doc.rust-lang.org/nightly/core/primitive.usize.html#method.unchecked_mul): It is impossible for `self * rhs < usize::MIN`.

The examples use `usize` for demonstration. All unsigned integer types suffer from the same issue because their APIs are generated by the same macro `uint_impl`, and fixing the macro documentation will fix them all.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants