Skip to content

Rollup of 13 pull requests - #161772

Merged
rust-bors[bot] merged 60 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-USO96L6
Aug 25, 2026
Merged

Rollup of 13 pull requests#161772
rust-bors[bot] merged 60 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-USO96L6

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Dnreikronos and others added 30 commits August 21, 2026 14:42
Generalize the recovery to match arguments positionally against the
generic parameters, skipping those that need no explicit argument:
elided early-bound lifetimes, synthetic `impl Trait` type parameters,
and trailing type parameters with defaults. Bail only when there are
more arguments than can be matched.

Omitting such a parameter leaves fewer arguments than parameters, so the
exact-count check made recovery feed `{type error}` for the anon const
while the real lowering later fed the true type, tripping a double-feed
ICE under the `-Zthreads=0` front-end race.
Each exercises the early `type_of` query under the `-Zthreads=0`
front-end race with an omittable generic parameter: a synthetic
`impl Trait` param, an elided early-bound lifetime, multiple explicit
args, and a defaulted trailing type parameter.
`needs_coroutine_by_move_body_def_id` asks for `type_of`, and for a body
owner nested inside a const argument's anon const that goes through
`typeck` of the anon const, which needs the anon const's own type. That
type is never computed, only fed while the enclosing body is
type-checked.

Asking for it in the same pass that type-checks the bodies lets the
parallel front end reach the nested body owner first, computing and
caching an error type for the anon const that then conflicts with the
type fed later on. Since nothing reports an error in that case, the
delayed bugs surface as an ICE.

Split it into a second pass over the body owners so every body has been
type-checked, and every const argument lowered, before any nested body
owner is asked for its type.
Recovering the type from the HIR path meant re-deriving what the generic
argument lowering already works out, and only covered the cases the
partial classifier recognized: free function paths resolved to
`DefKind::Fn`, with no late-bound lifetimes.

Anything else still cached an error type and tripped the double-feed
ICE, including associated functions, tuple struct constructors, inherent
type-relative paths, and const arguments in type annotations, which are
not path expressions at all and so cannot be classified this way.

With the by-move bodies generated after typeck the anon const's type is
always fed before anything asks for it, so drop the recovery along with
the tests that only exercised its argument counting. The shapes they
covered are folded into the main regression test.
A naive `f32::mul_add(a as f32, b as f32, c as f32) as f16` has insufficient precision
…when-reliable

run `f16` and `f128` tests natively when reliable
port all variadic functions to strict signature checking
These non-obvious things are worth documenting.
run _Unwind_RaiseException test on Windows
unify shim_sig and shim_sig_variadic macros
@rustbot rustbot added 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. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Aug 25, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@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-bors Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

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

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Aug 25, 2026
Rollup of 13 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-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 Aug 25, 2026
@rust-bors

rust-bors Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 7m 38s
Pushing 787af2b to main...

@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 b751e7a (parent) -> 787af2b (this PR)

Test differences

Show 1140 test diffs

