Skip to content

Rollup of 22 pull requests#154384

Merged
rust-bors[bot] merged 61 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-Wou9g2B
Mar 25, 2026
Merged

Rollup of 22 pull requests#154384
rust-bors[bot] merged 61 commits intorust-lang:mainfrom
JonathanBrouwer:rollup-Wou9g2B

Conversation

@JonathanBrouwer
Copy link
Contributor

Successful merges:

r? @ghost

Create a similar rollup

Jarcho and others added 30 commits January 23, 2026 17:06
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
* tests(ui): migrate issues/issue-17546 to ui/resolve
* tests(ui): add gh issue link
* tests(ui/issues): move tests to variants dir
It's imported and can be used directly within this file, and already is
in a few places.
A few can be done with the `impl_erasable_for_single_lifetime_types!`
macro instead of being hand-written.
Using '_ removes unnecessary differences between the impl type and the
associated `Storage` type.
Now that 'static lifetimes aren't used, a lot of the hand-written
`Erasable` impls can now be done with the macro. (The only ones that
can't are those with a generic type parameter, because `size_of`
doesn't work in that case.)

Also, `impl_erasable_for_single_lifetime_types!` isn't needed at all.
Some of the hand-written `Erasable` impls only match a single type in
practice. It's easier to just list the concrete types in
`impl_erasable_for_types_with_no_type_params!`.
@rustbot rustbot added 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-clippy Relevant to the Clippy team. 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-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. labels Mar 25, 2026
@JonathanBrouwer
Copy link
Contributor Author

@bors r+ rollup=never p=5

@JonathanBrouwer
Copy link
Contributor Author

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

@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 25, 2026

📌 Commit c026640 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 Mar 25, 2026
@rust-bors

This comment has been minimized.

rust-bors bot pushed a commit that referenced this pull request Mar 25, 2026
Rollup of 22 pull requests


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
try-job: x86_64-mingw-1
@rust-bors

This comment has been minimized.

@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 25, 2026

☀️ Try build successful (CI)
Build commit: c11f8c1 (c11f8c119668913d38a2785f7f7a0a19d9279ff5, parent: 64d5cb603b9caf9063d27d64fdfa61fa7af3b98f)

@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 Mar 25, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Mar 25, 2026

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 11m 18s
Pushing 80d0e4b to main...

@rust-bors rust-bors bot merged commit 80d0e4b into rust-lang:main Mar 25, 2026
13 checks passed
@rustbot rustbot added this to the 1.96.0 milestone Mar 25, 2026
@github-actions
Copy link
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 212ef77 (parent) -> 80d0e4b (this PR)

Test differences

Show 272 test diffs

Stage 1

  • [ui] tests/ui/delegation/generics/const-type-ice-154334.rs: [missing] -> pass (J2)
  • [ui] tests/ui/delegation/generics/synth-params-ice-143498.rs: [missing] -> pass (J2)
  • [ui] tests/ui/feature-gates/feature-gate-macro-guard-matcher.rs: [missing] -> pass (J2)
  • [ui] tests/ui/issues/issue-17546.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-29821.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-3668-non-constant-value-in-constant/issue-3668-2.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-3668-non-constant-value-in-constant/issue-3668.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-46604.rs: pass -> [missing] (J2)
  • [ui] tests/ui/issues/issue-50411.rs: pass -> [missing] (J2)
  • [ui] tests/ui/macros/die-macro-2.rs: pass -> [missing] (J2)
  • [ui] tests/ui/macros/die-macro.rs: pass -> [missing] (J2)
  • [ui] tests/ui/mir/inliner-double-elaborate.rs: [missing] -> pass (J2)
  • [ui] tests/ui/sanitizer/cfg-khwasan.rs: [missing] -> pass (J2)
  • [ui] tests/ui/sanitizer/incompatible-khwasan.rs: [missing] -> pass (J2)
  • [ui] tests/ui/sanitizer/unsupported-target-khwasan.rs: [missing] -> pass (J2)
  • [ui] tests/ui/statics/static-cannot-use-local-variable.rs: [missing] -> pass (J2)
  • [ui] tests/ui/statics/static-in-fn-cannot-use-param.rs: [missing] -> pass (J2)
  • [ui] tests/ui/statics/static-in-method-cannot-use-self.rs: [missing] -> pass (J2)
  • [ui] tests/ui/statics/static-mut-borrow-of-temporary.rs: [missing] -> pass (J2)
  • [ui] tests/ui/statics/static-mut-with-assoc-type-field.rs: [missing] -> pass (J2)
  • [ui] tests/ui/statics/static-ref-deref-non-const-trait.rs: [missing] -> pass (J2)
  • [ui] tests/ui/structs-enums/class-cast-to-trait-cross-crate-2.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/class-cast-to-trait-multiple-types.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/class-cast-to-trait.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/class-implement-trait-cross-crate.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/class-method-cross-crate.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/class-methods-cross-crate.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/class-methods.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/class-separate-impl.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/classes-simple-method.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/export-abstract-tag.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/export-tag-variant.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/rec-auto.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/tuple-struct-construct.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/tuple-struct-matching.rs: pass -> [missing] (J2)
  • [ui] tests/ui/structs-enums/tuple-struct-trivial.rs: pass -> [missing] (J2)
  • [ui] tests/ui/use/pub-use-self-super-crate.rs: [missing] -> pass (J2)
  • [ui] tests/ui/variants/variant-result-noresult-used-as-type.rs: [missing] -> pass (J2)
  • [codegen] tests/codegen-llvm/sanitizer/hwasan-vs-khwasan.rs#khwasan: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/sanitizer/kasan-recover.rs#KASAN: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/sanitizer/kasan-recover.rs#KASAN-RECOVER: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/sanitizer/khwasan-lifetime-markers.rs: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/sanitizer/khwasan-recover.rs#KHWASAN-RECOVER: [missing] -> pass (J4)
  • [codegen] tests/codegen-llvm/amdgpu-addrspacecast.rs#LLVM21: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J5)
  • [codegen] tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs#old: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J5)
  • [codegen] tests/codegen-llvm/issues/issue-37945.rs#new: ignore (ignored when the LLVM version 22.1.0 is older than 23.0.0) -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J5)
  • [codegen] tests/codegen-llvm/issues/matches-logical-or-141497.rs: ignore (ignored when the LLVM version 22.1.0 is older than 23.0.0) -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J5)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs#LLVM21: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J5)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-scatter.rs#LLVM21: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J5)
  • [codegen] tests/codegen-llvm/vec_pop_push_noop.rs#old: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J5)
  • [codegen] tests/codegen-llvm/vecdeque_pop_push.rs#old: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J5)

