Skip to content

Rollup of 10 pull requests#157663

Closed
GuillaumeGomez wants to merge 26 commits into
rust-lang:mainfrom
GuillaumeGomez:rollup-Iwi31Tb
Closed

Rollup of 10 pull requests#157663
GuillaumeGomez wants to merge 26 commits into
rust-lang:mainfrom
GuillaumeGomez:rollup-Iwi31Tb

Conversation

@GuillaumeGomez

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost

Create a similar rollup

rajgandhi1 and others added 26 commits June 5, 2026 14:34
Since approx. Windows SDK 20348, the corresponding cdb (and/or its
underlying WinDbg engine) changed or regressed the `OsStr`/`OsString`
visualization, and no longer renders the emoji. Since approx. SDK/cdb
26100, the output formatting of the string containing UTF-8 (i.e. the
multi-byte emoji grapheme) seems to have further regressed (e.g. the end
quotation mark is no longer shown and command output becomes garbled).

Relevant issues:

* RUST-88840
* RUST-148743
* RUST-88796
The hand-written reader bootstrap.py uses to find the stage0 cargo and
rustc only recognized `[table]` headers, so dotted keys like
`build.cargo = "..."` were ignored. Parse the dotted prefix on each key
as the table it belongs to, resolved relative to the enclosing section,
and scope the cargo/rustc lookup to `[build]` so the Python and Rust
sides agree.
This makes a few changes to rustc_public to make it a little easier to
analyze ADT types.

* It implements `CrateDef` and `CrateDefType` for `FieldDef`, which
  allows easy access to the underlying `DefId`, names, and tool
  annotations.
* It adds `Crate::adts` to simplify stepping through all the ADTs in the
  crate.

Note that I did use Gemini to assist with writing this patch, but I
wrote most of it, reviewed all the vode, and verified the tests pass
locally.
Moreover, flesh out the rustdoc book section about code block attributes.
* Fix async drop glue for Box<T>
* Adress reviewer concerns
* Address more concerns
…keys, r=clubby789

bootstrap: Handle dotted table keys when parsing bootstrap.toml

Fixes rust-lang#156948

`bootstrap.py` has a small hand-rolled reader that pulls the stage0 cargo and rustc out of `bootstrap.toml` before the real TOML parser is built. It only understood `[table]` headers, so the dotted form that `bootstrap.example.toml` now uses (`build.cargo = "..."`) was silently dropped, and the cargo/rustc lookup matched those keys in any table rather than only `[build]`.

Teach the reader to strip an optional dotted prefix and treat it as the key's table, the same way `configure.py` does when it writes the file, and scope the cargo/rustc lookup to `[build]`. New tests cover the dotted form, equivalence with the section form, wrong-table rejection, and dotted target keys.

*Disclosure: the code was written by AI (Claude); reviewed and tested by me.*
…db, r=Kobzol

Disable `tests/debuginfo/pretty-std.rs` `OsString` cdb check

## Summary

Since approx. Windows SDK 20348, the corresponding cdb (and/or its underlying WinDbg engine) changed or regressed the `OsStr`/`OsString` visualization, and no longer renders the emoji. Since approx. SDK/cdb 26100, the output formatting of the string containing UTF-8 (i.e. the multi-byte emoji grapheme) seems to have further regressed (e.g. the end quotation mark is no longer shown and command output becomes garbled).

Relevant issues:

* rust-lang#88840
* rust-lang#148743
* rust-lang#88796

This was failing for me locally on host Windows MSVC under `./x test tests/debuginfo`. And the issues re. this case failing has been open for a long while and have not been addressed, so I propose disabling this case.

I believe this is either a regression or a change in cdb and/or the underlying WinDbg. I have not bothered filing such a cdb bug report, I don't know enough about this.

The check was actually relaxed to not require the emoji to be rendered properly in the output in rust-lang#88842, but I feel like that regressed the original intention of the check (that multi-byte Unicode graphemes are properly rendered), so I just restored the original checks but commented them out.

Maybe r? @wesleywiser (or compiler)
…test-harness, r=GuillaumeGomez

rustdoc: Test & document `test_harness` code block attribute

