Skip to content

Rollup of 7 pull requests - #160879

Merged
rust-bors[bot] merged 20 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-4zAylRT
Aug 11, 2026
Merged

Rollup of 7 pull requests#160879
rust-bors[bot] merged 20 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-4zAylRT

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

VicenteGusmao and others added 20 commits August 5, 2026 14:48
When diagnostics replay proof tree state, rebuilding a canonical
state can fail to match the current inference state. With
-Znext-solver=globally, this could panic because inference
variables created to replay a canonical state were placed in the
wrong universe relative to placeholders bound by the same state.

Fix this by threading a `prev_universe` through proof tree replay:
`InspectGoal` now stores the caller-side universe at the time the
goal was created, and `instantiate_canonical_state` reuses that same
base universe (instead of recomputing it) when creating any
replay-only fresh variables and when reconstructing placeholders
from the canonical state, ensuring all canonical states for a single
goal share a consistent universe mapping.

Add a regression test for the higher-ranked PartialEq and PartialOrd
case.

Signed-off-by: Vicente Gusmão <vicente.gusmao@tecnico.ulisboa.pt>
- Add rust_2018_idioms warn in Cargo.toml to catch elided lifetimes
  and other 2018-idiom lints, matching Miri crate-level lint policy.
- Add ./x check src/tools/miri/priroda to bootstrap CI step.
- Add cargo clippy --all-targets --locked -- -D warnings step to
  priroda CI job.
`[const]` bounds, i.e. `HostEffectClause`s, are clauses
Co-authored-by: Kivooeo <Kivooeo123@gmail.com>
Co-authored-by: s7tya <53410646+s7tya@users.noreply.github.com>
Add an inherent `to_string()` method to `ByteStr` and `ByteString` that returns
`Result<String, Utf8Error>`, overriding the `to_string()` method made available
by the blanket implementation of `ToString` for all types that implement
`Display`.

Gate the new `to_string()` methods, and the existing `Display` implementations,
behind a new feature flag, `bstr_to_string`.
…li-obk

[Priroda] Add bootstrap test and check steps

The priroda crate lives under src/tools/miri/priroda and shares miri's sysroot and toolchain setup, so register a test step that mirrors the existing miri one and a check step alongside cargo-miri.

r? oli-obk
… r=JonathanBrouwer

Fix `visible_parent_map` fallback map merging perf regression

This PR attempts to fix the `visible_parent_map` perf regression introduced in rust-lang#160464, which was found in a [post-merge perf run](rust-lang#160464 (comment)).

Because the original PR fixes unnecessary iterations in the breadth-first search (BFS), meaning that it only reduces the amount of work during the BFS, the likely cause of the perf regression is the changed merging of the fallback map into the final visible parent map after the BFS.

The goal of this PR is to determine whether this is the case through a perf try run. The change itself works around the Unord* APIs, but might be worth it to work around the perf regression.
Diagnostics ICE when replaying proof trees with next-solver

When diagnostics replay proof tree state, rebuilding a canonical state can fail to match the current inference state. With -Znext-solver=globally, this could panic while reporting an error, avoiding the panic.

Make proof tree replay fallible in diagnostics and fall back to the current obligation when replay fails. Add a regression test for the higher-ranked PartialEq and PartialOrd case. Fixes rust-lang#151304.
…=lcnr

Ensure inferred let pattern types are well-formed

same as rust-lang#157013 but with crater and fpc

r? lcnr
… r=clarfonthey

Implement `to_string()` on `ByteStr` and `ByteString`
Add regression test for assoc const panic ICE in match

Closes rust-lang#91514, The associated const panic!() in a match used to ICE and now fails const eval cleanly
…r=oli-obk

Rename `HostEffectPredicate` to `HostEffectClause`

Part of rust-lang#107250

r? oli-obk
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 10, 2026
@rustbot rustbot added A-CI Area: Our Github Actions CI A-testsuite Area: The testsuite used to check the correctness of rustc 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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Aug 10, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Contributor 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 10, 2026

Copy link
Copy Markdown
Contributor

📌 Commit d3a5cbc 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 10, 2026
@rust-bors

This comment has been minimized.

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

rust-bors Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: e9902be (e9902be1b76bc2f9ab58c072b90f4465941f0453)
Base parent: ef20314 (ef20314466010b8b9259ec5f86230c530ca08661)

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

rust-bors Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 11m 10s
Pushing 0e72e32 to main...

