Files
rust/tests/ui/parser
bors 5b150d238f Auto merge of #149645 - GuillaumeGomez:doc-attr-based, r=jdonszelmann,jonathanbrouwer
Port `doc` attributes to new attribute API

Part of https://github.com/rust-lang/rust/issues/131229.

This PR ports the `doc` attributes to the new attribute API. However, there are things that will need to be fixed in a follow-up:

* Some part of `cfg_old.rs` are likely unused now, so they should be removed.
* Not all error/lints are emitted at the same time anymore, making them kinda less useful considering that you need to run and fix rustc/rustdoc multiple times to get through all of them.
* For coherency with the other attribute errors, I didn't modify the default output too much, meaning that we have some new messages now. I'll likely come back to that to check if the previous ones were better in a case-by-case approach.
* `doc(test(attr(...)))` is handled in a horrifying manner currently. Until we can handle it correctly with the `Attribute` system, it'll remain that thing we're all very ashamed of. 😈
* A type in rustdoc got its size increased, I'll check the impact on performance. But in any case, I plan to improve it in a follow-up so should be "ok".
* Because of error reporting, some fields of `Doc` are suboptimal, like `inline` which instead of being an `Option` is a `ThinVec` because we report the error later on. Part of the things I'm not super happy about but can be postponed to future me.
* In `src/librustdoc/clean/cfg.rs`, the `pub(crate) fn parse(cfg: &MetaItemInner) -> Result<Cfg, InvalidCfgError> {` function should be removed once `cfg_trace` has been ported to new `cfg` API.
* Size of type `DocFragment` went from 32 to 48. Would be nice to get it back to 32.
* ``malformed `doc` attribute input`` wasn't meant for so many candidates, should be improved.
* See how many of the checks in `check_attr` we can move to attribute parsing
* Port target checking to be in the attribute parser completely
* Fix target checking for `doc(alias)` on fields & patterns

And finally, once this PR is merged, I plan to finally stabilize `doc_cfg` feature. :)

cc `@jdonszelmann`
r? `@JonathanBrouwer`
2025-12-11 21:08:19 +00:00
..
2025-04-03 21:41:58 +00:00
2025-12-10 12:35:17 +01:00
2025-11-27 14:13:58 -05:00
2025-12-09 01:16:05 +00:00
2025-11-08 04:51:33 +01:00
2024-12-10 11:34:13 +08:00
2025-08-28 20:05:04 +02:00
2025-08-28 20:05:04 +02:00
2023-05-05 21:44:48 +02:00
2023-05-05 21:44:48 +02:00
2025-07-25 20:38:54 +05:00
2024-11-16 20:03:31 +00:00
2025-07-31 21:25:49 +05:00
2023-05-05 11:17:14 -04:00
2025-09-15 10:48:26 -07:00
2024-10-11 11:30:08 -04:00
2025-08-09 16:27:20 +05:00
2024-11-29 06:10:15 +11:00
2024-04-21 15:43:43 -03:00
2024-04-21 15:43:43 -03:00
2024-04-21 15:43:43 -03:00
2024-04-21 15:43:43 -03:00
2025-01-07 16:04:14 +01:00
2025-01-07 16:04:14 +01:00
2025-10-01 22:45:16 +02:00
2023-10-04 01:35:07 +00:00
2023-10-04 01:35:07 +00:00
2025-07-01 15:29:29 +05:00
2025-04-25 17:02:59 +05:00
2024-11-24 19:42:33 +01:00
2024-11-24 19:42:33 +01:00
2025-11-27 14:13:58 -05:00
2025-11-27 11:19:00 -05:00
2025-11-27 11:19:00 -05:00
2025-11-27 11:19:00 -05:00
2023-01-19 02:25:55 +00:00
2025-12-02 18:25:13 +00:00
2025-11-27 11:19:00 -05:00
2025-12-02 18:25:13 +00:00