Skip to content

Rollup of 6 pull requests - #160980

Merged
rust-bors[bot] merged 16 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-MX1XSgM
Aug 12, 2026
Merged

Rollup of 6 pull requests#160980
rust-bors[bot] merged 16 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-MX1XSgM

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

r? @ghost

Create a similar rollup

Dnreikronos and others added 16 commits July 26, 2026 23:01
Canonical responses can return query-created placeholders through opaque type constraints. Record empty assumptions when recreating those universes in the caller so eager placeholder handling does not ICE.
Keep the original compile-fail reproducer as the ICE guard and add
check-pass coverage for a valid `Trait` implementation while clarifying
the assumptions workaround.
Same-shape code with `impl Trait for ()` still ICEs on nightly.
The rewritten check-pass never hit that path, so it was not a useful
guard. Document that on the remaining regression test.
Avoid the unrelated `(): Trait` error while keeping the same shape
that still ICEs on nightly. Drop the check-pass note from the comment.
It's always `Certainty::Maybe`, so we can trim it down to just the
`MaybeInfo` that is within `Certainty::Maybe`. And then the same change
can be made to the field of `RerunStalled::WontMakeProgress`, and
`goal_remains_stalled` can return a bool, and a hot `matches!` in
`try_evaluate_obligations` that never failed can be removed.
One of the unfortunate side-effects of having non-trivial code in the crate
root is that any imports they need also function as crate-wide re-exports,
gunking up import paths throughout the crate.
This variant was never constructed anywhere.
bootstrap: Avoid some unnecessary imports from the crate root

One of the unfortunate side-effects of having non-trivial code in the crate root is that any imports they need also function as crate-wide re-exports, gunking up import paths throughout the crate.

---

There is more import cleanup that could be done, along with related tasks like moving items out of `lib.rs` or reducing item visibility. I decided to stop here to avoid cramming too much into one PR.

There should be no changes to bootstrap's behaviour.
…_response_assumptions, r=lcnr

trait solver: Track canonical response universe assumptions

Fixes rust-lang#159889

Canonical responses recreate universes for placeholders created while evaluating a query. Region constraints are handled inside the query, but opaque type constraints can still carry those placeholders back to the caller. Without an assumptions entry, eager placeholder handling hits the `unwrap()` in `get_placeholder_assumptions`.

Record empty assumptions when recreating response universes under `-Zassumptions-on-binders`. idk if empty assumptions is the final shape irl, but imo keeping this next to `create_next_universe` is the right local fix. It restores the invariant where the universe enters the caller and matches bookkeeping from other binder entry paths. fyi the issue repro now reports E0277 instead of ICEing.
…maybe_info, r=lcnr

Trim `GoalStalledOn::Certainty`

It's always `Certainty::Maybe`, so we can trim it down to just the `MaybeInfo` that is within `Certainty::Maybe`.

r? @lcnr
…ddl-test, r=folkertdev

sve: add addl. passing test for field projection

