Skip to content

Comments

Rollup of 12 pull requests#153074

Open
jhpratt wants to merge 37 commits intorust-lang:mainfrom
jhpratt:rollup-6aKDmTD
Open

Rollup of 12 pull requests#153074
jhpratt wants to merge 37 commits intorust-lang:mainfrom
jhpratt:rollup-6aKDmTD

Conversation

@jhpratt
Copy link
Member

@jhpratt jhpratt commented Feb 25, 2026

Successful merges:

r? @ghost

Create a similar rollup

Trivaxy and others added 30 commits January 21, 2026 05:04
Co-authored-by: Michael Howell <michael@notriddle.com>
Co-authored-by: Esteban Küber <esteban@kuber.com.ar>
Signed-off-by: Usman Akinyemi <usmanakinyemi202@gmail.com>
…s on bulk inserting other_keys into self map, and inlined with_next() insertion on conflicts from Cursor*
For the attribute `FooBar` the parser is generally called `FooBarParser`
and the kind is called `AttributeKind::FooBar`. This commit renames some
cases that don't match that pattern. The most common cases:
- Adding `Rustc` to the front of the parser name for a `rustc_*`
  attribute.
- Adding `Parser` to the end of a parser name.
- Slight word variations, e.g. `Deprecation` instead of `Deprecated`,
  `Pointer` instead of `Ptr`, `Stability` instead of `Stable`.
Previously this would sometimes just say "unexpected output ``", which
was extremely unhelpful. The actual issue was that I had a `.jj`
directory but not a `.git` directory, so it couldn't run `git submodule
update.`
…ark-Simulacrum

ptr::replace: make calls on ZST null ptr not UB

See rust-lang#138351 for context.

We made `ptr::read` and `ptr::write` not UB on ZST null pointers. This does the same with `ptr::replace`. Since we're just adding a branch on a constant, this should come at no runtime cost.
Fix doc link used in suggestion for pinning self

Fixes rust-lang#147901

The old suggestion linked to a documentation page that [no longer exists](https://rust-lang.github.io/async-book/04_pinning/01_chapter.html#pinning-in-practice). Presumably, [this](https://rust-lang.github.io/async-book/part-reference/pinning.html) is the better place to link to now
…, r=Mark-Simulacrum

`BTreeMap::merge` optimized

This is an optimized version of rust-lang#151981. See [ACP](rust-lang/libs-team#739 (comment)) for more information on `BTreeMap::merge` does.

CC @programmerjake. Let me know what you think of how I'm using `CursorMut` and `IntoIter` here and whether the unsafe code here looks good. I decided to use `ptr::read()` and `ptr::write()` to grab the value from `CursorMut` as `V` than `&mut V`, use it within the `conflict` function, and overwrite the content of conflicting key afterward.

I know this needs some polishing, especially with refactoring some redundant looking code in a nicer way, some of which could probably just be public API methods for `CursorMut`. It does pass all the tests that I currently have for `BTreeMap::merge` (inspired from `BTreeMap::append`) though, so that's good.
…le, r=estebank

rustc_expand: improve diagnostics for non-repeatable metavars

Fix rust-lang#47452.
mGCA: improve ogca diagnostic message

r? BoxyUwU
…e-depth, r=notriddle

Fix relative path handling for --extern-html-root-url

When `--extern-html-root-url` receives a relative path (like `../`), rustdoc uses it as a literal prefix regardless of page depth. This works at depth 1 (`crate/index.html`) but breaks at depth 2+ (`crate/module/struct.Foo.html`) because the relative path doesn't account for the extra nesting.

This patch detects relative vs absolute URLs in the `Remote` branch of `url_parts` and prepends the necessary `../` segments based on the current page depth. Absolute URLs (`https://...`) and server-absolute paths (`/docs/...`) are unchanged.

This makes relative paths a viable option for `--extern-html-root-url`, which they weren't before.

Related to rust-lang#152917, which exposed that relative paths weren't handled correctly.

cc @eggyal
…ywiser

Implement debuginfo for unsafe binder types

Fixes: rust-lang#139462

This treats an unsafe binder like a struct with a single field. This way we'd have the binder's distinct type name while keeping the wrapped value accessible.

Tracking:
- rust-lang#130516
…vooeo

delete some very old trivial `Box` tests

There's still lots more of these tests; these are just a few duplicated ones I found. None of the tests really test for something interesting except that `Deref{Mut}` trivially works with boxes, but there are still loads of more tests that do the same.
In the past, these tests presumably looked more different to each other than today, with `Box`-like pointers being primitives etc.

This PR is also to check whether such changes (deleting of useless tests) are wanted in general.

Part of rust-lang#133895.
rustc_public: Make fields that shouldn't be exposed visible only in `rustc_public`

Previously these fields had to be public since the convert logic was in the `rustc_smir` crate, however that is no longer the case today.
…=JonathanBrouwer

Fix attribute parser and kind names.

For the attribute `FooBar` the parser is generally called `FooBarParser` and the kind is called `AttributeKind::FooBar`. This commit renames some cases that don't match that pattern. The most common cases:
- Adding `Rustc` to the front of the parser name for a `rustc_*` attribute.
- Adding `Parser` to the end of a parser name.
- Slight word variations, e.g. `Deprecation` instead of `Deprecated`, `Pointer` instead of `Ptr`, `Stability` instead of `Stable`.

r? @JonathanBrouwer
…athanBrouwer

Migration of `LintDiagnostic` - part 3

Follow-up of rust-lang#152933 and of rust-lang#153016.

More `LintDiagnostic` items being migrated to `Diagnostic`. Since there is no remaining `emit_node_span_lint` calls, I replaced the method with the code of `emit_diag_node_span_lint`.

r? @JonathanBrouwer
Give a better error when updating a submodule fails

Previously this would sometimes just say "unexpected output ``", which was extremely unhelpful. The actual issue was that I had a `.jj` directory but not a `.git` directory, so it couldn't run `git submodule update.`
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Feb 25, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. A-rustdoc-json Area: Rustdoc JSON backend 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-libs Relevant to the library 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 Feb 25, 2026
@jhpratt
Copy link
Member Author

jhpratt commented Feb 25, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Feb 25, 2026

📌 Commit ec849ca has been approved by jhpratt

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 Feb 25, 2026
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-rustdoc-json Area: Rustdoc JSON backend rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. 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-libs Relevant to the library 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.