Skip to content

Commit ce7a3a4

Browse files
rustdoc book: talk about #![doc(test(...))] in doctests chapter
1 parent 5fbadfc commit ce7a3a4

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/doc/rustdoc/src/documentation-tests.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,17 +38,19 @@ function! Forcing you to write `main` for every example, no matter how small,
3838
adds friction. So `rustdoc` processes your examples slightly before
3939
running them. Here's the full algorithm rustdoc uses to preprocess examples:
4040

41-
1. Any leading `#![foo]` attributes are left intact as crate attributes.
42-
2. Some common `allow` attributes are inserted, including
41+
1. Some common `allow` attributes are inserted, including
4342
`unused_variables`, `unused_assignments`, `unused_mut`,
4443
`unused_attributes`, and `dead_code`. Small examples often trigger
4544
these lints.
46-
3. If the example does not contain `extern crate`, then `extern crate
45+
2. Any attributes specified with `#![doc(test(attr(...)))]` are added.
46+
3. Any leading `#![foo]` attributes are left intact as crate attributes.
47+
4. If the example does not contain `extern crate`, and
48+
`#![doc(test(no_crate_inject))]` was not specified, then `extern crate
4749
<mycrate>;` is inserted (note the lack of `#[macro_use]`).
48-
4. Finally, if the example does not contain `fn main`, the remainder of the
50+
5. Finally, if the example does not contain `fn main`, the remainder of the
4951
text is wrapped in `fn main() { your_code }`.
5052

51-
For more about that caveat in rule 3, see "Documeting Macros" below.
53+
For more about that caveat in rule 4, see "Documeting Macros" below.
5254

5355
## Hiding portions of the example
5456

@@ -261,4 +263,4 @@ are added.
261263
The `no_run` attribute will compile your code, but not run it. This is
262264
important for examples such as "Here's how to retrieve a web page,"
263265
which you would want to ensure compiles, but might be run in a test
264-
environment that has no network access.
266+
environment that has no network access.

0 commit comments

Comments
 (0)