Skip to content

Rollup of 15 pull requests - #157376

Merged
rust-bors[bot] merged 40 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-rUrUphg
Jun 3, 2026
Merged

Rollup of 15 pull requests#157376
rust-bors[bot] merged 40 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-rUrUphg

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

P8L1and others added 30 commits May 17, 2026 21:06
We already have a vector of `CoroutineSavedTy`, no need to have a separate
one just for debuginfo.
Avoid complicated loops just for an optimization.
`coroutine.rs` was getting too large, and mixing MIR analyses for trait
solving and runtime transformations.
This was necessary when transitioning from JS to wasm exception handling
on Emscripten. Enough time has probably passed that we no longer need to
support JS exception handling on Emscripten. This enables cleaning up a
fair bit of code.
this removes the panic path when dividing by the frequency.
this also makes calls to Instant::now() faster.
…=petrochenkov
Promotes 5 Thumb-mode bare-metal Arm targets to Tier 2
This PR promotes five Thumb-mode bare-metal Arm targets to Tier 2, joining their Arm-mode counterparts which are already Tier 2:
| Thumb-mode target (Tier 3 → Tier 2) | Arm-mode counterpart (already Tier 2) |
|:---|:---|
| `thumbv7a-none-eabi` | `armv7a-none-eabi` |
| `thumbv7a-none-eabihf` | `armv7a-none-eabihf` |
| `thumbv7r-none-eabi` | `armv7r-none-eabi` |
| `thumbv7r-none-eabihf` | `armv7r-none-eabihf` |
| `thumbv8r-none-eabihf` | `armv8r-none-eabihf` |
Note: There is no `thumbv8r-none-eabi` target because the Cortex-R52 processor always includes an FPU, making a soft-float ABI variant unnecessary.
These Thumb-mode targets generate T32 code by default while their Arm-mode counterparts generate A32 code. They share the same LLVM backend, ABI, and data layout — the only spec differences are the `llvm_target` string and the description.
See rust-lang/compiler-team#985
…-incorrect-gen-args, r=petrochenkov
delegation: emit error when there is an infer lifetime in user-specified args
This PR checks emit error if there as an infer lifetime anywhere in delegation's user-specified args. And `delegation_user_specified_args` is now query as we invoke it two times.
Fixesrust-lang#156848. Part of rust-lang#118212.
r? @petrochenkov
…t-of-first-arg, r=petrochenkov
delegation: move statements out of the first arg
This PR moves statements that precede final block expression out of the first argument, so we can apply adjustments to final block expression in more cases.
This changes behavior a bit, for example if we specify an empty block:
```rust
fn b<C>(e: C) {}
reuse b {}
// Desugaring:
fn b<C>(arg0: _) -> _ { b::<C>(arg0) }
```
So we generated the first arg and block is no-op.
In general scenario:
```rust
trait Trait: Sized { //~ WARN trait `Trait` is never used
fn by_value(self, x: i32) -> i32 { x }
fn by_ref(&self, x: i32) -> i32 { x }
fn by_mut_ref(&mut self, x: i32) -> i32 { x }
}
struct F; //~ WARN struct `F` is never constructed
impl Trait for F {}
struct S(F); //~ WARN struct `S` is never constructed
impl Trait for S {
reuse <F as Trait>::* {
println!();
// Final expression is adjusted even if it is in a block.
self.0
}
}
// Desugaring:
#[attr = Inline(Hint)]
fn by_value(self: _, arg1: _)
->
_ {
// Final expression is adjusted even if it is in a block.
{ ::std::io::_print(format_arguments::from_str("\n")); };
<F as Trait>::by_value(self.0, arg1)
}
#[attr = Inline(Hint)]
fn by_ref(self: _, arg1: _)
->
_ {
{ ::std::io::_print(format_arguments::from_str("\n")); };
<F as Trait>::by_ref(self.0, arg1)
}
#[attr = Inline(Hint)]
fn by_mut_ref(self: _, arg1: _)
->
_ {
{ ::std::io::_print(format_arguments::from_str("\n")); };
<F as Trait>::by_mut_ref(self.0, arg1)
}
```
If we change target expression to
```rust
reuse <F as Trait>::* {
println!();
let x = 1;
}
// Desugaring:
#[attr = Inline(Hint)]
fn by_value(self: _, arg1: _)
->
_ {
{ ::std::io::_print(format_arguments::from_str("\n")); };
let x = 1;
<F as Trait>::by_value(self, arg1)
}
```
Once again we generated default arguments for function and block is no-op now (meaning it does not affect callee arguments).
Part of rust-lang#118212.
r? @petrochenkov
rustc_codegen_ssa: Refactor `ArchiveEntry` to include entry kind
Needed for rust-lang#155338 in particular.
r? @bjorn3
…jorn3
Use weak linkage for EII defaults
hard to find a test for this, but weak seems more correct (after private discussion with @bjorn3)
Also changes a log statement to make it a lil easier to see what's going on.
r? @bjorn3
@rust-bors

This comment has been minimized.

