Skip to content

Rollup of 25 pull requests - #162310

Merged
rust-bors[bot] merged 64 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-3MKPWlW
Sep 5, 2026
Merged

Rollup of 25 pull requests#162310
rust-bors[bot] merged 64 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-3MKPWlW

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

Dnreikronos and others added 30 commits August 11, 2026 15:21
Store identity argument indices instead of bound generic arguments so
callers can index concrete alias arguments without changing rigidness
through instantiation.
Match the existing params_in_repr / unsizing_params convention;
the compiler already treats generic arg counts as u32-sized.
Treat missing outlives information as no restriction so all sources can be
intersected uniformly. Keep bivariant alias arguments out of the final region
walk.
This is mainly because it would be very useful in Clippy to have a fast
way to check if two DefIds are related (and what that relation is).
This attempts to match clang's behavior of implicitly disabling
sanitizers that are incompatible. Specifically, if a set of default
sanitizers would be incompatible with ones provided by -Zsanitize=...,
then clang (and now rust) will opt for keeping the ones specified via
flags over the ones used as platform defaults. This helps maintain build
consistency where we can just enable sanitizers via flags for both rust and
c++ code without needing to manually disable others.

The driving reason for this is asan and safestack where we'd like to
enable safestack by default for x86_64 fuchsia but disable it if
-Zsanitize=address is passed (matching clang's behavior).

This commit also refactors all uses of `self.opts.unstable_opts.sanitizer`
to go through the updated `sanitizer()` method.

AI: Gemini was used to help review the code and write some tests, but it
did not generate the whole patch. I edited and reviewed this PR to the
best of my ability before pushing for review.
There are various types used to carry name resolution results across
crate boundaries. They are scattered across places like
`rustc_middle::ty`, `rustc_middle::metadata`, and `rustc_hir::def`.

This commit moves them into the new module, a more logical place for
them to live. As part of this it eliminates the small
`rustc_middle::metadata` module.

One nice consequence of this change: it removes the single use of a
`LocalDefId` in `rustc_ast`. (This is what got my attention in the first
place.)
@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Sep 5, 2026
Rollup of 25 pull requests


try-job: dist-x86_64-apple
@rust-bors

rust-bors Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

☀️ Try build successful (CI)
Build commit: 00ca44a (00ca44aa9959807da684677337ee29e78f9e592d)
Base parent: 0ed41eb (0ed41eb4142dda2df61eb1145a312c1a9d62eb56)

@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors retry

@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 Sep 5, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors treeopen

@rust-bors

rust-bors Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Tree is now open for merging.

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

rust-bors Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Sep 5, 2026

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 0ed41eb (parent) -> 0f819a1 (this PR)

Test differences

Show 796 test diffs

Stage 0

  • spec::tests::powerpc64_sony_ps3: [missing] -> pass (J6)
  • tests::test_combine_with_defaults_empty_explicit: [missing] -> pass (J6)
  • tests::test_combine_with_defaults_no_conflict: [missing] -> pass (J6)
  • tests::test_combine_with_defaults_safestack_address_conflict: [missing] -> pass (J6)
  • tests::test_combine_with_defaults_safestack_cfi: [missing] -> pass (J6)

Stage 1

  • [ui (polonius)] tests/ui/closures/closure-ref-fn-kind-mismatch-issue-161327.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/closures/fnmut-shared-reference-requires-fn.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/closures/fnmut-shared-reference-suggestion-issue-118843.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/const-generics/gca/assoc-const.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/consts/array-type-usize-suggestion.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/macros/correct-meta-item-span.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/stability-attribute/accidentally-stable-intrinsics.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/non_lifetime_binders/universe-error-host-effect.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/non_lifetime_binders/universe-error1.rs: pass -> [missing] (J0)
  • [ui (polonius)] tests/ui/traits/non_lifetime_binders/universe-error1.rs#current: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/non_lifetime_binders/universe-error1.rs#next: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/traits/object/rerun-impossible-predicates-post-analysis.rs: [missing] -> pass (J0)
  • spec::tests::powerpc64_sony_ps3: [missing] -> pass (J2)
  • tests::test_combine_with_defaults_empty_explicit: [missing] -> pass (J2)
  • tests::test_combine_with_defaults_no_conflict: [missing] -> pass (J2)
  • tests::test_combine_with_defaults_safestack_address_conflict: [missing] -> pass (J2)
  • tests::test_combine_with_defaults_safestack_cfi: [missing] -> pass (J2)
  • [ui] tests/ui/closures/closure-ref-fn-kind-mismatch-issue-161327.rs: [missing] -> pass (J3)
  • [ui] tests/ui/closures/fnmut-shared-reference-requires-fn.rs: [missing] -> pass (J3)
  • [ui] tests/ui/closures/fnmut-shared-reference-suggestion-issue-118843.rs: [missing] -> pass (J3)
  • [ui] tests/ui/const-generics/gca/assoc-const.rs: [missing] -> pass (J3)
  • [ui] tests/ui/consts/array-type-usize-suggestion.rs: [missing] -> pass (J3)
  • [ui] tests/ui/macros/correct-meta-item-span.rs: [missing] -> pass (J3)
  • [ui] tests/ui/stability-attribute/accidentally-stable-intrinsics.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error-host-effect.rs: [missing] -> pass (J3)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error1.rs: pass -> [missing] (J3)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error1.rs#current: [missing] -> pass (J3)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error1.rs#next: [missing] -> pass (J3)
  • [ui] tests/ui/traits/object/rerun-impossible-predicates-post-analysis.rs: [missing] -> pass (J3)
  • [codegen] tests/codegen-llvm/aarch64-abi/homogeneous-aggregate.rs#linux: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/aarch64-abi/homogeneous-aggregate.rs#win: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/powerpc64-abi/homogeneous-aggregate.rs#ppc64: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/powerpc64-abi/homogeneous-aggregate.rs#ppc64_vsx: [missing] -> pass (J5)
  • [codegen] tests/codegen-llvm/powerpc64-abi/homogeneous-aggregate.rs#ppc64le: [missing] -> pass (J5)
  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#powerpc64_sony_ps3: [missing] -> pass (J6)

Stage 2

  • [assembly] tests/assembly-llvm/targets/targets-elf.rs#powerpc64_sony_ps3: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/aarch64-abi/homogeneous-aggregate.rs#linux: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/aarch64-abi/homogeneous-aggregate.rs#win: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/powerpc64-abi/homogeneous-aggregate.rs#ppc64: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/powerpc64-abi/homogeneous-aggregate.rs#ppc64_vsx: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/powerpc64-abi/homogeneous-aggregate.rs#ppc64le: [missing] -> pass (J1)
  • [ui] tests/ui/closures/closure-ref-fn-kind-mismatch-issue-161327.rs: [missing] -> pass (J4)
  • [ui] tests/ui/closures/fnmut-shared-reference-requires-fn.rs: [missing] -> pass (J4)
  • [ui] tests/ui/closures/fnmut-shared-reference-suggestion-issue-118843.rs: [missing] -> pass (J4)
  • [ui] tests/ui/const-generics/gca/assoc-const.rs: [missing] -> pass (J4)
  • [ui] tests/ui/consts/array-type-usize-suggestion.rs: [missing] -> pass (J4)
  • [ui] tests/ui/macros/correct-meta-item-span.rs: [missing] -> pass (J4)
  • [ui] tests/ui/stability-attribute/accidentally-stable-intrinsics.rs: [missing] -> pass (J4)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error-host-effect.rs: [missing] -> pass (J4)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error1.rs: pass -> [missing] (J4)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error1.rs#current: [missing] -> pass (J4)
  • [ui] tests/ui/traits/non_lifetime_binders/universe-error1.rs#next: [missing] -> pass (J4)
  • [ui] tests/ui/traits/object/rerun-impossible-predicates-post-analysis.rs: [missing] -> pass (J4)

Additionally, 738 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 0f819a1602c3814642aa63799b43772b7bb456e8 --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. armhf-gnu: 1h 39m -> 59m 4s (-40.5%)
  2. x86_64-gnu-stable: 2h 37m -> 1h 37m (-38.2%)
  3. optional-x86_64-gnu-autodiff: 1h -> 38m 22s (-36.1%)
  4. x86_64-msvc-ext1: 1h 44m -> 2h 20m (+34.9%)
  5. i686-gnu-nopt-1: 2h 24m -> 1h 36m (-33.1%)
  6. x86_64-msvc-2: 2h 29m -> 1h 42m (-31.5%)
  7. x86_64-gnu-stdlib-semver-check: 15m 58s -> 11m (-31.1%)
  8. x86_64-gnu-llvm-21: 53m 54s -> 37m 9s (-31.1%)
  9. dist-x86_64-msvc-alt: 2h 13m -> 2h 53m (+30.3%)
  10. x86_64-gnu-gcc-core-tests: 16m 21s -> 11m 27s (-30.0%)
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 (0f819a1): comparison URL.

Overall result: ❌ regressions - please read:

Our benchmarks found a performance regression caused by this PR.
This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified,
    please write a comment with sufficient written justification, and add
    @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create
    a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise,
    you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group
    were already notified of this PR).

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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)
1.0% [0.2%, 2.6%] 50
Regressions ❌
(secondary)
1.2% [0.2%, 5.4%] 60
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.3% [-0.4%, -0.2%] 5
All ❌✅ (primary) 1.0% [0.2%, 2.6%] 50

