Skip to content

Rollup of 7 pull requests - #149196

Merged
bors merged 18 commits into
rust-lang:mainfrom
GuillaumeGomez:rollup-pn0aoy3
Nov 21, 2025
Merged

Rollup of 7 pull requests#149196
bors merged 18 commits into
rust-lang:mainfrom
GuillaumeGomez:rollup-pn0aoy3

Conversation

@GuillaumeGomez

@GuillaumeGomezGuillaumeGomez commented Nov 21, 2025

Copy link
Copy Markdown
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Nadrieriland 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
Fixesrust-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`
Fixesrust-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
closesrust-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`
@rustbotrustbot 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
Copy Markdown
MemberAuthor

@bors r+ p=5 rollup=never

@bors

bors commented Nov 21, 2025

Copy link
Copy Markdown
Collaborator

📌 Commit 228b49e has been approved by GuillaumeGomez

It is now in the queue for this repository.

@borsbors 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

bors commented Nov 21, 2025

Copy link
Copy Markdown
Collaborator

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

@bors

bors commented Nov 21, 2025

Copy link
Copy Markdown
Collaborator

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

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

Copy link
Copy Markdown
Collaborator

📌 Perf builds for each rolled up PR:

PR#MessagePerf Build Sha
#146978Emit error when using path-segment keyword as cfg pred38a197202b8f2e583911547817e0afd6fd778942 (link)
#148719Allow unnormalized types in drop elaborationac86aa59d514007d9dcc877005b41bed5b7456d1 (link)
#148795add rust.rustflags and per target rustflags options to …00a04a2a8dbeda2096983b2104aa071d8d77b3c6 (link)
#149028[rustdoc] Remove UrlFragment::render method to unify `cle…046c67cbbb3b7ca0e1796f96784d6c861ba8e0ad (link)
#149043rustdoc-json: add rlib path to ExternalCrate to enable rob…1fc0c506ec6a3f68cb200d81afe1f5d92fe13b73 (link)
#149098Fix error message for calling a non-tuple struct77350a2211fb732ad61906342c371586db6225c3 (link)
#149151Add test for importing path-segment keyword607f18c7ca7eb2aa1556d9af32412545af9187c4 (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
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 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
Copy Markdown
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.

meanrangecount
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.

meanrangecount
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 freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributesArea: Attributes (`#[…]`, `#![…]`)A-run-makeArea: port run-make Makefiles to rmake.rsA-rustdoc-jsonArea: Rustdoc JSON backendF-explicit_tail_calls`#![feature(explicit_tail_calls)]`merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-bootstrapRelevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)T-clippyRelevant to the Clippy team.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.T-rustdoc-frontendRelevant 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

@GuillaumeGomez@bors@rust-timer@rustbot@Nadrieril@Jamesbarford@aDotInTheVoid@mu001999@karolzwolak