Skip to content

Rollup of 6 pull requests - #165270

Merged
rust-bors[bot] merged 33 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-jB5fD4S
Nov 1, 2026
Merged

rust-bors[bot] merged 33 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-jB5fD4S

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

estebank and others added 30 commits October 25, 2026 16:29
This becomes particularly confusing when a type parameter has a default.

```
  --> $DIR/default-type-parameter.rs:8:17
   |
LL |     fn foo() -> u32 { 0 }
   |                 ^^^ expected `()`, found `u32`
   |
note: type in trait
  --> $DIR/default-type-parameter.rs:2:17
   |
LL |     fn foo() -> T;
   |                 ^
   = note: expected signature `fn() -> ()`
              found signature `fn() -> u32`
note: expected to match this type parameter
  --> $DIR/default-type-parameter.rs:1:13
   |
LL | trait Trait<T = ()> {
   |             ^^^^^^
help: change the output type to match the trait
   |
LL -     fn foo() -> u32 { 0 }
LL +     fn foo() -> () { 0 }
```
…the trait

```
error[E0053]: method `foo` has an incompatible type for trait
  --> $DIR/async-example-desugared-boxed-in-trait.rs:11:28
   |
LL | impl MyTrait for i32 {
LL |     async fn foo(&self) -> i32 {
   |                            ^^^ expected `Pin<Box<dyn Future<Output = i32>>>`, found future
   |
note: type in trait
  --> $DIR/async-example-desugared-boxed-in-trait.rs:7:22
   |
LL | trait MyTrait {
LL |     fn foo(&self) -> Pin<Box<dyn Future<Output = i32> + '_>>;
   |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: expected signature `fn(&_) -> Pin<Box<dyn Future<Output = i32>>>`
              found signature `fn(&_) -> impl Future<Output = i32>`
```
…type in trait" note

```
error[E0053]: method `foo` has an incompatible type for trait
  --> $DIR/default-type-parameter.rs:8:17
   |
LL | impl Trait for S {
LL |     fn foo() -> u32 { 0 }
   |                 ^^^ expected `()`, found `u32`
   |
note: type in trait
  --> $DIR/default-type-parameter.rs:2:17
   |
LL | trait Trait<T = ()> {
   |             ------ expected to match the default of type parameter `T`
LL |     fn foo() -> T;
   |                 ^
   = note: expected signature `fn() -> ()`
              found signature `fn() -> u32`
help: change the output type to match the trait
   |
LL -     fn foo() -> u32 { 0 }
LL +     fn foo() -> () { 0 }
   |
```
When used, this option creates a subheading within the sidebar
“Crates” list for this crate and all crates which pass the same value.
These headings are displayed in alphabetical order; crates without the
option, or with it set to the empty string, always appear first.

The intended use of this option is to allow Cargo to automatically
separate a workspace’s crate list into the workspace’s own crates
and their external dependencies. Authors could also use RUSTDOCFLAGS
or other means to create custom headings for their documentation builds.
rustdoc: add unstable option `--crate-list-heading` to customize the sidebar crate list.

When used, this option creates a subheading within the sidebar “Crates” list for this crate and all crates which pass the same value. These headings are displayed in alphabetical order; crates without the option, or with it set to the empty string, always appear first.