Max RSS (memory usage)

Results (primary 0.7%, 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)
3.8% [1.1%, 6.4%] 2
Regressions ❌
(secondary)
5.1% [5.1%, 5.1%] 1
Improvements ✅
(primary)
-2.3% [-3.0%, -1.5%] 2
Improvements ✅
(secondary)
-2.0% [-2.0%, -2.0%] 1
All ❌✅ (primary) 0.7% [-3.0%, 6.4%] 4

Cycles

Results (primary -6.5%, secondary 0.8%)

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)
3.3% [2.1%, 4.5%] 4
Improvements ✅
(primary)
-6.5% [-6.5%, -6.5%] 1
Improvements ✅
(secondary)
-2.5% [-2.9%, -2.3%] 3
All ❌✅ (primary) -6.5% [-6.5%, -6.5%] 1

Binary size

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

Bootstrap: 476.718s -> 484.591s (1.65%)
Artifact size: 403.29 MiB -> 403.38 MiB (0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Sep 5, 2026
@rust-bors

rust-bors Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#162072 Add new Tier-3 target: powerpc64-sony-ps3 d499399fa6050d7678fb634ef604408b4afdd5c6
(link)
#162179 type system const items via direct rhs 027f0f8cfaf9377da2433b1beb62c2b4200990ea
(link)
#162255 let people change rustc-dev-guide in-tree c103a37321e9cfa05ecc67b9a35da0f0d911a5fd
(link)
#162262 Avoid manually instantiating some binders in error reportin… 08587d436b3e74581acae0a3cc190d9d6ef8a14f
(link)
#162277 Introduce rustc_middle::middle::resolve 2812c74bb7bd80c97ad877cf77dc7190f3a5df67
(link)
#162285 box: fixup map/try_map deallocate calls a46a41ebfca0039a7da85202fa52654338023bcd
(link)
#162286 string: don't unwind prematurely eeb3aed45c5bd04a25118c29ca55f283195629c1
(link)
#162289 alloc: a bunch of safety comments 2612f60884e9adab574d58ac5aedd8c77cf2d21c
(link)
#162290 abby test DSL: AliasTyOutlivesViaEnv 6ac640b1aa98479a6809f71c7b0951bf2cc960d3
(link)
#162292 Update askama version to 0.16.1 fc01a0ca429e220acf01d4980cad1fef45eaff18
(link)
#160509 Remove RegionExt; move methods to Region in `rustc_type… 4ed50dadb5e2753f7f71eb5b46137fd1d1ec5169
(link)
#160906 Suggest usize instead of placeholder type for array length … e3fa2db3f7ab7f3b21ef84e03a920d2dd84725e1
(link)
#160936 traits: Represent live alias arguments as bitsets 806394019429b925196983d9d0aaf07c7ef3b938
(link)
#161394 fix is_homogeneous_aggregate: use unit size, not total si… 334273c381a64cc2e034ee952792ac9967500b6f
(link)
#161400 Improve diagnostics for references to closures 132155e70180ec45a3e1aef5616e849cf0042e17
(link)
#161656 Suggest mutable references for FnMut closure arguments 4c9aa76249f4f4410138c330aaf792d0406cdd74
(link)
#161711 Add more splat fn type tests 875a8e00c3c8ac162bac697f10e01c949f64157c
(link)
#161786 Make tcx.def_id_partial_cmp public 2ed5f1547e9baee702217a60638c663a701c2b54
(link)
#161953 sanitizers: Implicitly disable mutually exclusive sanitizers 18b0b4456abb49167f2d69876615f4760d6e0286
(link)
#162155 add suggestion for rustc_allowed_through_unstable_modules a5819d172d2daea7b837624bb0c40bb8a3c48682
(link)
#162212 Implement Rng for Box 608f733bc4631b76958419172659ae9e2c1111d2
(link)
#162246 Fix incorrect meta span 5aa63beaa29b550edd9c7acb36542d628ed983a1
(link)
#162266 std: fix typo b7123584d62903ee32a63111bd8e0f4fa58ff9a4
(link)
#162291 Add regression test from 1.98.1 d93c1a53ee7c806413f3467f67ca79c95d547dc9
(link)
#162303 Fix a minor spelling error in `library/std/src/sys/fs/unix.… 798666fb763ce1c9247e75a8d9388f4568432189
(link)

parent commit: 0ed41eb414

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

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-CI Area: Our Github Actions CI A-compiler-builtins Area: compiler-builtins (https://github.com/rust-lang/compiler-builtins) A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-test-infra-minicore Area: `minicore` test auxiliary and `//@ add-core-stubs` A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. perf-regression Performance regression. rollup A PR which is a rollup 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. T-rust-analyzer Relevant to the rust-analyzer 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. 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.