Skip to content

Rollup of 8 pull requests - #164132

Merged
rust-bors[bot] merged 16 commits into
rust-lang:mainfrom
jhpratt:rollup-mABOFPo
Oct 11, 2026
Merged

rust-bors[bot] merged 16 commits into
rust-lang:mainfrom
jhpratt:rollup-mABOFPo

Conversation

@jhpratt

@jhpratt jhpratt commented Oct 11, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Hamdan-Khan and others added 16 commits September 30, 2026 22:12
…match

fixed misleading suggestions of adding a return and semicolon expression to an expression already in return position by adding a return position check.

fixed duplicate emission of error 277 by de-duplicateing the suggestion `suggest_missing_break_or_return_expr`, where a failed normalization leads to E277
Constants::new() built a table of 2^n for every n in
-(2 << 15)..=(2 << 15), plus a second table of 2^(n-1) for half_ulp,
separately for each float type. The size of 2^n grows with |n|, so each
table took 512 MiB. The unit tests use f32 and f64 and peak at 2.1 GiB,
which gets them OOM-killed on test-armhf-gnu's 1 GiB qemu machine.

Keep a single table shared by all float types, covering only the
exponents decode() can produce for f64, and look up half a ULP as the
next power of two down instead of keeping a second table. The unit
tests now peak at 15 MiB.
Outputs, where unit type is implicit default, did participate in the
deduction. Identify unit type as irrelevant for the deduction as an
optimization.
```
help: there is a method `bag` with a similar name, but with different arguments
  --> $DIR/suggest-methods.rs:9:5
   |
LL | trait FooT {
LL |     fn bag(&self);
   |     ^^^^^^^^^^^^^^
```
Co-authored-by: adwin <52573298+adwinwhite@users.noreply.github.com>
The error messages produced by libloading 0.9 are different than those
of libloading 0.8. The error message expected for GNU hosts changed in
the same fashion and was updated in
7672b83 alongside libloading, but the
one for musl hosts was never adjusted accordingly.
…rect

See the MIPS N64 ABI specification:
https://web.archive.org/web/20160121005457/http://techpubs.sgi.com/library/manuals/2000/007-2816-005/pdf/007-2816-005.pdf#page=25

The examples make clear why this is the correct behavior and not just a
GCC-ism that we're replicating.
…r=tgross35

test-float-parse: Share one table of powers of two sized for f64

Constants::new() built a table of 2^n for every n in -(2 << 15)..=(2 << 15), plus a second table of 2^(n-1) for half_ulp, separately for each float type. The size of 2^n grows with |n|, so each table took 512 MiB. The unit tests use f32 and f64 and peak at 2.1 GiB, which gets them OOM-killed on test-armhf-gnu's 1 GiB qemu machine.

Keep a single table shared by all float types, covering only the exponents decode() can produce for f64, and look up half a ULP as the next power of two down instead of keeping a second table. The unit tests now peak at 15 MiB.

Found when investigating the CI failure in rust-lang#162934
…ackh726

[tiny] Show trait span for associated item with similar name

```
help: there is a method `bag` with a similar name, but with different arguments
  --> $DIR/suggest-methods.rs:9:5
   |
LL | trait FooT {
LL |     fn bag(&self);
   |     ^^^^^^^^^^^^^^
```
deduced_param_attrs for unit type offers no benefit

Outputs, where unit type is implicit default, did participate in the deduction. Identify unit type as irrelevant for the deduction as an optimization.
…iagnostics, r=mejrs

fix misleading diagnostics and improve diagnostics of return type mismatch

Fix misleading diagnostics and improve diagnostics of return type mismatch

- Fixed misleading suggestions of adding a return and semicolon expression to an expression already in return position by adding a return position check.

- Fixed duplicate emission of error 277 by de-duplicateing the suggestion `suggest_missing_break_or_return_expr`, where a failed normalization leads to E277

