Skip to content

Rollup of 9 pull requests - #160867

Merged
rust-bors[bot] merged 26 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-bas1App
Aug 10, 2026
Merged

Rollup of 9 pull requests#160867
rust-bors[bot] merged 26 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-bas1App

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Contributor

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

Dnreikronos and others added 26 commits July 26, 2026 13:43
Canonicalize and evaluate next-gen region constraints before query response canonicalization so equivalent constraints merge structurally.
Cover the dyn object supertrait case that used to leave equivalent next-gen region constraints in different shapes.
…ize_next_gen_regions, r=BoxyUwU,lcnr

trait_solver: normalize next-gen region constraints

fixes rust-lang#157729

-zassumptions-on-binders can produce next-gen region constraints that mean the same thing but don't have the same shape. in this case object candidate merging stayed ambiguous and instance resolution later hit the ice. imo normalizing the constraint at the response boundary is the least weird place for this, because candidate selection shouldn't need to know which vtable looks nicer.

canonicalize and evaluate the next-gen region constraint before response canonicalization, then cover the dyn derived<p> supertrait case from the issue. lgtm locally with the focused test, tests/ui/traits/next-solver, and tests/ui/assumptions_on_binders. idk if there's a better home for the helper call, but ltm this keeps the fix pretty narrow.
Do not eagerly download rustfmt in bootstrap

I'm continuing my bootstrap refactorings with the goal of avoiding eager download of stuff during config parsing, which makes the config parse step more complicated.

An added benefit is that `rustfmt`, together with its `librustc_driver`, is now only downloaded on-demand. So unless you use `x fmt` or `x test tidy`, those two components won't be downloaded unnecessarily (both locally and on CI).

Best reviewed commit-by-commit.

r? @jieyouxu
…folkertdev

mir: prohibit projection into scalable vec

Fixes rust-lang#160580. Preventing projections into scalable vectors is an oversight from the initial implementation and something we should fix.

I'm surprised it caused a stdarch CI failure as reported by rust-lang#160580, as nothing in rustc or stdarch seems to have changed that would have caused that to start happening as far as I can tell. This likely won't fix that stdarch CI failure if it keeps happening, because if there is a projection coming from somewhere then that needs to be fixed - nevertheless, preventing them as in this patch is the right thing to do.

I've tested this against the stdarch CI locally.
…ace, r=WaffleLapkin

MaybeDangling: ensure references fit inside the address space

In the RFC we left open the question of the exact validity invariant for references inside `MaybeDangling`. This PR implements the strictest invariant I can think of: we already require references to be aligned, now we also require "addr + size" to be computable without overflow. This ensures that whatever niches we add to references in the future, `MaybeDangling` preserves those niches.

Cc @rust-lang/opsem @WaffleLapkin

Tracking issue: rust-lang#118166
r? @oli-obk
Use recognizer functions for enums and tuple structs

Non-urgent, but related to rust-lang#160331

We currently shove most user defined types through `synthetic_lookup` as I hadn't gotten around to using type recognizers yet. If we want tests to skip outputting types when the type doesn't have a visualizer, we should also not attach a (useless) visualizer to most UDTs.

The only things `synthetic_lookup` catches that aren't already caught by the regexes are tuple-structs and sum-type enums. This patch adds targeted type recognizers for those, and no longer sends types through `synthetic_lookup` at all on LLDB 19+

this doesn't affect `pretty-std.rs` since all those types have visualizers, but it will affect other tests if/when they're converted (e.g. `tests/debuginfo/struct-in-struct.rs`)

r? @Kobzol, @jieyouxu
…=clarfonthey

Docs & bors: Replace mentions of libs-api with libs

