Skip to content

Rollup of 20 pull requests - #163609

Merged
rust-bors[bot] merged 53 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-VGVBPvm
Oct 2, 2026
Merged

rust-bors[bot] merged 53 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-VGVBPvm

Conversation

@JonathanBrouwer

@JonathanBrouwer JonathanBrouwer commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

View all comments

Successful merges:

r? @ghost

Create a similar rollup

mati865 and others added 30 commits September 7, 2026 21:50
Co-authored-by: Philip Sampaio <philip.sampaio@gmail.com>
Return failed projection obligations from deep normalization instead of
retrying aliases through infallible fallback. Keep regular normalization
recovery by rebuilding projection obligations from the original aliases.
Rustc already defaults to this for regular items whenever possible.
Overriding it would only lead to linker errors. And for
depending on the exact codegen unit partitioning rustc uses, so there it
is a bad idea to use it too.
Rustc already defaults to this for #[no_mangle]/#[export_name] items.
There is no reason to explicitly use it.
A common definition is like a weak definition except that it must be a
zero-initialized static and when merging two common symbols with the
same name, the size and alignment are set to the higher of both symbols.
This is used for tentative definitions in C and doesn't have any reason
to exist outside of that. This behavior doesn't work across dylibs and
common symbols have inconsistent behavior across linkers [1]. It is also
fragile to rely on getting the largest size of all common symbol
definitions as a (possibly smaller) global definition can override it.

Link: https://maskray.me/blog/all-about-common-symbols [1]
The ICE was caused because the code assumed the import_ids
would always be the same for all candidates, but it's not true.

Sometimes the candidate is ambiguous with import_ids to be logged
and sometimes the candidate is not ambigous and does not have the ids.

Mixing the two (flag = true, without import_ids) ICEs.

Co-authored-by: Philip Sampaio <philip.sampaio@gmail.com>
the test records what the compiler emits today: impl_trait_overcapture_suggestion anchors its suggestion on the opaque def span, which for an opaque inside an attribute macro expansion is the attribute itself, not a type position. the suggestion is machine-applicable, so edition migration applies it and produces error: expected item after attributes
…ro expansion

impl_trait_overcapture_suggestion anchored every suggestion on tcx.def_span(opaque_def_id) with no expansion check. for an opaque created inside an attribute macro expansion that span is the attribute, which is not a type position, so applying the machine-applicable suggestion breaks the file

the obvious patch of calling can_be_used_for_suggestions() on that span directly suppresses all suggestions including for ordinary code, because ast lowering stamps DesugaringKind::OpaqueTy onto the opaque span at compiler/rustc_ast_lowering/src/lib.rs:1825, making from_expansion() unconditionally true. the fix calls parent_callsite() to peel that single desugaring layer and asks can_be_used_for_suggestions() about the span underneath

the guard sits at function entry rather than beside the rpit_span push because the apit rename and the generics-list insertion are anchored on the same span, so one check covers all three

fixes rust-lang#139567
- Introduce `Subdiag::dedup_hash`, which mirrors
  `DiagInner::dedup_hash` and is necessary for the subsequent commits.
- Change the name and structure of `not_yet_emitted` to be clearer.
- Change `retain_mut` to `retain`; mutability isn't required.
Currently deduplication erroneously has no effect with incremental
enabled because the span parent gets included in the hash used for
deduplication.
So it applies the `#[inline]` to every method, not just the first one.
This was referenced Oct 2, 2026
@github-actions

github-actions Bot commented Oct 2, 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 c36f145 (parent) -> a5c10c3 (this PR)

Test differences

Show 1934 test diffs