fixes:  rust-lang#162271
…hite

set aliases in closure error bodies to rigid with next-solver

We already do this in the `DefKind::Closure` arm of `construct_fn`, and not doing so would cause us to ICE, such as in the test.

r? project-trait-system-refactor
…tests, r=Urgau

More `tests/rustdoc-html` cleanups

Another cleanup. :)

r? @Urgau
…olkertdev

callconv: mips64: Clarify why padding floats with integer args is correct

See the MIPS N64 ABI specification:
https://web.archive.org/web/20160121005457/http://techpubs.sgi.com/library/manuals/2000/007-2816-005/pdf/007-2816-005.pdf#page=25

The examples make clear why this is the correct behavior and not just a GCC-ism that we're replicating.

r? folkertdev
…-musl-libloading-0.9, r=folkertdev

tests: Update duplicated-path-in-error message on musl hosts

The error messages produced by libloading 0.9 are different than those of libloading 0.8. The error message expected for GNU hosts changed in the same fashion and was updated in 7672b83 alongside libloading, but the one for musl hosts was never adjusted accordingly.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Oct 11, 2026
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Oct 11, 2026
@jhpratt

jhpratt commented Oct 11, 2026

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

@rust-bors

rust-bors Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 0ea4194 has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors Bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Oct 11, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Oct 11, 2026
@rust-bors

rust-bors Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: jhpratt
Duration: 2h 51m 38s
Pushing 7211ea5 to main...

@rust-bors
rust-bors Bot merged commit 7211ea5 into rust-lang:main Oct 11, 2026
15 checks passed
@rustbot rustbot added this to the 1.101.0 milestone Oct 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor
What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 6f5da40 (parent) -> 7211ea5 (this PR)

Test differences

Show 118 test diffs

Stage 1

  • [rustdoc-html] tests/rustdoc-html/anon-fn-params.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/anonymous-lifetime.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/display/anon-fn-params.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/anonymous-lifetime.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/elided-lifetime.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/heading-levels-89309.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/read-more-unneeded.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/sized_trait.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/test-strikethrough.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/unit-return.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/variadic.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/where-clause-order.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/where-sized.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/display/wrapping.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/feature-gate-doc_auto_cfg.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/doc-on-keyword.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/elided-lifetime.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/feature-gate-doc_auto_cfg.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/fn-sidebar.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/heading-levels-89309.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/hidden-trait-methods.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/hidden/hidden-trait-methods.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/intra-doc/doc-on-keyword.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/read-more-unneeded.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/sidebar/fn-sidebar.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/sized_trait.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/struct-arg-pattern.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/struct-field.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/struct/struct-arg-pattern.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/struct/struct-field.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/struct/structfields.rs: [missing] -> pass (J0)
  • [rustdoc-html] tests/rustdoc-html/structfields.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/test-strikethrough.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/unit-return.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/variadic.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/where-clause-order.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/where-sized.rs: pass -> [missing] (J0)
  • [rustdoc-html] tests/rustdoc-html/wrapping.rs: pass -> [missing] (J0)
  • [ui] tests/ui/impl-trait/issues/return-type-mismatch-diagnostics-issue-162271.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/next-solver/alias-in-closure.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/impl-trait/issues/return-type-mismatch-diagnostics-issue-162271.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/traits/next-solver/alias-in-closure.rs: [missing] -> pass (J4)