@rust-bors
rust-bors Bot merged commit 0e72e32 into rust-lang:main Aug 11, 2026
15 checks passed
@rustbot rustbot added this to the 1.99.0 milestone Aug 11, 2026
@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#160629 [Priroda] Add bootstrap test and check steps 471028a848161b10dd839e1227cd5e271c6df3f6 (link)
#160811 Fix visible_parent_map fallback map merging perf regressi… 4f47a16145c382c39d45ea2c698fc52b52fb24c2 (link)
#154329 Diagnostics ICE when replaying proof trees with next-solver 1473baf2dbcc6d122f1740831d9b77c35e02fed7 (link)
#157841 Ensure inferred let pattern types are well-formed d6501a2480b874dfce958c7b002b9968f2926eaf (link)
#159300 Implement to_string() on ByteStr and ByteString 83d12ee3830b721bbead9cfbdc52cb301147c0ae (link)
#160858 Add regression test for assoc const panic ICE in match 10b5aec1d2397cb76722f013dd654e1779912763 (link)
#160864 Rename HostEffectPredicate to HostEffectClause 1c9cb29f5c89f71a66e54bc2facbb6926f18a32d (link)

previous master: fdda4c6a30

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

@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 fdda4c6 (parent) -> 0e72e32 (this PR)

Test differences

Show 20 test diffs

Stage 1

  • [ui (polonius)] tests/ui/associated-consts/assoc-const-panic-in-match-91514.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/non_lifetime_binders/foreach-partial-eq-next-solver.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/wf/let-pat-inferred-non-wf.rs: [missing] -> pass (J0)
  • [crashes] tests/crashes/150040.rs: pass -> [missing] (J2)
  • [ui] tests/ui/associated-consts/assoc-const-panic-in-match-91514.rs: [missing] -> pass (J4)
  • [ui] tests/ui/traits/non_lifetime_binders/foreach-partial-eq-next-solver.rs: [missing] -> pass (J4)
  • [ui] tests/ui/wf/let-pat-inferred-non-wf.rs: [missing] -> pass (J4)
  • bstr::test_to_string: [missing] -> pass (J6)

Stage 2

  • [crashes] tests/crashes/150040.rs: pass -> [missing] (J1)
  • [ui] tests/ui/associated-consts/assoc-const-panic-in-match-91514.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/non_lifetime_binders/foreach-partial-eq-next-solver.rs: [missing] -> pass (J3)
  • [ui] tests/ui/wf/let-pat-inferred-non-wf.rs: [missing] -> pass (J3)
  • bstr::test_to_string: [missing] -> pass (J5)

Additionally, 7 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 0e72e3266cdd2fe5a658aff454a778a88e5220a3 --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-riscv64-linux-gnu: 1h 2m -> 1h 29m (+43.1%)
  2. x86_64-gnu-nopt: 2h 19m -> 1h 26m (-38.1%)
  3. dist-arm-linux-musl: 1h 8m -> 1h 32m (+35.1%)
  4. dist-x86_64-musl: 2h 12m -> 1h 27m (-34.3%)
  5. x86_64-gnu-distcheck: 1h 31m -> 2h 2m (+33.4%)
  6. x86_64-msvc-2: 2h 23m -> 1h 36m (-32.6%)
  7. dist-powerpc64-linux-musl: 1h 31m -> 1h 3m (-30.8%)
  8. x86_64-msvc-ext2: 1h 46m -> 1h 14m (-29.8%)
  9. x86_64-gnu-gcc-core-tests: 14m 39s -> 10m 20s (-29.5%)
  10. test-various: 1h 40m -> 2h 10m (+28.9%)
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 (0e72e32): 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)
-0.4% [-0.5%, -0.4%] 6
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 2.7%, 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)
2.7% [2.7%, 2.7%] 1
Regressions ❌
(secondary)
0.7% [0.5%, 1.2%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.5% [-0.5%, -0.5%] 1
All ❌✅ (primary) 2.7% [2.7%, 2.7%] 1

Cycles

Results (secondary 1.0%)

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)
1.4% [0.4%, 5.8%] 12
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.8% [-1.0%, -0.6%] 3
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 455.828s -> 454.011s (-0.40%)
Artifact size: 398.78 MiB -> 398.43 MiB (-0.09%)

@JonathanBrouwer

Copy link
Copy Markdown
Contributor Author

Improvements from #160811

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-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-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. 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