rust-borsBot pushed a commit that referenced this pull request Jun 3, 2026
Rollup of 15 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
try-job: x86_64-mingw-1
try-job: i686-msvc-2
@rust-bors

This comment has been minimized.

@rust-bors

rust-borsBot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 50d308a (50d308a24e0f050506b17a4299075518642721cc, parent: 53509ca37e3b507887607c2f4a7f23bd4838f099)

@rust-borsrust-borsBot 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 Jun 3, 2026
@rust-bors

rust-borsBot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 21m 55s
Pushing e164200 to main...

@rust-bors
rust-borsBot merged commit e164200 into rust-lang:mainJun 3, 2026
14 checks passed
@rustbotrustbot added this to the 1.98.0 milestone Jun 3, 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 042c759 (parent) -> e164200 (this PR)

Test differences

Show 142 test diffs

Stage 1

  • [codegen] tests/codegen-llvm/emscripten-catch-unwind-js-eh.rs: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/emscripten-catch-unwind-wasm-eh.rs: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/emscripten-catch-unwind.rs: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#emscripten_wasm_eh_: pass -> [missing] (J1)
  • [ui] tests/ui/delegation/generics/unelided-lifetime-in-sig-ice-156848.rs: [missing] -> pass (J1)
  • [ui] tests/ui/delegation/self-coercion-block-errors.rs: [missing] -> pass (J1)
  • [ui] tests/ui/dropck/drop-impl-sized-bound-mismatch.rs: [missing] -> pass (J1)
  • [ui] tests/ui/feature-gates/feature-gate-cfg-emscripten-wasm-eh.rs: pass -> [missing] (J1)
  • [ui] tests/ui/generics/impl-generic-struct-with-concrete-types.rs: [missing] -> pass (J1)
  • [ui] tests/ui/generics/type-param-self-reference.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/bare-trait-object-return.rs: [missing] -> pass (J1)
  • [ui] tests/ui/issues/issue-17905-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-17905.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-17959.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-17999.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-18107.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-18173.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-18183.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-18232.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-18446-2.rs: pass -> [missing] (J1)
  • [ui] tests/ui/issues/issue-18446.rs: pass -> [missing] (J1)
  • [ui] tests/ui/lifetimes/elided-lifetime-mismatch-in-self-type.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lifetimes/trait-method-lifetime-bounds.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lint/unused-parens-pinned-reference-patterns-no-feature.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lint/unused-parens-pinned-reference-patterns.rs: [missing] -> pass (J1)
  • [ui] tests/ui/lint/unused/unused-variables-in-loop.rs: [missing] -> pass (J1)
  • [ui] tests/ui/methods/call-ambig-trait-object-method.rs: [missing] -> pass (J1)
  • [ui] tests/ui/methods/inherent-method-on-dyn-with-default.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/bound/implicit-assoc-type.rs: [missing] -> pass (J1)

Stage 2

  • [codegen] tests/codegen-llvm/emscripten-catch-unwind-js-eh.rs: pass -> [missing] (J2)
  • [codegen] tests/codegen-llvm/emscripten-catch-unwind-wasm-eh.rs: pass -> [missing] (J2)
  • [codegen] tests/codegen-llvm/emscripten-catch-unwind.rs: [missing] -> pass (J2)
  • [ui] tests/ui/cfg/disallowed-cli-cfgs.rs#emscripten_wasm_eh_: pass -> [missing] (J3)
  • [ui] tests/ui/delegation/generics/unelided-lifetime-in-sig-ice-156848.rs: [missing] -> pass (J3)
  • [ui] tests/ui/delegation/self-coercion-block-errors.rs: [missing] -> pass (J3)
  • [ui] tests/ui/dropck/drop-impl-sized-bound-mismatch.rs: [missing] -> pass (J3)
  • [ui] tests/ui/feature-gates/feature-gate-cfg-emscripten-wasm-eh.rs: pass -> [missing] (J3)
  • [ui] tests/ui/generics/impl-generic-struct-with-concrete-types.rs: [missing] -> pass (J3)
  • [ui] tests/ui/generics/type-param-self-reference.rs: [missing] -> pass (J3)
  • [ui] tests/ui/impl-trait/bare-trait-object-return.rs: [missing] -> pass (J3)
  • [ui] tests/ui/issues/issue-17905-2.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-17905.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-17959.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-17999.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-18107.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-18173.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-18183.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-18232.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-18446-2.rs: pass -> [missing] (J3)
  • [ui] tests/ui/issues/issue-18446.rs: pass -> [missing] (J3)
  • [ui] tests/ui/lifetimes/elided-lifetime-mismatch-in-self-type.rs: [missing] -> pass (J3)
  • [ui] tests/ui/lifetimes/trait-method-lifetime-bounds.rs: [missing] -> pass (J3)
  • [ui] tests/ui/lint/unused-parens-pinned-reference-patterns-no-feature.rs: [missing] -> pass (J3)
  • [ui] tests/ui/lint/unused-parens-pinned-reference-patterns.rs: [missing] -> pass (J3)
  • [ui] tests/ui/lint/unused/unused-variables-in-loop.rs: [missing] -> pass (J3)
  • [ui] tests/ui/methods/call-ambig-trait-object-method.rs: [missing] -> pass (J3)
  • [ui] tests/ui/methods/inherent-method-on-dyn-with-default.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/bound/implicit-assoc-type.rs: [missing] -> pass (J3)