Stage 2

  • [rustdoc-html] tests/rustdoc-html/anon-fn-params.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/anonymous-lifetime.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/display/anon-fn-params.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/anonymous-lifetime.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/elided-lifetime.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/heading-levels-89309.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/read-more-unneeded.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/sized_trait.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/test-strikethrough.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/unit-return.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/variadic.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/where-clause-order.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/where-sized.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/display/wrapping.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-cfg/feature-gate-doc_auto_cfg.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/doc-on-keyword.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/elided-lifetime.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/feature-gate-doc_auto_cfg.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/fn-sidebar.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/heading-levels-89309.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/hidden-trait-methods.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/hidden/hidden-trait-methods.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/intra-doc/doc-on-keyword.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/read-more-unneeded.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/sidebar/fn-sidebar.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/sized_trait.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/struct-arg-pattern.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/struct-field.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/struct/struct-arg-pattern.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/struct/struct-field.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/struct/structfields.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/structfields.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/test-strikethrough.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/unit-return.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/variadic.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/where-clause-order.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/where-sized.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/wrapping.rs: pass -> [missing] (J1)
  • [ui] tests/ui/impl-trait/issues/return-type-mismatch-diagnostics-issue-162271.rs: [missing] -> pass (J2)
  • [ui] tests/ui/traits/next-solver/alias-in-closure.rs: [missing] -> pass (J2)

Additionally, 36 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 7211ea594cbf137ef6118b1752b959dea7cb9088 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. test-x86_64-gnu-gcc-core-tests: 9m 28s -> 17m 43s (+87.1%)
  2. test-x86_64-rust-for-linux: 33m 9s -> 1h 1m (+85.9%)
  3. test-i686-gnu-nopt-2: 1h 22m -> 2h 29m (+81.9%)
  4. test-x86_64-gnu-stdlib-semver-check: 10m 30s -> 17m 58s (+71.1%)
  5. test-x86_64-gnu-parallel-frontend: 1h 18m -> 2h 3m (+56.7%)
  6. test-x86_64-gnu-llvm-22-2: 1h 8m -> 1h 46m (+55.3%)
  7. dist-x86_64-musl: 1h 33m -> 2h 24m (+54.1%)
  8. test-x86_64-gnu-llvm-22-3: 1h 16m -> 1h 54m (+50.3%)
  9. dist-i686-msvc: 32m 10s -> 47m 43s (+48.3%)
  10. dist-riscv64-linux-gnu: 1h 3m -> 1h 31m (+45.0%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (7211ea5): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-1.1% [-2.0%, -0.3%] 2
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary -1.4%, secondary -1.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
2.8% [2.8%, 2.8%] 1
Regressions ❌
(secondary)
3.4% [2.0%, 4.8%] 2
Improvements ✅
(primary)
-1.7% [-4.5%, -1.0%] 15
Improvements ✅
(secondary)
-1.9% [-3.7%, -0.5%] 18
All ❌✅ (primary) -1.4% [-4.5%, 2.8%] 16

Cycles

Results (secondary -2.4%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.4% [-2.7%, -2.1%] 2
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 488.596s -> 492.622s (0.82%)
Artifact size: 407.26 MiB -> 407.21 MiB (-0.01%)

@rust-bors

rust-bors Bot commented Oct 11, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#163402 test-float-parse: Share one table of powers of two sized fo… ad05399fb887ef395a38ef2ad0cd55b1864bc322
(link)
#163999 [tiny] Show trait span for associated item with similar name 3ecd6f85d161e8cb2fe1218fac9136c83caa86c9
(link)
#164020 deduced_param_attrs for unit type offers no benefit c42c4c8832513baff0eb61be9818d276b42aed5f
(link)
#162926 fix misleading diagnostics and improve diagnostics of retur… 05645bdad35e43c7c6de328a55f6067d94f88093
(link)
#164075 set aliases in closure error bodies to rigid with next-solv… b2f04c0bdcb37eff2a53534a5d96134d93778935
(link)
#164100 More tests/rustdoc-html cleanups ❌ build failed ❌
#164110 callconv: mips64: Clarify why padding floats with integer a… 1da952e2a46d7bad3af816b42abaac52674f667f
(link)
#164120 tests: Update duplicated-path-in-error message on musl hosts b635f8f1642a778a8c823ba9911ac21d1087b7bd
(link)

parent commit: 6f5da406b5

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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

Labels

merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants