Skip to content

Rollup of 15 pull requests - #165579

Merged
rust-bors[bot] merged 47 commits into
rust-lang:mainfrom
Zalathar:rollup-LUhUZ7X
Nov 7, 2026
Merged

rust-bors[bot] merged 47 commits into
rust-lang:mainfrom
Zalathar:rollup-LUhUZ7X

Conversation

@Zalathar

@Zalathar Zalathar commented Nov 7, 2026

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

yashaggarwal85d and others added 30 commits October 27, 2026 10:47
This reduces the amount of special casing #[no_mangle] needs in the rest
of the compiler.
#[link_ordinal] is not compatible with #[link_name] and items in extern
blocks now have an implicit #[link_name] with the item name.
Alternatively it would be possible to suppress the error message for
this implicit #[link_name].
Co-authored-by: Ralf Jung <post@ralfj.de>
This ensures the name it is referenced with from object files matches
the name that it is imported as in an import library.
```
error[E0107]: missing generics for struct `a::Foo`
  --> $DIR/impl-block-missing-const-generics.rs:6:10
   |
LL |     impl Foo {}
   |          ^^^ expected 1 generic argument
   |
note: struct defined here, with 1 generic parameter: `AHA`
  --> $DIR/impl-block-missing-const-generics.rs:4:12
   |
LL |     struct Foo<const AHA: usize>{}
   |            ^^^ ----------------
help: add missing generic argument
   |
LL |     impl<const AHA: usize> Foo<AHA> {}
   |         ++++++++++++++++++    +++++
```

Previously we only suggested `Foo<AHA>` without the `impl<const AHA: usize>`.
```
error: the constant `N` is not of type `usize`
  --> $DIR/const-in-impl-fn-return-type.rs:12:32
   |
LL |     fn func<const N: u32>() -> [(); N];
   |             ------------       ^^^^^^^ expected `usize`, found `u32`
   |             |
   |             found this const parameter
   |
   = note: the length of array `[(); N]` must be type `usize`
```
```
error: the constant `B` is not of type `usize`
  --> $DIR/check_const_arg_type_in_free_alias.rs:15:30
   |
LL | type ArrLen<const B: bool> = [(); B];
   |             -------------    ^^^^^^^ expected `usize`, found `bool`
   |             |
   |             found this const parameter
   |
   = note: the length of array `[(); B]` must be type `usize`
```
```
error: the constant `N` is not of type `usize`
  --> $DIR/bad-subst-const-kind.rs:8:26
   |
LL | impl<const N: u64> Q for [u8; N] {
   |      ------------        ^^^^^^^ expected `usize`, found `u64`
   |      |
   |      `N` defined here
   |
   = note: the length of array `[u8; N]` must be type `usize`
```
Per the style team FCP in rust-lang#152760, remove the prescription requiring an explicit ABI on extern items so formatters preserve the ABI as written in the AST and defer missing-ABI diagnostics to language lints.
Mostly configures out unused code but also reenabled DirEntry::file_type
which now builds for the L4Re targets.
Co-authored-by: León Orell Valerian Liehr <me@fmease.dev>
@rust-bors

rust-bors Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 79620ea has been approved by Zalathar

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

rust-bors Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: Zalathar
Duration: 2h 50m 1s
Pushing a267dc9 to main...

@github-actions

github-actions Bot commented Nov 7, 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 4282da7 (parent) -> a267dc9 (this PR)

Test differences

Show 248 test diffs

