Rollup of 12 pull requests - #162477
Conversation
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
|
@bors r+ p=5 |
This comment has been minimized.
This comment has been minimized.
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 differencesShow 321 test diffsStage 1
Stage 2
Additionally, 300 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard b505807a88bdb0dca9c968155f2167a927dddb34 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (b505807): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
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.
CyclesResults (primary -0.1%, secondary -3.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 478.441s -> 477.178s (-0.26%) |
|
📌 Perf builds for each rolled up PR:
parent commit: 745de6eca6 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
Successful merges:
VecDeque::from_iter(vec::IntoIter)#162462 (Fix unsoundness inVecDeque::from_iter(vec::IntoIter))lower_let_exprtolower_fallible_let, and clarify #162468 (mir_build: Renamelower_let_exprtolower_fallible_let, and clarify)#[derive(GenericTypeVisitable)]#161806 (Add tests and docs for#[derive(GenericTypeVisitable)])extern "tail"withbyvalargument test #161912 (runextern "tail"withbyvalargument test)#[allow(dead_code)]on the trait #161932 (Only check#[allow(dead_code)]on the trait)r? @ghost
Create a similar rollup