Stage 1

  • [ui] tests/ui/assumptions_on_binders/test-infra-fails-properly.rs: [missing] -> pass (J0)
  • [ui] tests/ui/assumptions_on_binders/test-infra-works.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/anon-const-type-of-defaulted-param-issue-158818.rs: [missing] -> pass (J0)
  • [ui] tests/ui/const-generics/anon-const-type-of-issue-158818.rs: [missing] -> pass (J0)
  • [ui] tests/ui/dropck/reservation.rs: pass -> [missing] (J0)
  • [ui] tests/ui/feature-gates/feature-gate-test-binder-constraints.rs: [missing] -> pass (J0)
  • [ui] tests/ui/scalable-vectors/require-target-feature.rs: ignore (only executed when the architecture is aarch64) -> pass (J0)
  • [ui] tests/ui/traits/reservation-impl/coherence-conflict.rs#next: pass -> [missing] (J0)
  • [ui] tests/ui/traits/reservation-impl/coherence-conflict.rs#old: pass -> [missing] (J0)
  • [ui] tests/ui/traits/reservation-impl/no-use.rs#next: pass -> [missing] (J0)
  • [ui] tests/ui/traits/reservation-impl/no-use.rs#old: pass -> [missing] (J0)
  • [ui] tests/ui/traits/reservation-impl/non-lattice-ok.rs#next: pass -> [missing] (J0)
  • [ui] tests/ui/traits/reservation-impl/non-lattice-ok.rs#old: pass -> [missing] (J0)
  • [ui] tests/ui/traits/reservation-impl/ok.rs#next: pass -> [missing] (J0)
  • [ui] tests/ui/traits/reservation-impl/ok.rs#old: pass -> [missing] (J0)
  • [codegen] tests/codegen-llvm/issues/static-table-search-loop-44041.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/assumptions_on_binders/test-infra-fails-properly.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/assumptions_on_binders/test-infra-works.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/const-generics/anon-const-type-of-defaulted-param-issue-158818.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/const-generics/anon-const-type-of-issue-158818.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/dropck/reservation.rs: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/feature-gates/feature-gate-test-binder-constraints.rs: [missing] -> pass (J3)
  • [ui (polonius)] tests/ui/scalable-vectors/require-target-feature.rs: ignore (only executed when the architecture is aarch64) -> pass (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/coherence-conflict.rs#next: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/coherence-conflict.rs#old: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/no-use.rs#next: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/no-use.rs#old: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/non-lattice-ok.rs#next: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/non-lattice-ok.rs#old: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/ok.rs#next: pass -> [missing] (J3)
  • [ui (polonius)] tests/ui/traits/reservation-impl/ok.rs#old: pass -> [missing] (J3)

Stage 2

  • [ui] tests/ui/assumptions_on_binders/test-infra-fails-properly.rs: [missing] -> pass (J1)
  • [ui] tests/ui/assumptions_on_binders/test-infra-works.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/anon-const-type-of-defaulted-param-issue-158818.rs: [missing] -> pass (J1)
  • [ui] tests/ui/const-generics/anon-const-type-of-issue-158818.rs: [missing] -> pass (J1)
  • [ui] tests/ui/dropck/reservation.rs: pass -> [missing] (J1)
  • [ui] tests/ui/feature-gates/feature-gate-test-binder-constraints.rs: [missing] -> pass (J1)
  • [ui] tests/ui/traits/reservation-impl/coherence-conflict.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/traits/reservation-impl/coherence-conflict.rs#old: pass -> [missing] (J1)
  • [ui] tests/ui/traits/reservation-impl/no-use.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/traits/reservation-impl/no-use.rs#old: pass -> [missing] (J1)
  • [ui] tests/ui/traits/reservation-impl/non-lattice-ok.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/traits/reservation-impl/non-lattice-ok.rs#old: pass -> [missing] (J1)
  • [ui] tests/ui/traits/reservation-impl/ok.rs#next: pass -> [missing] (J1)
  • [ui] tests/ui/traits/reservation-impl/ok.rs#old: pass -> [missing] (J1)
  • [codegen] tests/codegen-llvm/issues/static-table-search-loop-44041.rs: [missing] -> pass (J4)
  • [ui] tests/ui/scalable-vectors/require-target-feature.rs: ignore (only executed when the architecture is aarch64) -> ignore (backend gcc cannot build for target aarch64-unknown-linux-gnu) (J5)
  • [ui] tests/ui/scalable-vectors/require-target-feature.rs: ignore (only executed when the architecture is aarch64) -> pass (J6)

Additionally, 1092 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 787af2b8c80638c51a4fc8e44f84e6891f243ec7 --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. dist-various-2: -> 49m 58s (+inf%)
  2. i686-gnu-nopt-2: -> 2h 7m (+inf%)
  3. x86_64-gnu: -> 2h 33m (+inf%)
  4. x86_64-gnu-distcheck: -> 2h 23m (+inf%)
  5. dist-x86_64-msvc-alt: -> 1h 35m (+inf%)
  6. x86_64-msvc-2: -> 1h 54m (+inf%)
  7. i686-gnu-nopt-1: -> 2h 15m (+inf%)
  8. i686-gnu-2: -> 1h 47m (+inf%)
  9. dist-various-1: -> 48m 50s (+inf%)
  10. x86_64-gnu-llvm-22-1: -> 1h 24m (+inf%)
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 (787af2b): 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.

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

Max RSS (memory usage)

Results (primary 0.3%, secondary 1.5%)

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.8%, 2.3%] 5
Regressions ❌
(secondary)
3.5% [2.2%, 5.5%] 8
Improvements ✅
(primary)
-2.0% [-2.9%, -1.4%] 3
Improvements ✅
(secondary)
-2.4% [-4.5%, -0.9%] 4
All ❌✅ (primary) 0.3% [-2.9%, 2.3%] 8

Cycles

Results (secondary -3.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)
-3.6% [-5.1%, -2.4%] 4
All ❌✅ (primary) - - 0

Binary size

Results (primary -0.0%, secondary -0.1%)

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.0% [-0.1%, -0.0%] 4
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) -0.0% [-0.1%, -0.0%] 4

Bootstrap: 477.576s -> 474.247s (-0.70%)
Artifact size: 400.35 MiB -> 402.66 MiB (0.58%)

@rust-bors

rust-bors Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#158874 hir_ty_lowering: fix anon const type recovery 805a1a6be7d6d765cf8b12fd966cbac43879a2a8
(link)
#161443 add internal DSL for testing binders 4366522a4bc85a2e8ca1841c137d78a45b8f09bf
(link)
#161617 Add custom allocators to (try_)map on Box, Rc, Arc 3f8c5621b5a712143d017126ac9be44117b461d0
(link)
#161726 Fix debugger visualizer tuple child ordering w/ PDB debug i… 7047f0df6f6f81e2045f3cd5e738583cf3e69cfa
(link)
#161729 miri subtree update f7b27ffe05a683403359396c1d5f436e4c884a5d
(link)
#161745 make trivial ABI check resilient against new repr c3ba48838c2eeb63010bc8c6400fbbc960be012e
(link)
#160871 Remove #[rustc_reservation_impl] a884d9af2efa566a95b3393f15a3bf8148d578d6
(link)
#161180 Detect missing binding available: add a MaybeIncorrect sugg… 43a478ae61eefaac06bda139b400505f205f4d1f
(link)
#161522 test f16::mul_add not double-rounding the result ad5920a4148849341733426b2adcc2947963b2b2
(link)
#161631 Add two comments relating to new-solver performance 7cbbf646a2694360efc13ae830a08f2a9798620a
(link)
#161724 Add codegen test for static table search loop unrolling 90a57c7a65b9175df1aeebe27b1f6981b764257b
(link)
#161740 do not compress debuginfo for Cygwin ef92fc0754b5f9e212fadd38d9288e4ae1a3d5f9
(link)
#161750 vector ABI check: reword so it makes more sense for non-obv… cd72386bac61b74fde827ad4e736e7d6373031cf
(link)

parent commit: b751e7a485

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-bors rust-bors Bot added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Aug 25, 2026
@rust-bors

rust-bors Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 5536d4d failed: CI

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-rustdoc-json Area: Rustdoc JSON backend merged-by-bors This PR was explicitly merged by bors. PG-exploit-mitigations Project group: Exploit mitigations rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. 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-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. T-rustfmt Relevant to the rustfmt team, which will review and decide on the PR/issue. 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.