[rustdoc] Check doc(cfg()) even of private/hidden items

This commit is contained in:
Guillaume Gomez 2025-10-22 17:32:20 +02:00
parent b2ee1b333a
commit e1e851dc57
4 changed files with 56 additions and 3 deletions

View file

@ -2,3 +2,20 @@
#[doc(cfg = "x")] //~ ERROR not followed by parentheses
#[doc(cfg(x, y))] //~ ERROR multiple `cfg` predicates
pub struct S {}
// We check it also fails on private items.
#[doc(cfg = "x")] //~ ERROR not followed by parentheses
#[doc(cfg(x, y))] //~ ERROR multiple `cfg` predicates
struct X {}
// We check it also fails on hidden items.
#[doc(cfg = "x")] //~ ERROR not followed by parentheses
#[doc(cfg(x, y))] //~ ERROR multiple `cfg` predicates
#[doc(hidden)]
pub struct Y {}
// We check it also fails on hidden AND private items.
#[doc(cfg = "x")] //~ ERROR not followed by parentheses
#[doc(cfg(x, y))] //~ ERROR multiple `cfg` predicates
#[doc(hidden)]
struct Z {}

View file

@ -10,5 +10,41 @@ error: multiple `cfg` predicates are specified
LL | #[doc(cfg(x, y))]
| ^
error: aborting due to 2 previous errors
error: `cfg` is not followed by parentheses
--> $DIR/invalid-cfg.rs:7:7
|
LL | #[doc(cfg = "x")]
| ^^^^^^^^^ help: expected syntax is: `cfg(/* predicate */)`
error: multiple `cfg` predicates are specified
--> $DIR/invalid-cfg.rs:8:14
|
LL | #[doc(cfg(x, y))]
| ^
error: `cfg` is not followed by parentheses
--> $DIR/invalid-cfg.rs:12:7
|
LL | #[doc(cfg = "x")]
| ^^^^^^^^^ help: expected syntax is: `cfg(/* predicate */)`
error: multiple `cfg` predicates are specified
--> $DIR/invalid-cfg.rs:13:14
|
LL | #[doc(cfg(x, y))]
| ^
error: `cfg` is not followed by parentheses
--> $DIR/invalid-cfg.rs:18:7
|
LL | #[doc(cfg = "x")]
| ^^^^^^^^^ help: expected syntax is: `cfg(/* predicate */)`
error: multiple `cfg` predicates are specified
--> $DIR/invalid-cfg.rs:19:14
|
LL | #[doc(cfg(x, y))]
| ^
error: aborting due to 8 previous errors

View file

@ -17,11 +17,11 @@ Default passes for rustdoc:
check_doc_test_visibility
check-doc-cfg
strip-aliased-non-local
propagate-doc-cfg
strip-hidden (when not --document-hidden-items)
strip-private (when not --document-private-items)
strip-priv-imports (when --document-private-items)
collect-intra-doc-links
propagate-doc-cfg
propagate-stability
run-lints