Adding additional test from [#t-libs/stdarch > CI is broken @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/208962-t-libs.2Fstdarch/topic/CI.20is.20broken/near/615620739). I didn't use `minicore` for this test because it doesn't work with `--test`, and similarly cannot use `--target aarch64-unknown-linux-gnu` for the test because without minicore, it would fail on other targets. I confirmed that this fails without rust-lang#160642.

r? @folkertdev
…u001999

Remove `MutatingUseContext::Retag`

This variant was never constructed anywhere.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 12, 2026
@rustbot rustbot added A-bootstrap-stamp Area: bootstrap stamp logic 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-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. WG-trait-system-refactor The Rustc Trait System Refactor Initiative (-Znext-solver) labels Aug 12, 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 12, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 17a573d 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 12, 2026
@rust-bors

This comment has been minimized.

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

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 77b1c12 (77b1c1239758ac77e52fc1e36be2cbaef9974a74)
Base parent: 41fb9d4 (41fb9d458726b5effbd64c7c1beced947ea03242)

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

rust-bors Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

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

@rust-timer

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#160966 bootstrap: Avoid some unnecessary imports from the crate ro… cccdd3b7ecae5e219f37627446d0711fd4472c38 (link)
#159987 trait solver: Track canonical response universe assumptions 4fe46dbf726e9f1142e1f525a2d5b592a97c1b61 (link)
#160886 Trim GoalStalledOn::Certainty 1a3e183f8ae225862db1c8ea9effce865078d34b (link)
#160925 Add TypeId::is_signed method 07c1ddbd8b431ab7dd89287530d68d9c9684b646 (link)
#160926 sve: add addl. passing test for field projection 90ae032503e71a47604f81928990710abd8d1b91 (link)
#160977 Remove MutatingUseContext::Retag 7c8e607d30f905b95aca222413196934e4af3e90 (link)

previous master: ab8058aa09

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 ab8058a (parent) -> c98d0cb (this PR)

Test differences

Show 69 test diffs

Stage 1

  • [ui (polonius)] tests/ui/assumptions_on_binders/canonical-response-placeholder-assumptions-issue-159889.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/scalable-vectors/project-into-field-okay.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J0)
  • [ui] tests/ui/assumptions_on_binders/canonical-response-placeholder-assumptions-issue-159889.rs: [missing] -> pass (J1)
  • [ui] tests/ui/scalable-vectors/project-into-field-okay.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J1)

Stage 2

  • [ui] tests/ui/scalable-vectors/project-into-field-okay.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J2)
  • [ui] tests/ui/scalable-vectors/project-into-field-okay.rs: [missing] -> pass (J3)
  • [ui] tests/ui/assumptions_on_binders/canonical-response-placeholder-assumptions-issue-159889.rs: [missing] -> pass (J4)

Additionally, 62 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 c98d0cb27cc63afdd62602a52eb4feb8a1c682dd --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-aux: 1h 26m -> 2h 37m (+81.3%)
  2. dist-x86_64-illumos: 1h 17m -> 1h 49m (+41.9%)
  3. optional-x86_64-gnu-autodiff: 53m 54s -> 35m 33s (-34.0%)
  4. dist-loongarch64-linux: 1h 48m -> 1h 16m (-29.3%)
  5. x86_64-gnu-gcc: 58m 5s -> 1h 14m (+29.1%)
  6. dist-x86_64-msvc-alt: 2h 52m -> 2h 3m (-28.6%)
  7. x86_64-gnu-llvm-21-3: 1h 24m -> 1h 47m (+28.1%)
  8. x86_64-rust-for-linux: 47m 36s -> 34m 35s (-27.3%)
  9. armhf-gnu: 1h 23m -> 1h (-27.2%)
  10. x86_64-gnu-llvm-22-2: 1h 36m -> 1h 10m (-26.8%)
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 (c98d0cb): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

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

Max RSS (memory usage)

Results (primary 1.6%, secondary 0.0%)

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

mean range count
Regressions ❌
(primary)
4.5% [4.5%, 4.5%] 1
Regressions ❌
(secondary)
0.6% [0.5%, 0.6%] 4
Improvements ✅
(primary)
-1.2% [-1.2%, -1.2%] 1
Improvements ✅
(secondary)
-0.5% [-0.7%, -0.4%] 4
All ❌✅ (primary) 1.6% [-1.2%, 4.5%] 2

Cycles

Results (primary -3.7%, secondary 0.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)
1.1% [0.4%, 3.2%] 14
Improvements ✅
(primary)
-3.7% [-3.7%, -3.7%] 1
Improvements ✅
(secondary)
-0.7% [-0.9%, -0.4%] 6
All ❌✅ (primary) -3.7% [-3.7%, -3.7%] 1

Binary size

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

Bootstrap: 478.868s -> 458.072s (-4.34%)
Artifact size: 396.45 MiB -> 396.44 MiB (-0.00%)

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

Labels

A-bootstrap-stamp Area: bootstrap stamp logic 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-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. 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.

9 participants