Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Rollup of 11 pull requests - #162139

Closed
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC
Closed

Rollup of 11 pull requests#162139
JonathanBrouwer wants to merge 30 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-zjVN3RC

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

hanna-kruppeand others added 30 commits August 29, 2026 13:50
I added this flag back in 2017 to enable benchmarking of the saturating
semantics when it was newly implemented and still experimental. But
saturation has been the official semantics for float<->int `as` casts
for years now. A flag for turning it off no longer serves any purpose,
it's just `-Zplease-miscompile-casts` now.
tests/ui/match/match-stack-overflow-72933-.rs crashes on s390x due to
hitting stack_size limit. changing the size to 17MB the crash.
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe
operations out of the blocks, making it easier to add the missing documentation
in the future.
rustdoc: add `--print` option
Context: `--print crate-root-lint-levels` (rust-lang#139180) is only available for `rustc` and `clippy-driver`, while it would make sense for it to also be available for `rustdoc` (à la rust-lang#83895.)
Not too sure about the stability of `rustdoc --print=any` or if this needs a MCP; strictly speaking, only `rustdoc +nightly -Z unstable-options --print=crate-root-lint-levels` would be required (and the `rustdoc --print` would be stabilized together with `crate-root-lint-levels`), but I guess that makes sense to have all the `--print`s for consistency.
For regression tests, not sure if ui or run-make is preferable, as run-make would need some sort of trait to avoid duplicating code between `rustc()` and `rustdoc()` (or just test `rustdoc` as it delegates to `rustc`):
https://github.com/rust-lang/rust/blob/021fc25b7a48f6051bee1e1f06c7a277e4de1cc9/tests/run-make/print-crate-root-lint-levels/rmake.rs#L82-L88@rustbot label +A-CLI +A-print-requests
Update `icu_list` dependency to 2.3
This removes the `icu_collections` transitive dependency, and uses the smaller `icu_locale_fallback` instead of `icu_locale`.
r? manishearth
…isDenton
change DEFAULT_STACK_SIZE to be 32MB on s390x
`tests/ui/match/match-stack-overflow-72933-.rs` crashes on s390x due to hitting stack_size limit(rust-lang#161742).
changing the size to 32MB on s390x fixes the crash.
Diverse offload fixes
`HostMetadata` pass skips linking. Now, `offload_kernel` macro lowers to `core` instead of `std`.
closes: rust-lang#161703
r? @ZuseZ4
…RalfJung
Remove -Zsaturating-float-casts flag
I added this flag back in 2017 (rust-lang#45205) to enable benchmarking of the saturating semantics when it was newly implemented and still experimental. But saturation has been the official semantics for float<->int `as` casts for years now. A flag for turning it off no longer serves any purpose, it's just `-Zplease-miscompile-casts` now.
Rework `next_power_of_two` to always be `1 << …`
r? @clarfonthey
Who accidentally nerd-sniped me by mentioning rust-lang#161069
This obviates that PR by reworking the `(checked_)next_power_of_two` logic to calculate the necessary exponent e, then return 2ᵉ, so it's structurally obvious from the IR -- the `shl nuw 1, …` instruction -- that it's always a power of two.
As always, the reason this is tricky is because shifts don't work for `<< Self::BITS`. The previous code handled that by checking `self <= 1` first, and thus doing a `-1 >> n` where `n < BITS`. This code instead flips the check: it looks up-front for a value that will wrap (an input above `1 << (BITS - 1)`) and thus by excluding those cases the calculated `1 << n` always has `n < BITS`. And the codegen tests show that, without needing any `llvm.assume`s, LLVM can take advantage of it to do things like rewriting `%` to masking. Plus the overflow check optimizes out for constrained inputs like slice lengths.
…ease
Move more `rustdoc-html` tests using `--test` into the right folder
Follow-up of rust-lang#161944.
I double-checked if more `rustdoc-html` tests were in the wrong folder and... yeah. So fixing that too. I'll send a patch to prevent that in the future (in `compiletest` I guess, doesn't seem like a `tidy` thing).
Oh also second commit is me realizing that some ui tests were using `compile-args` (which doesn't exist anymore) and without `@`. Anyway, fixed that too.
r? @fmease
…nthey
Change some `Infallible` to `!` in std
I believe this desirable since we recommend `!` over `Infallible`, so std follows its own advice. Most changes are to unstable features, but not all. Similar changes in compiler have to wait for a bootstrap update.
… r=mejrs
Remove `gate_check` from `AttributeStability::Unstable`
Based on the idea from rust-lang#162051 (comment)
r? @mejrs
…oc, r=clarfonthey
`alloc` crate: shrink undocumented `unsafe` blocks
Reduce the scope of `unsafe` blocks that are not yet documented by moving safe operations out of the blocks, making it easier to add the missing documentation in the future.
make it clear that Range cannot represent arbitrary ranges
This seems like a useful clarification, though it is already heavily implied by the first sentence in the docs.
What is less clear to me is what type one *should* use to represent arbitrary ranges. Should we recommend `(Bound<T>, Bound<T>)` for that purpose? It seems best-stuied, and is already used for that purpose by the btree collections and in rust-lang#136903. However, I suspect it is also common that one wants to represent an arbitrary range that's bounded on both sides. `RangeInclusive` can represent all those (though representing the empty range is a bit awkward), `Range` cannot.
Nominating for t-libs to get their general vibe on what we want to recommend here, if anything.
@rust-borsrust-borsBot added the rollup A PR which is a rollup label Sep 1, 2026
@rustbotrustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-rustdoc-search Area: Rustdoc's search feature A-tidy Area: The tidy tool A-translation Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. T-rustdoc-frontend Relevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output. labels Sep 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
MemberAuthor

@bors r+ p=5

Trying commonly failed jobs
@bors try jobs=dist-various-1,test-various,x86_64-gnu-aux,x86_64-gnu-llvm-21-3,x86_64-msvc-1,aarch64-apple-1,aarch64-apple-2,x86_64-mingw-1,i686-msvc-1,i686-msvc-2

@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 31ea8db has been approved by JonathanBrouwer

It is now in the queue for this repository.

@rust-borsrust-borsBot 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 Sep 1, 2026
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Sep 1, 2026
Rollup of 11 pull requests
try-job: dist-various-1
try-job: test-various
try-job: x86_64-gnu-aux
try-job: x86_64-gnu-llvm-21-3
try-job: x86_64-msvc-1
try-job: aarch64-apple-1
try-job: aarch64-apple-2
try-job: x86_64-mingw-1
try-job: i686-msvc-1
try-job: i686-msvc-2
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job aarch64-apple-1 failed! Check out the build log: (web)(plain enhanced)(plain)

Click to see the possible cause of the failure (guessed by this bot)
Saved the actual stdout to `/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option/sanitizer-option.stdout`
normalized stdout:
running 1 test
test $DIR/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in $TIME
The actual stdout differed from the expected stdout
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args doctest/sanitizer-option.rs`
error: 1 errors occurred comparing output.
status: exit status: 0
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2/bin/rustdoc" "/Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/.cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/Users/runner/work/rust/rust/vendor" "--sysroot" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/stage2" "--target=aarch64-apple-darwin" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "-o" "/Users/runner/work/rust/rust/build/aarch64-apple-darwin/test/rustdoc-ui/doctest/sanitizer-option" "-Znext-solver=coherence" "-A" "internal_features" "-A" "incomplete_features" "-A" "unused_parens" "-A" "unused_braces" "-Cdebuginfo=0" "--test" "-Z" "sanitizer=address" "-C" "unsafe-allow-abi-mismatch=sanitizer"
--- stdout -------------------------------
running 1 test
test /Users/runner/work/rust/rust/tests/rustdoc-ui/doctest/sanitizer-option.rs - z_flag_is_passed_to_rustc (line 11) ... ok

@rust-borsrust-borsBot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

PR #162014, which is a member of this rollup, was unapproved.

This rollup was thus unapproved.

@rustbotrustbot removed the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-borsrust-borsBot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Sep 1, 2026
@rust-bors

rust-borsBot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 6a3484a failed: CI. Failed jobs:

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsArea: Rustdoc's JS front-endA-rustdoc-searchArea: Rustdoc's search featureA-tidyArea: The tidy toolA-translationArea: Translation infrastructure, and migrating existing diagnostics to SessionDiagnosticrollupA PR which is a rollupS-waiting-on-authorStatus: This is awaiting some action (such as code changes or more information) from the author.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant to the rustdoc-frontend team, which will review and decide on the web UI/UX output.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

13 participants

@JonathanBrouwer@rust-log-analyzer@rustbot@hanna-kruppe@ShE3py@GuillaumeGomez@fneddy@scottmcm@DanielEScherzer@Sa4dUs@robertbastian@camsteffen@RalfJung