-
Notifications
You must be signed in to change notification settings - Fork 13.8k
Implement RFC 3631: add rustdoc doc_cfg features #138907
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This comment has been minimized.
This comment has been minimized.
Noted! And that will be a nice improvement, thanks! Just one thing left for the cfg expansion missing: |
Do you mean like in #138515? :) |
You're my hero! Gonna need to handle this new attribute then. :) |
4a05a52
to
3d2eef1
Compare
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #138923) made this pull request unmergeable. Please resolve the merge conflicts. |
d88598f
to
db25eea
Compare
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #138927) made this pull request unmergeable. Please resolve the merge conflicts. |
b8cb424
to
b581ce1
Compare
This comment has been minimized.
This comment has been minimized.
b581ce1
to
1cb7fac
Compare
This comment has been minimized.
This comment has been minimized.
71369a1
to
fbee8a9
Compare
This comment has been minimized.
This comment has been minimized.
Now that rust nightly has merged doc_auto_cfg into doc_cfg, and completed rust-lang/rust#138907, it is no longer necessary. Closes #1514.
# Which issue does this PR close? None. # Rationale for this change Removed in rust-lang/rust#138907, included in `doc_cfg` # What changes are included in this PR? Use `doc_cfg` instead of removed `doc_auto_cfg`. # Are these changes tested? Test locally with: `cargo +nightly docs-rs` # Are there any user-facing changes? No
As of <rust-lang/rust#138907>, the former feature has been removed and the latter feature has the same effect.
As of <rust-lang/rust#138907>, the former feature has been removed and the latter feature has the same effect.
As of <rust-lang/rust#138907>, the former feature has been removed and the latter feature has the same effect.
- [ ] Added a `CHANGELOG.md` entry # Summary Replace the removed `doc_auto_cfg` feature with the `doc_cfg` feature. # Motivation Avoid compilation errors when building documentation. # Details `doc_auto_cfg` was merged into `doc_cfg` in rust-lang/rust#138907. When `docsrs` is enabled, the old `doc_auto_cfg` results in the following errors on the latest nightlies: ``` error[E0557]: feature has been removed --> src/lib.rs:56:29 | 56 | #![cfg_attr(docsrs, feature(doc_auto_cfg))] | ^^^^^^^^^^^^ feature has been removed | = note: removed in CURRENT_RUSTC_VERSION; see <rust-lang/rust#138907> for more information = note: merged into `doc_cfg` ``` ``` error[E0557]: feature has been removed --> rand_core/src/lib.rs:36:29 | 36 | #![cfg_attr(docsrs, feature(doc_auto_cfg))] | ^^^^^^^^^^^^ feature has been removed | = note: removed in CURRENT_RUSTC_VERSION; see <rust-lang/rust#138907> for more information = note: merged into `doc_cfg` ``` The new `doc_cfg` retains the automatic `cfg` generation that `doc_auto_cfg` used to provide.
`doc_auto_cfg` has been merged into `doc_cfg` in rust-lang/rust#138907. Signed-off-by: Julian Schindel <[email protected]>
`doc_auto_cfg` has been merged into `doc_cfg` in rust-lang/rust#138907. Signed-off-by: Julian Schindel <[email protected]>
`doc_auto_cfg` has been merged into `doc_cfg` in rust-lang/rust#138907. Also bumps the Rust nightly version to actually capture the `doc_cfg` change. Fixes: [DEV-1000](https://linear.app/veecle/issue/DEV-1000) --------- Signed-off-by: Julian Schindel <[email protected]>
https://docs.rs/crate/oxc_resolver/11.8.4/builds/2542617 ``` [INFO] [stderr] error[E0557]: feature has been removed [INFO] [stderr] --> src/lib.rs:42:29 [INFO] [stderr] | [INFO] [stderr] 42 | #![cfg_attr(docsrs, feature(doc_auto_cfg))] [INFO] [stderr] | ^^^^^^^^^^^^ feature has been removed [INFO] [stderr] | [INFO] [stderr] = note: removed in 1.58.0; see <rust-lang/rust#138907> for more information [INFO] [stderr] = note: merged into `doc_cfg` [INFO] [stderr] [INFO] [stderr] error: Compilation failed, aborting rustdoc ```
Code changes are: - Use the `doc_cfg` feature instead of `doc_auto_cfg`: rust-lang/rust#138907 - Fix a few unused macro imports in the same file that defines the macro. UI test changes are: - Message for variadic args being unsupported has been updated. - Inference error location has changed slightly. Assembly test changes are: - None.
doc_auto_cfg has been merged into doc_cfg in rust-lang/rust#138907
doc_auto_cfg has been merged into doc_cfg in rust-lang/rust#138907
Implementation of rust-lang/rfcs#3631.
This implementation actually resulted in a lot of simplifications:
cfg
computation is now done in one place:propagate_doc_cfg.rs
. Because (trait)impl
s are not retrieved at the same time as the other items, we cannot perform this computation in the clean process, it needs to be after.cfg
inheritance, we can keep track of them in one place (inpropagate_doc_cfg.rs
), meaning we don't need to copy an item's attributes to its children anymore. Only exception: impl items. For them we clone onlycfg
attributes.propagate_doc_cfg.rs
is also now much simpler, much less need to keep track of parents, since everything we need is handled by the newCfgInfo
type.Cfg::simplify_with
could either be removed or at least used directly intopropagate_doc_cfg.rs
when we computecfg
s. Considering how big the PR already is, I'll do it in a follow-up.I didn't remove the
doc_cfg*
features in this PR because some dependencies used inrustc
(likestdarch
) are using it, so we need to have a nightly released with this PR before I can switch to the new feature.r? ghost