Additionally, 84 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 e16420030e6020d6a38db26d3ed5911a8818b550 --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. x86_64-gnu-gcc-core-tests: 8m 11s -> 14m 27s (+76.6%)
  2. pr-check-1: 27m 34s -> 40m 57s (+48.5%)
  3. dist-apple-various: 1h 30m -> 2h 4m (+37.8%)
  4. x86_64-gnu-llvm-22-2: 1h 13m -> 1h 37m (+32.4%)
  5. x86_64-msvc-2: 1h 56m -> 2h 33m (+31.3%)
  6. i686-msvc-2: 2h 16m -> 1h 40m (-26.2%)
  7. x86_64-gnu-llvm-21-2: 1h 38m -> 1h 14m (-24.0%)
  8. dist-loongarch64-linux: 1h 30m -> 1h 51m (+23.2%)
  9. dist-armv7-linux: 1h 16m -> 1h 33m (+21.8%)
  10. i686-gnu-2: 1h 28m -> 1h 47m (+21.5%)
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

📌 Perf builds for each rolled up PR:

PR#MessagePerf Build Sha
#155763Promotes 5 Thumb-mode bare-metal Arm targets to Tier 29cc542325fabb6a6e669c373be7da271f8a0163d (link)
#156089Fix unused_parens for pinned reference patternsd26c01e317f528ebd60517b29ac39276e79a5156 (link)
#156928Remove -Zemscripten-wasm-ehd862c591ba773ce55951fe9561b57235cf190e3f (link)
#156953delegation: emit error when there is an infer lifetime in u…cc654763c7e06bc8f0fcb24ae46aa8ff264f38b2 (link)
#157236Reorganize tests/ui/issues [3/N]925b800f0bb6685f41118dfd12df4bb7b2d1fa79 (link)
#157248delegation: move statements out of the first arg11626e73351f2ad88379f3a3c94969f2bcbd7aa1 (link)
#157263rustc_codegen_ssa: Refactor ArchiveEntry to include entry…67d3467cce472c3d64dd07c71759ee345c5c1f76 (link)
#157287Const generics: remove AliasTerm::kind(), and small fixes17cda21a8182653304135399e256b44e1b694395 (link)
#157294Split coroutine layout computation to its own file1f18747bd9510a1e0595df5c1c20e1ef422e01ba (link)
#157311Use weak linkage for EII defaults49b90db6820f3e2b14cdef7b3e27cb9bb83a87bc (link)
#157328windows: Elide division-by-zero checks in Instant::now()afd3a81f5a832cc33573313db73bf63f6168938c (link)
#157331Rewrite target checking for #[link]2202953b82d6fc930aea637261031bedaefe42b0 (link)
#157336Enable clippy::mem_replace_with_defaultfa78a993f2212f62a1afe7b78dfe450a69828691 (link)
#157362Fix trivial wf module argument/doc comment name mismatchescfb6a6309c25010d607fe44126d8436f4f859905 (link)
#157364Rewrite target checking of rustc_dummyc2be6a642bed599f54f6692b6b6443403e1d4bad (link)

previous master: 042c759f77

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (e164200): comparison URL.

Overall result: ❌✅ regressions and 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.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
0.2%[0.0%, 0.4%]7
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.0%[-0.0%, -0.0%]1
All ❌✅ (primary)--0

Max RSS (memory usage)

Results (secondary 0.0%)

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

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
2.1%[1.1%, 3.0%]2
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-2.0%[-2.1%, -1.8%]2
All ❌✅ (primary)--0

Cycles

Results (secondary -3.4%)

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

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
6.8%[6.8%, 6.8%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-5.1%[-6.8%, -3.0%]6
All ❌✅ (primary)--0

Binary size

Results (secondary -0.1%)

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

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
--0
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-0.1%[-0.1%, -0.1%]10
All ❌✅ (primary)--0

Bootstrap: 516.236s -> 516.5s (0.05%)
Artifact size: 400.65 MiB -> 400.62 MiB (-0.01%)

@JonathanBrouwer
JonathanBrouwer deleted the rollup-rUrUphg branch August 21, 2026 08:29
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-CIArea: Our Github Actions CIA-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.A-testsuiteArea: The testsuite used to check the correctness of rustcmerged-by-borsThis PR was explicitly merged by bors.O-windowsOperating system: WindowsrollupA PR which is a rollupT-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-clippyRelevant to the Clippy team.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-infraRelevant to the infrastructure 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.WG-trait-system-refactorThe Rustc Trait System Refactor Initiative (-Znext-solver)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

15 participants

@JonathanBrouwer@rust-timer@rustbot@P8L1@zedddie@khyperia@cjgillot@cezarbbb@jdonszelmann@petrochenkov@bjorn3@JarlEvanson@mathisbot@fallible-algebra@aerooneqq