Stage 1

  • [ui] tests/ui/const-generics/impl-block-missing-const-generics.rs: [missing] -> pass (J1)
  • [ui] tests/ui/drop/array-partial-move-drop-order.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/nesting-fn-inside-impl-future.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/precise-capturing/name-anon-lifetime-suggestion-apit-bound.rs: [missing] -> pass (J1)
  • [ui] tests/ui/impl-trait/precise-capturing/name-anon-lifetime-suggestion-apit.rs: [missing] -> pass (J1)
  • [ui (polonius)] tests/ui/const-generics/impl-block-missing-const-generics.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/drop/array-partial-move-drop-order.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/impl-trait/nesting-fn-inside-impl-future.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/impl-trait/precise-capturing/name-anon-lifetime-suggestion-apit-bound.rs: [missing] -> pass (J2)
  • [ui (polonius)] tests/ui/impl-trait/precise-capturing/name-anon-lifetime-suggestion-apit.rs: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/const-generics/impl-block-missing-const-generics.rs: [missing] -> pass (J0)
  • [ui] tests/ui/drop/array-partial-move-drop-order.rs: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/nesting-fn-inside-impl-future.rs: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/precise-capturing/name-anon-lifetime-suggestion-apit-bound.rs: [missing] -> pass (J0)
  • [ui] tests/ui/impl-trait/precise-capturing/name-anon-lifetime-suggestion-apit.rs: [missing] -> pass (J0)
  • [run-make] tests/run-make/compressed-debuginfo-zstd: ignore (ignored if LLVM wasn't build with zstd for ELF section compression or LLVM is not the default codegen backend) -> pass (J3)

Additionally, 232 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 a267dc9278932a9a47afdd87033b6ab9c3c4c4f5 --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-msvc-ext3: 1h 6m -> 2h 1m (+83.8%)
  2. test-x86_64-mingw-2: 1h 34m -> 2h 48m (+78.3%)
  3. test-x86_64-msvc-ext1: 1h 20m -> 2h 19m (+73.0%)
  4. test-x86_64-gnu-debug: 1h 26m -> 2h 15m (+57.4%)
  5. test-x86_64-gnu-stdlib-semver-check: 26m 53s -> 13m 58s (-48.0%)
  6. test-pr-check-2: 52m 58s -> 29m (-45.2%)
  7. dist-x86_64-freebsd: 1h 4m -> 1h 32m (+43.1%)
  8. test-various: 2h 58m -> 1h 42m (-42.5%)
  9. test-x86_64-mingw-1: 1h 52m -> 2h 40m (+42.4%)
  10. dist-i686-msvc: 52m 55s -> 31m 10s (-41.1%)
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 (a267dc9): 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.1% [0.2%, 3.5%] 110
Regressions ❌
(secondary)
1.3% [0.0%, 4.2%] 144
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 1.1% [0.2%, 3.5%] 110

Max RSS (memory usage)

Results (secondary -5.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)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-5.6% [-5.6%, -5.6%] 1
All ❌✅ (primary) - - 0

Cycles

Results (primary 2.5%, secondary 4.0%)

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

mean range count
Regressions ❌
(primary)
3.2% [1.9%, 4.2%] 8
Regressions ❌
(secondary)
4.0% [2.5%, 5.1%] 17
Improvements ✅
(primary)
-2.9% [-2.9%, -2.9%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.5% [-2.9%, 4.2%] 9

Binary size

Results (primary 0.0%, 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.0% [0.0%, 0.0%] 7
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 7
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.0%] 7

Bootstrap: 480.483s -> 483.513s (0.63%)
Artifact size: 406.27 MiB -> 406.18 MiB (-0.02%)

@rustbot rustbot added the perf-regression Performance regression. label Nov 7, 2026
@rust-bors

rust-bors Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#165037 Drop array elements in order after a partial move 163692e23120dc1801b93ca2b6055c44e5b7aa70
(link)
#165550 Make Literal::cstr_value return a CString d20f60c034fdf77b989b32af52a3029284105dcf
(link)
#159374 Lower #[no_mangle] to #[symbol_name]/#[link_name] 1347227845bd73c728df4cafc421271d2359ff84
(link)
#163284 feat(Reborrow): Allow multiple lifetimes 0e7e9ea924f0435bd855c9d47046e88fcbe5c18d
(link)
#164775 Tweak output on misused const parameter to provide more c… f05d11697b7a8c87a3b8b9cb1617a2a73b5ae826
(link)
#165194 name elided lifetimes in use<...> suggestion when `impl T… 7e20dcfa2516aa3272a18b6b0d056139bf6fb6fe
(link)
#165222 Anonymize inner binders when checking refining b91c5b6196b3a3919618be01ffc5bc74aa06117c
(link)
#165335 Fallible type ops 818c63a69429b8b5b1b55da9a8722d56fcc52df9
(link)
#165388 Accept variadic SysV64, Win64, and Aapcs FnAbis in rustc_pu… 34122056113ff0214e2b57b04c302d664c015fd6
(link)
#165448 Update Vec::retain_unstable docs to say that this method … ❌ conflicts merging into previous parent commit ❌
#165494 fix Miri ICE on exit with () return type 9764a1fb632ea999983442b96027ca11a1c602be
(link)
#165505 DFV: Reject #[non_exhaustive] on enum variants with defau… 27b62bffe5feaf965c0a75f86c17ae1fbdd258de
(link)
#165512 Fix warnings for the L4Re targets 671abf7f2ba9464f136e46a6af33a7c1a3de9a42
(link)
#165514 Remove unused WhereEqPredicate and ScopeId types 1389e6ba572bdcc3c140b185272f4b45dbaf79a9
(link)
#165518 style-guide: Remove ABI explicitness prescription for exter… 2f5d9d3f8756fd0a6bf988d2a0fca7039e300e1f
(link)

parent commit: 4282da708a

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.

@panstromek

Copy link
Copy Markdown
Contributor

oof, this one is gonna be tough. 50 benchmarks regressed. not sure I want to spam the queue with 15 almost full runs

@panstromek

Copy link
Copy Markdown
Contributor

@rust-timer

rust-timer commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator
Running triage with 50 benchmarks

Triage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
For this rollup, these benchmarks are:

  • await-call-tree
  • bitmaps-3.2.1
  • bitmaps-3.2.1-new-solver
  • cargo-0.87.1
  • clap_derive-4.5.32
  • clap_derive-4.5.32-nll
  • coercions
  • cranelift-codegen-0.119.0
  • deep-vector
  • deeply-nested-multi
  • deeply-nested-multi-new-solver
  • derive
  • diesel-2.2.10
  • diesel-2.2.10-new-solver
  • enum-stress
  • externs
  • eza-0.21.2
  • html5ever-0.31.0
  • html5ever-0.31.0-new-solver
  • hyper-1.6.0
  • image-0.25.6
  • include-blob
  • issue-46449
  • issue-58319
  • issue-88862
  • large-workspace
  • libc-0.2.172
  • many-assoc-items
  • nalgebra-0.33.0
  • nalgebra-0.33.0-new-solver
  • regex-automata-0.4.8
  • regression-31157
  • ripgrep-14.1.1
  • ripgrep-14.1.1-nll
  • serde-1.0.219
  • serde-1.0.219-new-solver
  • serde-1.0.219-nll
  • serde_derive-1.0.219
  • stm32f4-0.15.1
  • syn-2.0.101
  • syn-2.0.101-new-solver
  • tokio-1.53.1
  • tt-muncher
  • tuple-stress
  • ucd
  • unicode-normalization-0.1.24
  • unify-linearly
  • wf-projection-stress-65510
  • wg-grammar
  • wg-grammar-new-solver

#165505 27b62bf DFV: Reject #[non_exhaustive] on enum variants with default field values

Queued 27b62bf with parent 4282da7, future comparison URL.
There are currently 0 preceding artifacts in the queue.
It will probably take at least ~0.7 hours until the benchmark run finishes.


#165388 3412205 Accept variadic SysV64, Win64, and Aapcs FnAbis in rustc_public

Queued 3412205 with parent 4282da7, future comparison URL.
There are currently 0 preceding artifacts in the queue.
It will probably take at least ~0.7 hours until the benchmark run finishes.


#165335 818c63a Fallible type ops

Queued 818c63a with parent 4282da7, future comparison URL.
There are currently 0 preceding artifacts in the queue.
It will probably take at least ~0.7 hours until the benchmark run finishes.


#165222 b91c5b6 Anonymize inner binders when checking refining

Queued b91c5b6 with parent 4282da7, future comparison URL.
There are currently 0 preceding artifacts in the queue.
It will probably take at least ~0.7 hours until the benchmark run finishes.


#163284 0e7e9ea feat(Reborrow): Allow multiple lifetimes

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

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

Max RSS (memory usage)

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

Cycles

Results (primary -0.8%)

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

mean range count
Regressions ❌
(primary)
2.5% [2.5%, 2.5%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.5% [-2.7%, -2.3%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -0.8% [-2.7%, 2.5%] 3

Binary size

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


#159374 1347227 Lower #[no_mangle] to #[symbol_name]/#[link_name]

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.3% [0.3%, 0.3%] 3
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

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

Cycles

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

Binary size

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


#165550 d20f60c Make Literal::cstr_value return a CString

Queued d20f60c with parent 4282da7, future comparison URL.
There are currently 6 preceding artifacts in the queue.
It will probably take at least ~4.7 hours until the benchmark run finishes.


#165037 163692e Drop array elements in order after a partial move

This perf run didn't have relevant results for the `instruction count` metric.

Instruction count

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

Max RSS (memory usage)

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

Cycles

Results (primary -2.1%, secondary -3.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
Improvements ✅
(primary)
-2.1% [-2.3%, -2.0%] 2
Improvements ✅
(secondary)
-3.4% [-3.4%, -3.4%] 1
All ❌✅ (primary) -2.1% [-2.3%, -2.0%] 2

Binary size

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

@Zalathar
Zalathar deleted the rollup-LUhUZ7X branch November 7, 2026 08:22
@Zalathar

Zalathar commented Nov 7, 2026

Copy link
Copy Markdown
Member Author

Really glad I decided to limit this one to only 15 PRs. 😅

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

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-slice-vec Area: `[T]` and `Vec<T>` merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like perf-regression Performance regression. rollup A PR which is a rollup 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-style Relevant to the style 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.