Skip to content

Rollup of 12 pull requests - #162477

Merged
rust-bors[bot] merged 27 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-xvTdfDi
Sep 8, 2026
Merged

Rollup of 12 pull requests#162477
rust-bors[bot] merged 27 commits into
rust-lang:mainfrom
JonathanBrouwer:rollup-xvTdfDi

Conversation

@JonathanBrouwer

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

folkertdev and others added 27 commits August 28, 2026 15:54
I ended up deciding not to add docs about `bounds` as it seems like a
relatively minor feature of the derive, and there are docs at [1].

[1]: https://github.com/rust-lang/rust/blob/3ffb26fbf5bf232cf59e314e75ea325973f4f583/compiler/rustc_type_ir_macros/src/lib.rs#L21-L55
Just specifying `T: GenericTypeVisitable` doesn't work, as the trait has
a generic: `V`, the visitor. `T: GenericTypeVisitable<__V>` is what
actually works, as `__V` is the generic added to the impl generated by
the derive macro.

We discussed[1] different ways of making this nicer, but settled on not
doing anything, as we don't expect people to need to specify any actual
bounds.

[1]: https://rust-lang.zulipchat.com/#narrow/channel/185405-t-compiler.2Frust-analyzer/topic/Updating.20next-solver/near/618331780
     and below
…-into-deque, r=Darksonn

Fix unsoundness in `VecDeque::from_iter(vec::IntoIter)`

Adds a safety requirement to `VecDeque::from_contiguous_raw_parts_in` to ensure that the `VecDeque` it creates upholds the safety invariants. In particular, either `head < capacity` or `head == capacity == 0`.
Refactors `vec::IntoIter::into_vecdeque` to uphold that invariant (and splits the unsafe blocks into multiple parts, because the safety comment was messy & incomplete). Actual fix is the addition of `|| len == 0`.

I would add a regression test, but the specialization is behind `cfg(not(test))`. I cannot see why this was done, as there are no comments documenting this...

Fixes rust-lang#162452

r? libs
mir_build: Rename `lower_let_expr` to `lower_fallible_let`, and clarify

Calling this method `lower_let_expr` is misleading, as it is also used for lowering let-else statements, which don't contain a `thir::ExprKind::Let`.

This PR also:
- Rewords some related comments.
- Renames the method's `expr` parameter to the less-misleading `scrutinee_id`, since this parameter is the RHS expression being inspected.
- Reorders the `pat` and `scrutinee_id` parameters to match their order in normal Rust syntax.
- Renames the success/failure blocks to `true_block` and `false_block`, to match the convention used by rust-lang#161861.

There should be no change to compiler behaviour.
…nBrouwer

Add tests and docs for `#[derive(GenericTypeVisitable)]`

..given the added complexity from the newly-added `bounds` attribute

Follow-up to rust-lang#160914

More details in individual commits.

cc @JonathanBrouwer (you might want to take over the review of this since you have some context already.. but as you wish)
cc @ChayimFriedman2
…r=WaffleLapkin

run `extern "tail"` with `byval` argument test

With LLVM 23 we can run `extern "tail"` tests with `byval` arguments on x86 and x86_64. AArch64 does not (yet) support this, see llvm/llvm-project#206718.
…r, r=chenyukang

Only check `#[allow(dead_code)]` on the trait

I edited on an old branch (on another machine) when trying to resolve the first comment in rust-lang#161571, and then force-pushed it. So it introduced the behavior in rust-lang#157885 partially.

I found this when rebasing rust-lang#157885, and I was expecting a conflict about this.

r? chenyukang
Call renumberMetadataForAssembly() in LLVMRustPrintModule()

Some metadata got reordered in llvm/llvm-project#220390
…nnethercote

windows-gnu: document libgcc requirement

Fixes rust-lang#158933
Update books

## rust-lang/book

1 commits in 917544888a55e4da7109bdba8c88c893c0da70f4..1500248d8f230566e4ec9f27fcbb8fe9e2898ab1
2026-09-02 16:04:34 UTC to 2026-09-02 16:04:34 UTC

