Jonathan Brouwer
2263a8e19e
Rollup merge of #153072 - ferrocene:jyn/libcore-doctest-merge, r=jdonszelmann
...
Allow merging all libcore/alloc doctests into a single binary
This is only the changes needed to *allow* merging the tests. This doesn't actually turn doctest merging on in bootstrap. I think that might be a useful follow-up, since it makes them much faster to run, but it's not without downsides because it means we'll no longer be testing that doctests have all necessary `feature()` attributes.
The motivation for this change is to run the tests with `-C instrument-coverage` and then generate a coverage report from the output. Currently, this is very expensive because it requires parsing DWARF for each doctest binary. Merging the binaries decreases the time taken from several hours to ~30 seconds.
---
There are several parts to this change, most of which are independent and I'm happy to split out into other PRs.
- Upgrade process spawning logging from debug->info so it's easier to see, including in a rustdoc built without debug symbols.
- Core doctests now support being run with `-C panic=abort`. Ferrocene needs this downstream for complicated reasons; it's a one-line change so I figured it's not a big deal.
- Downgrade errors about duplicate features from a hard error to a warning. The meaning is clear here, and doctest merging often creates duplicate features since it lifts them all to the crate root. This involves changes to the compiler but generally I expect this to be low-impact.
- Enable this new warning, as well as several related feature lints, in rustdoc. By default rustdoc doesn't lint on anything except the lints it manually adds.
- Rustdoc now treats `allow(incomplete_features)` as a crate-level attribute, just like `internal_features`. Without this, it's possible to get hard errors if rustdoc lifts features to the crate level but not `allow`s.
- Core doctests now support being built with `--merge-doctests=yes`. In particular, I removed a few `$crate` usages and explicitly marked a few doctests as `standalone_crate`.
2026-03-11 10:58:50 +01:00
..
2026-01-17 12:12:36 +01:00
2026-03-10 13:18:10 +01:00
2026-01-07 14:23:30 +01:00
2026-02-12 09:09:35 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-02-09 07:59:24 -08:00
2026-01-07 14:23:30 +01:00
2026-01-17 12:12:36 +01:00
2026-03-10 13:18:10 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-02-24 11:41:26 -05:00
2026-01-07 14:23:30 +01:00
2026-02-23 16:25:27 +01:00
2026-02-09 07:59:24 -08:00
2026-01-07 14:23:30 +01:00
2026-01-19 22:17:59 -08:00
2026-01-07 14:23:30 +01:00
2026-03-02 11:57:04 +01:00
2026-01-08 19:14:45 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-03-02 11:44:40 +01:00
2026-01-07 14:23:30 +01:00
2026-03-02 11:57:04 +01:00
2026-01-07 14:23:30 +01:00
2026-02-11 12:06:24 +01:00
2026-02-12 09:09:35 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-17 12:12:36 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-19 14:32:43 -06:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-22 09:15:53 +09:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-02-12 09:09:35 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-02-12 15:18:15 +08:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-27 16:24:53 +03:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-02-10 18:00:54 +00:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00
2026-01-07 14:23:30 +01:00