The intended use of this option is to allow Cargo to automatically separate a workspace’s crate list into the workspace’s own crates and their external dependencies (as requested in rust-lang#85759 and, loosely, rust-lang#81031). Even without Cargo support, authors could also use `RUSTDOCFLAGS` to create custom headings for their documentation builds (which may address rust-lang#16328).

As currently written, merging this would break all nightly builds against a pre-existing `target/doc/`, because the format of `crates.js` (defining variable `window.ALL_CRATES`) is changed. I don’t know whether backwards compatibility is worth implementing here, but it is possible to arrange — I figured I should first get a review of the general idea before polishing it.

----

Example of the new sidebar appearance in one of my workspaces:

<img width="258" alt="image" src="https://github.com/user-attachments/assets/515e3964-a293-4301-b878-5b2394855ffd" />

<details><summary>Original obsolete version</summary>
<img width="269" alt="image" src="https://github.com/user-attachments/assets/5db8a93f-9511-4d6b-8219-9d0bc74f07ed" /></details>

The vertical margins `<h3>Dependencies</h3>` should probably adjusted to have clearer visual hierarchy, but I don’t think that should be done in this PR. Also note that this additional header will not appear until explicitly requested via the flag — in this screenshot I am also using a patched Cargo.

----

@rustbot label A-rustdoc-ui T-rustdoc T-rustdoc-frontend
… r=jieyouxu

Restore aarch64-apple-1 jobs with free disk space

The `apple-1` jobs seem to work with the free disk space script that I've copied from rust-lang#165148
Lets re-enable them

The commits are cherry-picked from rust-lang#165148 without changes, plus a few added commits to disable the `-2` jobs again.

r? ghost
Provide more context when an expected type was a type parameter

This becomes particularly confusing when a type parameter has a default.

```
error[E0053]: method `foo` has an incompatible type for trait
  --> $DIR/default-type-parameter.rs:8:17
   |
LL | impl Trait for S {
LL |     fn foo() -> u32 { 0 }
   |                 ^^^ expected `()`, found `u32`
   |
note: type in trait
  --> $DIR/default-type-parameter.rs:2:17
   |
LL | trait Trait<T = ()> {
   |             ------ expected to match the default of type parameter `T`
LL |     fn foo() -> T;
   |                 ^
   = note: expected signature `fn() -> ()`
              found signature `fn() -> u32`
help: change the output type to match the trait
   |
LL -     fn foo() -> u32 { 0 }
LL +     fn foo() -> () { 0 }
   |
```
Fix rust-lang#67991.
@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-infra Relevant to the infrastructure 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 Nov 1, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5 force

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

@rust-bors

rust-bors Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4ee7d8e has been approved by JonathanBrouwer

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 Nov 1, 2026
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Nov 1, 2026
Rollup of 6 pull requests


try-job: dist-various-1
try-job: test-various
try-job: test-x86_64-gnu-aux
try-job: test-x86_64-msvc-1
try-job: test-aarch64-apple-1
try-job: test-x86_64-mingw-1
try-job: test-i686-msvc
try-job: test-armhf-gnu
try-job: test-x86_64-gnu-llvm-22-3
try-job: test-aarch64-msvc-2
@rust-bors

This comment has been minimized.

@rust-bors

rust-bors Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 1847507 (18475075cce1a474622b1c2cd8186dd2f6a797fb)
Base parent: eec3f1e (eec3f1e03ccbff59d284e85ab51eca43e70bd85c)

@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 Nov 1, 2026
@rust-bors

rust-bors Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 5h 55m 9s
Pushing 349bba6 to main...

@github-actions

github-actions Bot commented Nov 1, 2026

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 f90a2d2 (parent) -> 349bba6 (this PR)

Test differences

Show 21 test diffs

Stage 1

  • [ui] tests/ui/async-await/async-drop/cancelled-future-drops-sync-fields-164901.rs: pass -> [missing] (J3)
  • [ui] tests/ui/compare-method/default-type-parameter.rs: [missing] -> pass (J3)
  • [ui] tests/ui/drop/async-drop-cycle-issue-165263.rs: [missing] -> pass (J3)
  • [ui] tests/ui/drop/tail_expr_drop_order-on-async-block-with-drop-field.rs: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/async-await/async-drop/cancelled-future-drops-sync-fields-164901.rs: pass -> [missing] (J4)
  • [ui (polonius)] tests/ui/compare-method/default-type-parameter.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/drop/async-drop-cycle-issue-165263.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/drop/tail_expr_drop_order-on-async-block-with-drop-field.rs: pass -> [missing] (J4)
  • [crashes] tests/crashes/142155.rs: [missing] -> pass (J6)
  • [rustdoc-html] tests/rustdoc-html/crate-list-heading.rs: [missing] -> pass (J6)

Stage 2

  • [crashes] tests/crashes/142155.rs: [missing] -> pass (J0)
  • [ui] tests/ui/async-await/async-drop/cancelled-future-drops-sync-fields-164901.rs: pass -> [missing] (J1)
  • [ui] tests/ui/compare-method/default-type-parameter.rs: [missing] -> pass (J1)
  • [ui] tests/ui/drop/async-drop-cycle-issue-165263.rs: [missing] -> pass (J1)
  • [ui] tests/ui/drop/tail_expr_drop_order-on-async-block-with-drop-field.rs: pass -> [missing] (J1)
  • [rustdoc-html] tests/rustdoc-html/crate-list-heading.rs: [missing] -> pass (J2)
  • [crashes] tests/crashes/142155.rs: [missing] -> ignore (ignored if rustc wasn't built with debug assertions) (J5)

Additionally, 4 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 349bba62f1838cbd9b453ffda272c6972754122d --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: 1h 12m -> 19m 19s (-73.4%)
  2. dist-android: 1h 32m -> 32m 21s (-65.1%)
  3. dist-i586-gnu-i586-i686-musl: 1h 22m -> 29m 25s (-64.6%)
  4. test-x86_64-gnu-stdlib-semver-check: 8m 19s -> 13m 35s (+63.3%)
  5. test-x86_64-gnu-next-trait-solver-polonius: 1h 58m -> 45m 54s (-61.4%)
  6. test-pr-check-1: 1h 34m -> 37m 44s (-59.9%)
  7. test-x86_64-msvc-ext1: 1h 28m -> 2h 17m (+55.5%)
  8. test-pr-check-2: 1h 25m -> 38m 34s (-54.7%)
  9. dist-i686-msvc: 1h 48m -> 50m 21s (-53.4%)
  10. dist-various-2: 1h 50m -> 51m 55s (-53.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-bors

rust-bors Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#138143 rustdoc: add unstable option --crate-list-heading to cust… 0176660328a053b2ce1364aba37f02d06b346065
(link)
#165251 Restore aarch64-apple-1 jobs with free disk space 0d32abe41e44c31149301bdb03c51d82a174fea1
(link)
#160180 Provide more context when an expected type was a type param… 098723b84506201b9efa59f1cf878b057dbc96c4
(link)
#165262 Replace AbiAlign with Align in function returns 00ab8f2f599a01f274ea4f7a9192771795eb736c
(link)
#165265 Bless mir-opt tests again, again b3ac77b4471ebb1087b04da2da321e5b672d2761
(link)
#165266 Revert recent changes to async_drop 1dc02d6c752ef13d3bdb132249e35dba70c9e603
(link)

parent commit: f90a2d27c2

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.

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (349bba6): comparison URL.

Overall result: ❌ regressions - 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.2% [0.2%, 0.2%] 2
Regressions ❌
(secondary)
0.4% [0.3%, 0.5%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.2% [0.2%, 0.2%] 2

Max RSS (memory usage)

Results (secondary -2.3%)

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.3% [-2.4%, -2.3%] 2
All ❌✅ (primary) - - 0

Cycles

Results (secondary -5.6%)

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)
-5.6% [-5.6%, -5.6%] 1
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 486.771s -> 493.204s (1.32%)
Artifact size: 406.65 MiB -> 406.65 MiB (-0.00%)

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

Labels

A-CI Area: Our Github Actions CI A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end A-testsuite Area: The testsuite used to check the correctness of rustc 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-infra Relevant to the infrastructure 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants