Skip to content

Conversation

@GuillaumeGomez
Copy link
Member

@GuillaumeGomez GuillaumeGomez commented Nov 21, 2025

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Nadrieril and others added 18 commits November 9, 2025 02:30
This is useful for allowing writing run-make tests that test
rustdoc-json.
…esolution

Historically, it's not been possible to robustly resolve a cross-crate
item in rustdoc-json. If you had a `Id` that wasn't in `Crate::index`
(because it was defined in a different crate), you could only look it up
it `Crate::paths`. But there, you don't get the full information, only
an `ItemSummary`. This tells you the `path` and the `crate_id`.

But knowing the `crate_id` isn't enough to be able to build/find the
rustdoc-json output with this item. It's only use is to get a
`ExternalCrate` (via `Crate::external_crates`). But that only tells you
the `name` (as a string). This isn't enough to uniquely identify a
crate, as there could be multiple versions/features [1] [2].

This was originally proposed to be solved via LukeMathWalker's
`--orchestrator-id` proposal
(https://www.github.com/rust-lang/compiler-team/issues/635). But that
requires invasive changes to cargo/rustc. This PR instead implements
Urgau's proposal to re-use the path to a crate's rmeta/rlib as a unique
identifer. Callers can use that to determine which package it
corresponds to in the language of the build-system above rustc. E.g. for
cargo, `cargo rustdoc --message-format=json --output-format=json
-Zunstable-options`).

(Once you've found the right external crate's rustdoc-json output, you
still need to resolve the path->id in that crate. But that's """just"""
a matter of walking the module tree. We should probably still make that
nicer (by, for example, allowing sharing `Id`s between rustdoc-json
document), but that's a future concern)

For some notes from RustWeek 2025, where this was designed, see
https://hackmd.io/0jkdguobTnW7nXoGKAxfEQ

[1]: https://www.github.com/rust-lang/compiler-team/issues/635#issue-1714254865 § Problem
[2]: https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/Identifying.20external.20crates.20in.20Rustdoc.20JSON/with/352701211
…p.toml

This makes easy to persistently pass any flag to the compiler when
building rustc.
For example you can use a different linker by putting the following in
`bootstrap.toml`:
```toml
[rust]
rustflags = ["-Clinker=clang", "-Clink-arg=--ld-path=wild"]
```
…g-pred, r=petrochenkov

Emit error when using path-segment keyword as cfg pred

Fixes rust-lang#146968

Emit error `CfgPredicateIdentifier` if the word is path-segment keyword.

Detailed change description - rust-lang#146978 (comment).

r? petrochenkov
Allow unnormalized types in drop elaboration

I work on a [rustc driver](https://github.com/AeneasVerif/charon) that aims to extract the full polymorphic MIR of a crate. Currently the one thing I can't get is drop glue because it fails on unnormalizable types like the fields of `Cow` or `NonZero`.

This PR removes the one check for unnormalized types in drop elaboration. It's a `span_delay_bug` so only there to help catch mistakes. I think that's fine to remove? If something downstream relies on types being normalized the right approach is for MIR validation to check for normalized types, not that one random check.
…ml, r=Kobzol

add `rust.rustflags` and per target `rustflags` options to `bootstrap.toml`

Part of rust-lang#148782; see also rust-lang#148708

Add new options `rust.rustflags` for all targets and `rustflags` par target that will pass specified flags to rustc for all stages. Target specific flags override (are passed after) global `rust.rustflags` ones.

This makes easy to persistently pass any flag to the compiler when building rustc. For example you can use a different linker by putting the following in `bootstrap.toml`:
```toml
[rust]
rustflags = ["-Clinker=clang", "-Clink-arg=--ld-path=wild"]
```
r? bootstrap
…binarycat

[rustdoc] Remove `UrlFragment::render` method to unify `clean::types::links` and `anchor`

Fixes rust-lang#148648.
First part of rust-lang#148547.

The last part will be about handle `AssocItemLink` differently (either remove it or change how we do it).

r? `@lolbinarycat`
…-out-of-spite-does-it-matter, r=GuillaumeGomez

 rustdoc-json: add rlib path to ExternalCrate to enable robust crate resolution

Historically, it's not been possible to robustly resolve a cross-crate item in rustdoc-json. If you had a `Id` that wasn't in `Crate::index` (because it was defined in a different crate), you could only look it up it `Crate::paths`. But there, you don't get the full information, only an `ItemSummary`. This tells you the `path` and the `crate_id`.

But knowing the `crate_id` isn't enough to be able to build/find the rustdoc-json output with this item. It's only use is to get a `ExternalCrate` (via `Crate::external_crates`). But that only tells you the `name` (as a string). This isn't enough to uniquely identify a crate, as there could be multiple versions/features [^1] [^2].

This was originally proposed to be solved via `@LukeMathWalker's` `--orchestrator-id` proposal (rust-lang/compiler-team#635). But that requires invasive changes to cargo/rustc. This PR instead implements `@Urgau's` proposal to re-use the path to a crate's rmeta/rlib as a unique identifer. Callers can use that to determine which package it corresponds to in the language of the build-system above rustc. E.g. for cargo, `cargo rustdoc --message-format=json --output-format=json -Zunstable-options`).

(Once you've found the right external crate's rustdoc-json output, you still need to resolve the path->id in that crate. But that's """just""" a matter of walking the module tree. We should probably still make that nicer (by, for example, allowing sharing `Id`s between rustdoc-json document), but that's a future concern)

For some notes from RustWeek 2025, where this was designed, see https://hackmd.io/0jkdguobTnW7nXoGKAxfEQ

CC `@obi1kenobi` (who wants this for cargo-semver-checks [^3]), `@epage` (who's conversations on what and wasn't possible with cargo informed taking this approach to solve this problem)

r? `@GuillaumeGomez`

## TODO:

- [x] Docs: [Done](https://github.com/rust-lang/rust/compare/e4cdd0c24a994fed354081b5f907680a11f2ddc5..457ed4edb184997d5d6f879c6a220bc4d69ff6fd)
- [x] Tests: [Done](https://github.com/rust-lang/rust/compare/2e1b954dc52bf7e5a6e9311394df760db37d383f..4d00c1a7ee5e03d1e78801cc01a85dac08ab603b)

[^1]: rust-lang/compiler-team#635 (comment) § Problem
[^2]: https://rust-lang.zulipchat.com/#narrow/channel/266220-t-rustdoc/topic/Identifying.20external.20crates.20in.20Rustdoc.20JSON/with/352701211
[^3]: obi1kenobi/cargo-semver-checks#638
…ct-lint, r=JonathanBrouwer

Fix error message for calling a non-tuple struct

This feels a bit odd checking for `"0"` but I can't see how else to check for it being a Tuple

closes rust-lang#148919
… r=petrochenkov

Add test for importing path-segment keyword

Adding new test to make a snapshot of current compiler's behavior. See rust-lang#146972 (comment)

r? `@petrochenkov`
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-run-make Area: port run-make Makefiles to rmake.rs A-rustdoc-json Area: Rustdoc JSON backend F-explicit_tail_calls `#![feature(explicit_tail_calls)]` 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-clippy Relevant to the Clippy team. 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. rollup A PR which is a rollup labels Nov 21, 2025
@GuillaumeGomez
Copy link
Member Author

@bors r+ p=5 rollup=never

@bors
Copy link
Collaborator

bors commented Nov 21, 2025

📌 Commit 228b49e has been approved by GuillaumeGomez

It is now in the queue for this repository.

@bors bors 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 21, 2025
@bors
Copy link
Collaborator

bors commented Nov 21, 2025

⌛ Testing commit 228b49e with merge 27b076a...

@bors
Copy link
Collaborator

bors commented Nov 21, 2025

☀️ Test successful - checks-actions
Approved by: GuillaumeGomez
Pushing 27b076a to main...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Nov 21, 2025
@bors bors merged commit 27b076a into rust-lang:main Nov 21, 2025
12 checks passed
@rustbot rustbot added this to the 1.93.0 milestone Nov 21, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#146978 Emit error when using path-segment keyword as cfg pred 38a197202b8f2e583911547817e0afd6fd778942 (link)
#148719 Allow unnormalized types in drop elaboration ac86aa59d514007d9dcc877005b41bed5b7456d1 (link)
#148795 add rust.rustflags and per target rustflags options to … 00a04a2a8dbeda2096983b2104aa071d8d77b3c6 (link)
#149028 [rustdoc] Remove UrlFragment::render method to unify `cle… 046c67cbbb3b7ca0e1796f96784d6c861ba8e0ad (link)
#149043 rustdoc-json: add rlib path to ExternalCrate to enable rob… 1fc0c506ec6a3f68cb200d81afe1f5d92fe13b73 (link)
#149098 Fix error message for calling a non-tuple struct 77350a2211fb732ad61906342c371586db6225c3 (link)
#149151 Add test for importing path-segment keyword 607f18c7ca7eb2aa1556d9af32412545af9187c4 (link)

previous master: e22dab387f

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
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 e22dab3 (parent) -> 27b076a (this PR)

Test differences

Show 220 test diffs

Stage 1

  • [run-make] tests/run-make/rustdoc-json-external-crate-path: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_crate: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_priv: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_crate: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_self_lower: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_self_upper: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_super: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_underscore: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_self_lower: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_self_upper: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_struct: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_super: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_underscore: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_crate: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_priv: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_crate: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_self_lower: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_self_upper: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_super: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_underscore: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_self_lower: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_self_upper: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_struct: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_super: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_underscore: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-raw-allow.rs: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred.rs: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/raw-true-false.rs: [missing] -> pass (J0)
  • [ui] tests/ui/cfg/raw-true-false.rs#r0x0: pass -> [missing] (J0)
  • [ui] tests/ui/cfg/raw-true-false.rs#r0x1: pass -> [missing] (J0)
  • [ui] tests/ui/cfg/raw-true-false.rs#r1x0: pass -> [missing] (J0)
  • [ui] tests/ui/cfg/raw-true-false.rs#r1x1: pass -> [missing] (J0)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#become: pass -> [missing] (J0)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#become_: [missing] -> pass (J0)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#return: pass -> [missing] (J0)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#return_: [missing] -> pass (J0)
  • [ui] tests/ui/resolve/regression-struct-called-as-function-148919.rs: [missing] -> pass (J0)
  • [ui] tests/ui/use/use-path-segment-kw.rs: [missing] -> pass (J0)
  • [codegen] tests/codegen-llvm/cf-protection.rs#return: pass -> [missing] (J2)
  • [codegen] tests/codegen-llvm/cf-protection.rs#return_: [missing] -> pass (J2)

Stage 2

  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_crate: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_priv: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_crate: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_self_lower: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_self_upper: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_super: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_raw_underscore: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_self_lower: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_self_upper: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_struct: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_super: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-cfg.rs#cfg_underscore: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_crate: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_priv: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_crate: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_self_lower: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_self_upper: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_super: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_raw_underscore: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_self_lower: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_self_upper: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_struct: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_super: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-check-cfg.rs#check_cfg_underscore: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred-cli-raw-allow.rs: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/path-kw-as-cfg-pred.rs: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/raw-true-false.rs: [missing] -> pass (J1)
  • [ui] tests/ui/cfg/raw-true-false.rs#r0x0: pass -> [missing] (J1)
  • [ui] tests/ui/cfg/raw-true-false.rs#r0x1: pass -> [missing] (J1)
  • [ui] tests/ui/cfg/raw-true-false.rs#r1x0: pass -> [missing] (J1)
  • [ui] tests/ui/cfg/raw-true-false.rs#r1x1: pass -> [missing] (J1)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#become: pass -> [missing] (J1)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#become_: [missing] -> pass (J1)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#return: pass -> [missing] (J1)
  • [ui] tests/ui/explicit-tail-calls/ctfe-id-unlimited.rs#return_: [missing] -> pass (J1)
  • [ui] tests/ui/resolve/regression-struct-called-as-function-148919.rs: [missing] -> pass (J1)
  • [ui] tests/ui/use/use-path-segment-kw.rs: [missing] -> pass (J1)
  • [codegen] tests/codegen-llvm/cf-protection.rs#return: pass -> [missing] (J3)
  • [codegen] tests/codegen-llvm/cf-protection.rs#return_: [missing] -> pass (J3)
  • [run-make] tests/run-make/rustdoc-json-external-crate-path: [missing] -> pass (J4)

Additionally, 140 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 27b076af7e3e7a363975443d81dfa9ecee5a74ec --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. dist-apple-various: 3353.9s -> 4367.9s (+30.2%)
  2. dist-x86_64-apple: 7604.9s -> 5919.2s (-22.2%)
  3. dist-powerpc-linux: 4929.9s -> 6022.6s (+22.2%)
  4. dist-sparcv9-solaris: 5239.9s -> 6396.6s (+22.1%)
  5. dist-loongarch64-musl: 5206.3s -> 6340.8s (+21.8%)
  6. dist-various-1: 4104.7s -> 4986.1s (+21.5%)
  7. dist-arm-linux-gnueabi: 4819.6s -> 5833.8s (+21.0%)
  8. dist-s390x-linux: 5078.6s -> 6093.2s (+20.0%)
  9. dist-x86_64-netbsd: 4857.1s -> 5797.0s (+19.4%)
  10. dist-armv7-linux: 5093.5s -> 6069.3s (+19.2%)
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
Collaborator

Finished benchmarking commit (27b076a): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 6.0%, secondary 1.0%)

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

mean range count
Regressions ❌
(primary)
6.0% [6.0%, 6.0%] 1
Regressions ❌
(secondary)
1.0% [1.0%, 1.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 6.0% [6.0%, 6.0%] 1

Cycles

Results (primary -2.4%, secondary -5.5%)

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.4% [-2.4%, -2.4%] 1
Improvements ✅
(secondary)
-5.5% [-5.5%, -5.5%] 1
All ❌✅ (primary) -2.4% [-2.4%, -2.4%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 473.456s -> 473.357s (-0.02%)
Artifact size: 388.90 MiB -> 388.90 MiB (-0.00%)

@GuillaumeGomez GuillaumeGomez deleted the rollup-pn0aoy3 branch November 22, 2025 10:30
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-json Area: Rustdoc JSON backend 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 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-clippy Relevant to the Clippy team. 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.

9 participants