Per [the libs refactor RFC](rust-lang/rfcs#3984), libs-api will not exist anymore soon & so replace mentions of it with libs.
…ed-vita, r=joboet

Fix references to unsupported on sys::paths::unix

Compilation was seemingly broken by PR rust-lang#150885, commit f2dd932, by removing one of the nested `mod`s.

I'm one of the `armv7-sony-vita-newlibeabihf` target maintainers.

Summary of changes for affected targets:

- `armv7-sony-vita-newlibeabihf`: now compiles
- `armv6k-nintendo-3ds`: still doesn't compile, apparently due to an issue introduced in rust-lang#158168, which should be fixed by rust-lang#160170
- all espidf targets: I haven't compiled any of them as I don't have the toolchain installed, but it should be on the same as 3DS. The same errors can be seen in [does-it-build](https://does-it-build.noratrieb.dev/build?nightly=2026-08-09&target=xtensa-esp32s3-espidf&mode=std)
Use `remove_dir_all` for `./x clean`

This should work better in most cases (and be faster) particularly on Windows. I've left the old implementation more or less intact to provide diagnostics on failure. But it could be removed if desired.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Aug 10, 2026
@rustbot rustbot added A-rustc-dev-guide Area: rustc-dev-guide 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. labels Aug 10, 2026
@rustbot rustbot added 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. T-rustdoc Relevant to the rustdoc 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 18d3668 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 9 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 10, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: a38f2aa (a38f2aacf633140499ce192ed093957be8e4b26a)
Base parent: ea06042 (ea060423749bf6e561c3398f403425c502beb9ba)

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

rust-bors Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: JonathanBrouwer
Duration: 3h 9m 27s
Pushing 12c36e2 to main...

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

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#158404 trait_solver: normalize next-gen region constraints 4c1c038a00b6e90cfdf2ff5adaf38a3b3ab9e1dc (link)
#160631 Do not eagerly download rustfmt in bootstrap 0cf21a33737de295683c5705913dd98b7a21f973 (link)
#160642 mir: prohibit projection into scalable vec 4dff3fd5a9fb0e243a731ce7e299161e7168c1ee (link)
#160749 MaybeDangling: ensure references fit inside the address spa… e5c1f300fd0f2e1e393500374177dd12b21ce7ec (link)
#160791 Use recognizer functions for enums and tuple structs 5a7c0c30937e8253bcaca0b820313c11cbc959f4 (link)
#160500 Fix inaccurate description for crate and pathroot 4030af45a6b52e983c8db5b0c92211e9a0cb453b (link)
#160590 Docs & bors: Replace mentions of libs-api with libs 22cd9dcfc6d08507f5906bd5462d663d7b5df930 (link)
#160825 Fix references to unsupported on sys::paths::unix a7e3eb7b600cb89fd59af73dd34780a0fa2e1baf (link)
#160852 Use remove_dir_all for ./x clean 9cd527398c32db4d55cc14fc32b78afc98ac81a4 (link)

previous master: ef20314466

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 ef20314 (parent) -> 12c36e2 (this PR)

Test differences

Show 40 test diffs

Stage 1

  • [ui] tests/ui/assumptions_on_binders/object-candidate-regions-issue-157729.rs: [missing] -> pass (J1)
  • [ui] tests/ui/scalable-vectors/project-into-field-extern.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J1)
  • [ui] tests/ui/scalable-vectors/project-into-field.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/assumptions_on_binders/object-candidate-regions-issue-157729.rs: [missing] -> pass (J4)
  • [ui (polonius)] tests/ui/scalable-vectors/project-into-field-extern.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J4)
  • [ui (polonius)] tests/ui/scalable-vectors/project-into-field.rs: [missing] -> pass (J4)
  • [mir-opt] tests/mir-opt/sroa/scalable_sroa.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J7)

Stage 2

  • [mir-opt] tests/mir-opt/sroa/scalable_sroa.rs: [missing] -> pass (J0)
  • [ui] tests/ui/scalable-vectors/project-into-field-extern.rs: [missing] -> pass (J0)
  • [mir-opt] tests/mir-opt/sroa/scalable_sroa.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J2)
  • [ui] tests/ui/scalable-vectors/project-into-field.rs: [missing] -> ignore (gcc backend is marked as ignore) (J3)
  • [ui] tests/ui/assumptions_on_binders/object-candidate-regions-issue-157729.rs: [missing] -> pass (J5)
  • [ui] tests/ui/scalable-vectors/project-into-field-extern.rs: [missing] -> ignore (only executed when the architecture is aarch64) (J6)
  • [ui] tests/ui/scalable-vectors/project-into-field.rs: [missing] -> pass (J8)

Additionally, 26 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 12c36e2539c54397c51d6ea4401defd8768a4f5b --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: 6m 27s -> 14m 10s (+119.3%)
  2. x86_64-gnu-stdlib-semver-check: 5m 36s -> 10m 29s (+87.3%)
  3. x86_64-mingw-2: 1h 36m -> 2h 39m (+65.0%)
  4. x86_64-mingw-1: 1h 46m -> 2h 51m (+61.1%)
  5. i686-gnu-2: 1h 6m -> 1h 43m (+55.5%)
  6. pr-check-2: 28m 26s -> 41m 23s (+45.6%)
  7. x86_64-gnu-gcc: 51m 23s -> 1h 13m (+42.2%)
  8. x86_64-gnu-parallel-frontend: 1h 27m -> 2h 2m (+40.9%)
  9. dist-sparcv9-solaris: 1h 10m -> 1h 37m (+37.9%)
  10. i686-gnu-nopt-1: 1h 39m -> 2h 15m (+36.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 (12c36e2): 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 (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)
- - 0
Regressions ❌
(secondary)
0.9% [0.4%, 3.1%] 9
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.1% [-5.7%, -0.6%] 4
All ❌✅ (primary) - - 0

Cycles

Results (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)
- - 0
Regressions ❌
(secondary)
0.6% [0.5%, 1.0%] 7
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.9% [-2.8%, -0.4%] 12
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 455.478s -> 456.796s (0.29%)
Artifact size: 398.50 MiB -> 398.54 MiB (0.01%)

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

Labels

A-rustc-dev-guide Area: rustc-dev-guide 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-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. 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.