Stage 1

  • [ui (polonius)] tests/ui/associated-inherent-types/issue-111404-1.rs: pass -> [missing] (J0)
  • [ui (polonius)] tests/ui/associated-inherent-types/issue-111404-1.rs#current: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/associated-inherent-types/issue-111404-1.rs#next: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/checked-type-alias/variance-unused-param-through-alias-chain.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#dedup: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#dup: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#incr-dedup: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#incr-dup: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/impl-trait/precise-capturing/overcapture-suggestion-in-macro-issue-139567.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/imports/ambiguous-trait-with-mixed-import-paths.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/linkage-attr/common-linkage-non-zero-init.rs: pass -> [missing] (J0)
  • [ui (polonius)] tests/ui/traits/next-solver/normalize/deeply-normalize-fallback-issue-160875.rs: [missing] -> pass (J0)
  • [ui] tests/ui/associated-inherent-types/issue-111404-1.rs: pass -> [missing] (J1)
  • [ui] tests/ui/associated-inherent-types/issue-111404-1.rs#current: [missing] -> pass (J1)
  • [ui] tests/ui/associated-inherent-types/issue-111404-1.rs#next: [missing] -> pass (J1)
  • [ui] tests/ui/checked-type-alias/variance-unused-param-through-alias-chain.rs: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#dedup: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#dup: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#incr-dedup: [missing] -> pass (J1)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#incr-dup: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/precise-capturing/overcapture-suggestion-in-macro-issue-139567.rs: [missing] -> pass (J1)
  • [ui] tests/ui/imports/ambiguous-trait-with-mixed-import-paths.rs: [missing] -> pass (J1)
  • [ui] tests/ui/linkage-attr/common-linkage-non-zero-init.rs: pass -> [missing] (J1)
  • [ui] tests/ui/traits/next-solver/normalize/deeply-normalize-fallback-issue-160875.rs: [missing] -> pass (J1)
  • [rustdoc-html] tests/rustdoc-html/jump-to-def/incoherent_impl-primitive.rs: [missing] -> pass (J7)

Stage 2

  • [ui] tests/ui/associated-inherent-types/issue-111404-1.rs: pass -> [missing] (J2)
  • [ui] tests/ui/associated-inherent-types/issue-111404-1.rs#current: [missing] -> pass (J2)
  • [ui] tests/ui/associated-inherent-types/issue-111404-1.rs#next: [missing] -> pass (J2)
  • [ui] tests/ui/checked-type-alias/variance-unused-param-through-alias-chain.rs: [missing] -> pass (J2)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#dedup: [missing] -> pass (J2)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#dup: [missing] -> pass (J2)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#incr-dedup: [missing] -> pass (J2)
  • [ui] tests/ui/diagnostic-flags/deduplicate-diagnostics-incr.rs#incr-dup: [missing] -> pass (J2)
  • [ui] tests/ui/impl-trait/precise-capturing/overcapture-suggestion-in-macro-issue-139567.rs: [missing] -> pass (J2)
  • [ui] tests/ui/imports/ambiguous-trait-with-mixed-import-paths.rs: [missing] -> pass (J2)
  • [ui] tests/ui/traits/next-solver/normalize/deeply-normalize-fallback-issue-160875.rs: [missing] -> ignore (ignored if rustc wasn't built with debug assertions) (J3)
  • [run-make] tests/run-make/linkage-attr-on-static: pass -> ignore (ignored when the target is x86_64-pc-windows-gnu (weak symbols broken with MinGW linker)) (J4)
  • [ui] tests/ui/linkage-attr/linkage-import.rs: pass -> ignore (ignored when the target is x86_64-pc-windows-gnu (weak symbols broken with MinGW linker)) (J4)
  • sys::thread_local::key::tests::destructors: pass -> [missing] (J4)
  • sys::thread_local::key::tests::smoke: pass -> [missing] (J4)
  • tests::thread_current_in_dtor: [missing] -> pass (J4)
  • [ui] tests/ui/linkage-attr/common-linkage-non-zero-init.rs: pass -> [missing] (J5)
  • [rustdoc-html] tests/rustdoc-html/jump-to-def/incoherent_impl-primitive.rs: [missing] -> pass (J6)
  • [ui] tests/ui/traits/next-solver/normalize/deeply-normalize-fallback-issue-160875.rs: [missing] -> pass (J8)
  • [ui] tests/ui/linkage-attr/common-linkage-non-zero-init.rs: ignore (gcc backend is marked as ignore) -> [missing] (J9)

Additionally, 1889 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 a5c10c39125788787370a1ab11c954b9dff37859 --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. test-x86_64-mingw-2: 1h 48m -> 2h 47m (+54.7%)
  2. dist-armv7-linux: 1h 4m -> 1h 38m (+51.9%)
  3. test-x86_64-gnu-gcc-core-tests: 12m 17s -> 18m 21s (+49.4%)
  4. dist-powerpc64-linux-gnu: 1h 13m -> 1h 41m (+38.2%)
  5. test-aarch64-apple-macos-26-1: 1h 41m -> 2h 19m (+37.6%)
  6. test-x86_64-rust-for-linux: 55m 52s -> 35m 43s (-36.1%)
  7. test-x86_64-gnu-llvm-21: 33m 36s -> 44m 56s (+33.7%)
  8. dist-riscv64-linux-gnu: 1h 37m -> 1h 4m (-33.6%)
  9. test-i686-gnu-nopt-2: 1h 52m -> 2h 26m (+30.7%)
  10. test-x86_64-gnu-distcheck: 2h 22m -> 1h 43m (-27.3%)
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 (a5c10c3): 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.2%] 2
Improvements ✅
(primary)
-0.1% [-0.1%, -0.1%] 1
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) -0.1% [-0.1%, -0.1%] 1

