@@ -38,17 +38,19 @@ function! Forcing you to write `main` for every example, no matter how small,
3838adds friction. So ` rustdoc ` processes your examples slightly before
3939running 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.
261263The ` no_run ` attribute will compile your code, but not run it. This is
262264important for examples such as "Here's how to retrieve a web page,"
263265which 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