- Update to Rust 1.98 (rust-lang/book#4823)

## rust-lang/edition-guide

1 commits in f5abcf137698e5ad6ebed359d69654ff705346af..ab8544aeed7b792984366aa122ac19bd47ad9a2f
2026-08-25 19:50:54 UTC to 2026-08-25 19:50:54 UTC

- Update never-type-fallback for never type stabilization (rust-lang/edition-guide#384)

## rust-lang/reference

12 commits in 3b38834b39f732c64686f7c64aa29dcf3cd83ba5..e24eecf97b0c9a6dbac67191098204dc8a190aaa
2026-09-02 04:25:27 UTC to 2026-08-25 07:52:18 UTC

- Fix nested block comment grammar (rust-lang/reference#2348)
- dangling pointers: turn some consequences of the definition into notes (rust-lang/reference#2336)
- Fix the nightly grammar validation job (rust-lang/reference#2347)
- Order grammar summary deterministically (rust-lang/reference#2346)
- Remove leftover `types/textual.md` file (rust-lang/reference#2345)
- Fix non-leaf rules with bodies (rust-lang/reference#2344)
- Fix rule IDs not following the header hierarchy (rust-lang/reference#2343)
- Fix heading level of the `verbatim` modifier section (rust-lang/reference#2342)
- Fix `...diagnostics.deprecated...` rule ID (rust-lang/reference#2341)
- Update for stabilization of the never type (rust-lang/reference#2283)
- Add missing punctuation (rust-lang/reference#2339)
- Fix field-less `repr(C)` enum docs (rust-lang/reference#2018)
…-diagnostic-attribute-lint, r=mejrs

Add regression test for item-local diagnostic attribute lint levels

Closes rust-lang#135772

This issue was fixed by rust-lang#160499 indirectly.

r? @mejrs
Update codegen-llvm/inline-debuginfo.rs for distinct DILocation

This updates the expectations to work after llvm/llvm-project#204817
…, r=Darksonn

docs(time): replace "method" with "function"

I used the word "method" in rust-lang#162195 and rust-lang#162199, but these are associated functions, not methods, so I think it's correct to use the word "function".

@rustbot label +A-docs
…athanBrouwer

Fix my duplicate thanks entry

r? @ghost

I accidentally committed with the wrong email :3
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Sep 8, 2026
@rustbot rustbot added 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 labels Sep 8, 2026
@rustbot rustbot added A-rustc-dev-guide Area: rustc-dev-guide F-explicit_tail_calls `#![feature(explicit_tail_calls)]` S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. 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. labels Sep 8, 2026
@JonathanBrouwer

Copy link
Copy Markdown
Member Author

@bors r+ p=5

@rust-bors

rust-bors Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

📌 Commit 4c1ad93 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 Sep 8, 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 Sep 8, 2026
@rust-bors

rust-bors Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

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

@rust-bors
rust-bors Bot merged commit b505807 into rust-lang:main Sep 8, 2026
14 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 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 745de6e (parent) -> b505807 (this PR)

Test differences

Show 321 test diffs

Stage 1

  • [ui (polonius)] tests/ui/diagnostic_namespace/local-lint-level-issue-135772.rs: [missing] -> pass (J0)
  • [ui (polonius)] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86: [missing] -> ignore (only executed when the architecture is x86) (J0)
  • [ui (polonius)] tests/ui/lint/dead-code/allow-adt-propagation-to-impls.rs: [missing] -> pass (J0)
  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86_64: pass -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J2)
  • [ui] tests/ui/diagnostic_namespace/local-lint-level-issue-135772.rs: [missing] -> pass (J3)
  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86: [missing] -> ignore (only executed when the architecture is x86) (J3)
  • [ui] tests/ui/lint/dead-code/allow-adt-propagation-to-impls.rs: [missing] -> pass (J3)
  • [ui] tests/ui-fulldeps/derive-generic-type-visitable-missing-bound.rs: [missing] -> pass (J5)
  • [ui] tests/ui-fulldeps/derive-generic-type-visitable.rs: [missing] -> pass (J5)
  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86_64: ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J6)
  • vec_deque::issue_162452_vec_deque_from_empty_vec_into_iter: [missing] -> pass (J10)

Stage 2

  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86: [missing] -> ignore (ignored when the LLVM version 22.1.2 is older than 23.0.0) (J1)
  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86: [missing] -> pass (J4)
  • vec_deque::issue_162452_vec_deque_from_empty_vec_into_iter: [missing] -> pass (J7)
  • [ui] tests/ui-fulldeps/derive-generic-type-visitable-missing-bound.rs: [missing] -> pass (J8)
  • [ui] tests/ui-fulldeps/derive-generic-type-visitable.rs: [missing] -> pass (J8)
  • [ui] tests/ui/diagnostic_namespace/local-lint-level-issue-135772.rs: [missing] -> pass (J9)
  • [ui] tests/ui/lint/dead-code/allow-adt-propagation-to-impls.rs: [missing] -> pass (J9)
  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86: [missing] -> ignore (only executed when the architecture is x86) (J11)
  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#aarch64: ignore (ignored when the LLVM version 21.1.2 is older than 22.0.0) -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J12)
  • [ui] tests/ui/explicit-tail-calls/tailcc-no-signature-restriction.rs#x86: [missing] -> ignore (ignored when the LLVM version 21.1.2 is older than 23.0.0) (J13)

Additionally, 300 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 b505807a88bdb0dca9c968155f2167a927dddb34 --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-i686-gnu-1: 1h 28m -> 2h 23m (+62.3%)
  2. test-x86_64-gnu-gcc-core-tests: 11m 14s -> 16m 57s (+50.9%)
  3. test-x86_64-gnu-debug: 1h 26m -> 2h 7m (+47.8%)
  4. test-x86_64-gnu-stdlib-semver-check: 10m 24s -> 15m 22s (+47.8%)
  5. test-x86_64-gnu-miri: 1h 3m -> 1h 31m (+43.8%)
  6. test-pr-check-1: 25m 58s -> 36m 56s (+42.2%)
  7. test-i686-msvc-1: 2h 22m -> 3h 10m (+33.5%)
  8. test-aarch64-apple-1: 1h 51m -> 2h 25m (+30.6%)
  9. dist-x86_64-musl: 1h 51m -> 2h 24m (+29.9%)
  10. test-x86_64-gnu: 2h 33m -> 1h 48m (-29.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 (b505807): comparison URL.

Overall result: ❌ regressions - 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.3% [0.2%, 0.4%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 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.9% [0.5%, 1.3%] 4
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.5% [-0.5%, -0.5%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.6% [-0.5%, 1.3%] 5

Cycles

Results (primary -0.1%, secondary -3.6%)

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

mean range count
Regressions ❌
(primary)
0.8% [0.5%, 1.0%] 5
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.7% [-0.9%, -0.4%] 8
Improvements ✅
(secondary)
-3.6% [-3.6%, -3.6%] 1
All ❌✅ (primary) -0.1% [-0.9%, 1.0%] 13

Binary size

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

Bootstrap: 478.441s -> 477.178s (-0.26%)
Artifact size: 403.53 MiB -> 403.53 MiB (-0.00%)

@rust-bors

rust-bors Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#162462 Fix unsoundness in VecDeque::from_iter(vec::IntoIter) 18c20d2ed52df0ba41448137c2cde306a1aa511e
(link)
#162468 mir_build: Rename lower_let_expr to lower_fallible_let,… 03efea80bee2a226f4d66820679ef8629bb3690a
(link)
#161806 Add tests and docs for #[derive(GenericTypeVisitable)] d1b5675bf1a2459b45c2aeaa10edee5003b58aa9
(link)
#161912 run extern "tail" with byval argument test 6be0ce1b25d79badefeaa28edbcbdb2de65bb9a4
(link)
#161932 Only check #[allow(dead_code)] on the trait e4310de4cbfa579f5debaa1e5348d8fe01f3de8e
(link)
#162236 Call renumberMetadataForAssembly() in LLVMRustPrintModule() e6bc4965696d1c94a701559977bc03b680029792
(link)
#162435 windows-gnu: document libgcc requirement 1306f42759cc42cc9593b9b04f928f4421021c9e
(link)
#162439 Update books f7736e695dcb56240d681d82e946ace4c124371c
(link)
#162451 Add regression test for item-local diagnostic attribute lin… 4d6a112d429904ad0a61da31f6a90af99ce61390
(link)
#162455 Update codegen-llvm/inline-debuginfo.rs for distinct DILoca… e651495603a9e675d71062a06321c6be0daf38cc
(link)
#162459 docs(time): replace "method" with "function" 7368f5df416b511a079636962d18b837d0a81160
(link)
#162465 Fix my duplicate thanks entry 2a1854dc58f847fc7111acc19c215e5d7c686601
(link)

parent commit: 745de6eca6

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-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-rustc-dev-guide Area: rustc-dev-guide F-explicit_tail_calls `#![feature(explicit_tail_calls)]` merged-by-bors This PR was explicitly merged by bors. 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.