Max RSS (memory usage)

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

Cycles

Results (secondary 4.5%)

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)
4.5% [2.8%, 6.3%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 489.203s -> 490.07s (0.18%)
Artifact size: 406.46 MiB -> 406.35 MiB (-0.03%)

@rust-bors

rust-bors Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#163483 Bump bootstrap compiler to 1.100.0 beta a39bdd2365e3acbeac94a8a3e5913116cb964b33
(link)
#161380 only rerun const eval in next-solver if the const actually … d22ad2fab4b59264ff6b3f4787dd2db3e988efa1
(link)
#162900 Some refactorings around metadata encoding 4278cc02f99d1416c3b39bf7f276edbbd17227c5
(link)
#163461 Improve diagnostic deduplication 9fc42e986b553b3ee55d8e95ba3fe7a0ae83b3df
(link)
#163580 Provide better doc code example for `UnixDatagram::bind_add… 7023745c6b2e4e6661ac670dc17f04b6605cdf0e
(link)
#163584 [triagebot] Ping me for debugger visualizer changes 7121875c947c2e39dc7ccb93d7356d449e4eb0f8
(link)
#159021 windows-gnu: enable native TLS 6ec9e210df2d32be5215ee33d9911f8633121a6f
(link)
#161467 wfcheck: name the item that discards an unused type paramet… 649ce51810f83565accd3f1a81a25719a9471e0e
(link)
#162618 trait_selection: Preserve eager normalization failures 5c740648634b3b05b20919a95d672eab4ca454e2
(link)
#162904 Fix ICE for ambiguous candidates on method probing 99f1c97e3d62a996187365e95bb69778b12b933d
(link)
#163064 Avoid computing overflowed goal chains for crate dependenci… d6c19a82c1919550fcc79ef82b0fd84a60c7d8c0
(link)
#163281 Add f16 inline ASM support to spirv.rs ee449d2614067b68071ff66d67f43f671495acb9
(link)
#163314 move #[macro_export] on declarative macro check to `rustc… 01e6b4eb4716b039ddcff0bf698b8e95ea105e77
(link)
#163360 [rustdoc] Correctly handle rustc_allow_incoherent_impl on p… 5d35d7550963d7eba2967d1d096fd8b9ac723adf
(link)
#163385 GVN transmutes of Immediate::Uninit to Immediate::Uninit 20769d90dedc157eeb8c64592a7d7acd9e50d0cd
(link)
#163405 Remove some #[linkage] options b397541ec19f064fe050285c737e94b8d7ea5a06
(link)
#163530 const impl PartialEq for f16b fcea4885801c5ff8016e841b85df04b04fe40533
(link)
#163581 do not suggest precise capturing when the opaque span is in… 0c1778482b3b72fe31eff1597335ef142ec3d031
(link)
#163590 Make AllocatorNightly less clever 90042fe8c0510aaff01c0191ab099566e91af4c5
(link)
#163599 Add union pattern reference change to relnotes 7c7c944b1880dfdb5e07c1ff6b02751d19ce7dfc
(link)

parent commit: c36f145719

In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: @rust-timer triage $SHA $SHA $SHA..., or run @rust-timer triage all to benchmark all rollup members.

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-meta Area: Issues & PRs about the rust-lang/rust repository itself A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like O-windows Operating system: Windows 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-libs Relevant to the library team, which will review and decide on the PR/issue. T-release Relevant to the release subteam, 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.