Stage 2

  • [ui] tests/ui/sanitizer/cfg-khwasan.rs: [missing] -> pass (J0)
  • [ui] tests/ui/sanitizer/unsupported-target-khwasan.rs: [missing] -> pass (J0)
  • [ui] tests/ui/delegation/zero-args-delegations-ice-154332.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-macro-guard-matcher.rs: [missing] -> pass (J1)
  • [ui] tests/ui/issues/issue-25901.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-3521-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-3668-non-constant-value-in-constant/issue-3668-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-3668-non-constant-value-in-constant/issue-3668.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-46604.rs: pass -> [missing] (J1)
  • [ui] tests/ui/macros/die-macro-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/macros/die-macro.rs: pass -> [missing] (J1)
  • [ui] tests/ui/macros/panic-macro-basic.rs: [missing] -> pass (J1)
  • [ui] tests/ui/mir/inliner-double-elaborate.rs: [missing] -> pass (J1)
  • [ui] tests/ui/statics/static-cannot-use-local-variable.rs: [missing] -> pass (J1)
  • [ui] tests/ui/statics/static-in-fn-cannot-use-param.rs: [missing] -> pass (J1)
  • [ui] tests/ui/statics/static-in-method-cannot-use-self.rs: [missing] -> pass (J1)
  • [ui] tests/ui/statics/static-mut-borrow-of-temporary.rs: [missing] -> pass (J1)
  • [ui] tests/ui/structs-enums/class-cast-to-trait-cross-crate-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/class-cast-to-trait-multiple-types.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/class-exports.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/class-method-cross-crate.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/class-methods-cross-crate.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/class-str-field.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/classes-simple-cross-crate.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/classes-simple-method.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/classes-simple.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/classes.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/export-abstract-tag.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/export-tag-variant.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/rec-auto.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/tag-variant-disr-type-mismatch.rs: pass -> [missing] (J1)
  • [ui] tests/ui/structs-enums/tuple-struct-matching.rs: pass -> [missing] (J1)
  • [codegen] tests/codegen-llvm/sanitizer/sanitize-off-khwasan-hwasan.rs: [missing] -> ignore (ignored on targets without hardware-assisted address sanitizer) (J3)
  • [ui] tests/ui/sanitizer/cfg-khwasan.rs: [missing] -> ignore (gcc backend is marked as ignore) (J6)
  • [ui] tests/ui/sanitizer/incompatible-khwasan.rs: [missing] -> ignore (gcc backend is marked as ignore) (J6)
  • [ui] tests/ui/sanitizer/unsupported-target-khwasan.rs: [missing] -> ignore (gcc backend is marked as ignore) (J6)
  • [codegen] tests/codegen-llvm/sanitizer/sanitize-off-khwasan-hwasan.rs: [missing] -> pass (J7)
  • [codegen] tests/codegen-llvm/amdgpu-addrspacecast.rs#LLVM21: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J8)
  • [codegen] tests/codegen-llvm/issues/issue-122600-ptr-discriminant-update.rs#old: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J8)
  • [codegen] tests/codegen-llvm/simd-intrinsic/simd-intrinsic-generic-gather.rs#LLVM21: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J8)
  • [codegen] tests/codegen-llvm/vec_pop_push_noop.rs#old: ignore (ignored when the LLVM version (22.1.0) is newer than majorversion 21) -> ignore (ignored when the LLVM version (22.1.2) is newer than majorversion 21) (J8)
  • [assembly] tests/assembly-llvm/sanitizer/hwasan-vs-khwasan.rs#khwasan: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/sanitizer/hwasan-vs-khwasan.rs#hwasan: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/sanitizer/hwasan-vs-khwasan.rs#khwasan: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/sanitizer/kasan-recover.rs#KASAN: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/sanitizer/kasan-recover.rs#KASAN-RECOVER: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/sanitizer/khwasan-lifetime-markers.rs: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/sanitizer/sanitize-off-hwasan-khwasan.rs: [missing] -> pass (J9)
  • [codegen] tests/codegen-llvm/debuginfo-callsite-flag.rs: [missing] -> pass (J10)

