forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#61351 - GuillaumeGomez:stabilize-cfg-rustdo…
…c, r=QuietMisdreavus Stabilize cfg(doc) cc rust-lang#43781.
- Loading branch information
Showing
9 changed files
with
51 additions
and
19 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
# Advanced Features | ||
|
||
The features listed on this page fall outside the rest of the main categories. | ||
|
||
## `#[cfg(doc)]`: Documenting platform-/feature-specific information | ||
|
||
For conditional compilation, Rustdoc treats your crate the same way the compiler does: Only things | ||
from the host target are available (or from the given `--target` if present), and everything else is | ||
"filtered out" from the crate. This can cause problems if your crate is providing different things | ||
on different targets and you want your documentation to reflect all the available items you | ||
provide. | ||
|
||
If you want to make sure an item is seen by Rustdoc regardless of what platform it's targeting, | ||
you can apply `#[cfg(doc)]` to it. Rustdoc sets this whenever it's building documentation, so | ||
anything that uses that flag will make it into documentation it generates. To apply this to an item | ||
with other `#[cfg]` filters on it, you can write something like `#[cfg(any(windows, doc))]`. | ||
This will preserve the item either when built normally on Windows, or when being documented | ||
anywhere. | ||
|
||
Please note that this feature is not passed to doctests. | ||
|
||
Example: | ||
|
||
```rust | ||
/// Token struct that can only be used on Windows. | ||
#[cfg(any(windows, doc))] | ||
pub struct WindowsToken; | ||
/// Token struct that can only be used on Unix. | ||
#[cfg(any(unix, doc))] | ||
pub struct UnixToken; | ||
``` | ||
|
||
Here, the respective tokens can only be used by dependent crates on their respective platforms, but | ||
they will both appear in documentation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#[cfg(doc)] | ||
pub struct Foo; | ||
|
||
fn main() { | ||
let f = Foo; //~ ERROR | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
error[E0425]: cannot find value `Foo` in this scope | ||
--> $DIR/cfg-rustdoc.rs:5:13 | ||
| | ||
LL | let f = Foo; | ||
| ^^^ not found in this scope | ||
|
||
error: aborting due to previous error | ||
|
||
For more information about this error, try `rustc --explain E0425`. |
4 changes: 0 additions & 4 deletions
4
src/test/ui/feature-gates/feature-gate-doc_cfg-cfg-rustdoc.rs
This file was deleted.
Oops, something went wrong.
12 changes: 0 additions & 12 deletions
12
src/test/ui/feature-gates/feature-gate-doc_cfg-cfg-rustdoc.stderr
This file was deleted.
Oops, something went wrong.