They were fully untested and undocumented previously despite being stable.
Context: [#t-rustdoc > &rust-lang#96;test_harness&rust-lang#96; langstr @ 💬](https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/.60test_harness.60.20langstr/near/546748038).

While at it, I've also improved the documentation for code block attributes in general.
I was only inspired to do so because there was no good place for `test_harness` and because it got hard to skim due to a lack of subsubsections.
Fix async drop glue for Box<T>

Fixes rust-lang#143658.

This fixes async drop behavior for boxed values so that async drop glue reaches the boxed value’s async destructor in async drop context.

The change updates async-drop needs-drop analysis so `Box<T>` is handled specially for async drop by considering the boxed pointee and allocator when deciding whether async drop glue is needed.

This PR intentionally does not change the broader AsyncDrop design. It only fixes behavior under the existing `#![feature(async_drop)]` implementation.

Reviewer notes:
- `async-drop-box-allocator.rs` already covers async-dropping the allocator of a `Box`; this PR adds distinct coverage for the boxed value itself.
- Boxed dyn pointees are intentionally not pulled into this fix, preserving existing dynamic async-drop limitations.
- The change is isolated to async drop analysis; sync `needs_drop` behavior is unchanged.

@rustbot label F-async_drop
…jdonszelmann

fix improper ctypes in Znext solver

Fixes rust-lang#156352.
Implement rustc_public::CrateDef{,Type} for FieldDef

This makes a few changes to rustc_public to make it a little easier to analyze ADT types.

* It implements `CrateDef` and `CrateDefType` for `FieldDef`, which allows easy access to the underlying `DefId`, names, and tool annotations.
* It adds `Crate::adts` to simplify stepping through all the ADTs in the crate.

Note that I did use Gemini to assist with writing this patch, but I wrote most of it, reviewed all the vode, and verified the tests pass locally.
…r=JonathanBrouwer

Arg splat experiment - syntax impl

This PR is part of the argument splatting lang experiment, and FFI overloading / C++ interop project goals:
- rust-lang#153629
- https://rust-lang.github.io/rust-project-goals/2026/overloading-for-ffi.html
- https://rust-lang.github.io/rust-project-goals/2025h2/interop-problem-map.html

I've split it from rust-lang#153697 to make reviewing easier, see that PR for more details.

The PR is the initial implementation of the feature:
- `splat` incomplete feature gate
- `#[splat]` attribute on function arguments
- feature gate and UI tests for item type filtering, non-splattable arguments

Once this PR merges, I'll rebase rust-lang#153697.
…r=folkertdev

Add multibyte JSON diagnostic regression test

Closes rust-lang#157148.

This pr adds ui coverage for json diagnostics with rendered ansi output on a
source line containing multibyte text.

Current main emits the original warning without ICEing. This test maintains that
behavior.
…nder-fix, r=GuillaumeGomez

Reorder `impl` restriction rendering and add bottom margin

This PR moves the `impl` restriction rendering above the trait description.
It also adds an ⓘ marker, italicizes the text, and adds a bottom margin.
Tracking issue: rust-lang#105077

before:
<img width="1108" height="651" alt="image" src="https://github.com/user-attachments/assets/520d95cf-a648-44e7-8036-e453cfbdf569" />

after:
<img width="1085" height="671" alt="image" src="https://github.com/user-attachments/assets/84493e56-6227-433b-93d0-4fcbe28ac00c" />

r? @GuillaumeGomez
cc @Urgau @jhpratt
…ering, r=fmease

Report duplicate relaxed bounds during ast lowering

Instead of during hir-ty-lowering.

Not sure it is worth erroring on at all, but it's better to do it directly during lowering instead of collecting bounds after the fact.
@rust-bors rust-bors Bot added the rollup A PR which is a rollup label Jun 9, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end labels Jun 9, 2026
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler 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. labels Jun 9, 2026
@GuillaumeGomez

Copy link
Copy Markdown
Member Author

@bors r+ rollup=never p=5

@rust-bors

rust-bors Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

📌 Commit e502516 has been approved by GuillaumeGomez

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

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Jun 9, 2026
Rollup of 10 pull requests

Successful merges:

 - #157335 (bootstrap: Handle dotted table keys when parsing bootstrap.toml)
 - #157503 (Disable `tests/debuginfo/pretty-std.rs` `OsString` cdb check)
 - #148183 (rustdoc: Test & document `test_harness` code block attribute)
 - #156067 (Fix async drop glue for Box<T>)
 - #156399 (fix improper ctypes in Znext solver)
 - #157410 (Implement rustc_public::CrateDef{,Type} for FieldDef)
 - #157605 (Arg splat experiment - syntax impl)
 - #157630 (Add multibyte JSON diagnostic regression test)
 - #157633 (Reorder `impl` restriction rendering and add bottom margin)
 - #157642 (Report duplicate relaxed bounds during ast lowering)
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 9, 2026
@rust-bors

rust-bors Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 492c116 failed: CI. Failed job:

@GuillaumeGomez

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 Jun 9, 2026
@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Closing in favour of #157673.

@rust-bors rust-bors Bot added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 9, 2026
@rust-bors

rust-bors Bot commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

This pull request was unapproved due to being closed.

@GuillaumeGomez GuillaumeGomez deleted the rollup-Iwi31Tb branch June 9, 2026 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-js Area: Rustdoc's JS front-end rollup A PR which is a rollup S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler 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.

Projects

None yet

Development

Successfully merging this pull request may close these issues.