(and 58 additional test diffs)

Additionally, 114 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 80d0e4be6f15899649ba31669077c59a986f96cc --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. pr-check-1: 28m 3s -> 45m 27s (+62.0%)
  2. x86_64-gnu-tools: 56m 45s -> 1h 22m (+46.1%)
  3. pr-check-2: 38m 41s -> 56m 16s (+45.4%)
  4. x86_64-rust-for-linux: 46m 58s -> 1h 8m (+45.1%)
  5. dist-arm-linux-musl: 1h 36m -> 2h 11m (+36.7%)
  6. armhf-gnu: 1h 23m -> 1h 53m (+36.0%)
  7. x86_64-gnu-gcc: 1h 4m -> 1h 26m (+35.4%)
  8. optional-x86_64-gnu-parallel-frontend: 2h 19m -> 3h 4m (+32.3%)
  9. x86_64-gnu-miri: 1h 25m -> 1h 52m (+31.4%)
  10. dist-x86_64-solaris: 1h 37m -> 2h 3m (+27.2%)
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
Collaborator

Finished benchmarking commit (80d0e4b): comparison URL.

Overall result: ❌ regressions - please read the text below

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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)
1.2% [0.1%, 3.8%] 53
Regressions ❌
(secondary)
0.9% [0.2%, 6.2%] 45
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.2% [0.1%, 3.8%] 53

Max RSS (memory usage)

Results (primary -0.8%, secondary -0.4%)

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

mean range count
Regressions ❌
(primary)
1.7% [1.7%, 1.7%] 1
Regressions ❌
(secondary)
2.4% [2.4%, 2.4%] 1
Improvements ✅
(primary)
-2.0% [-2.8%, -1.2%] 2
Improvements ✅
(secondary)
-1.8% [-2.0%, -1.6%] 2
All ❌✅ (primary) -0.8% [-2.8%, 1.7%] 3

Cycles

Results (primary 2.5%, secondary 3.2%)

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

mean range count
Regressions ❌
(primary)
2.5% [2.1%, 3.2%] 12
Regressions ❌
(secondary)
3.2% [2.0%, 5.3%] 5
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.5% [2.1%, 3.2%] 12

Binary size

Results (primary 1.7%, secondary 1.7%)

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

mean range count
Regressions ❌
(primary)
1.7% [0.0%, 3.6%] 72
Regressions ❌
(secondary)
1.7% [0.0%, 4.7%] 71
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.7% [0.0%, 3.6%] 72

Bootstrap: 484.064s -> 481.885s (-0.45%)
Artifact size: 396.84 MiB -> 395.19 MiB (-0.42%)

@rustbot rustbot added the perf-regression Performance regression. label Mar 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-compiletest Area: The compiletest test runner A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-clippy Relevant to the Clippy team. 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-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.