File tree Expand file tree Collapse file tree 3 files changed +16
-8
lines changed Expand file tree Collapse file tree 3 files changed +16
-8
lines changed Original file line number Diff line number Diff line change @@ -337,15 +337,23 @@ pub fn make_test(s: &str,
337
337
338
338
let mut prog = String :: new ( ) ;
339
339
340
- // First push any outer attributes from the example, assuming they
341
- // are intended to be crate attributes.
342
- prog. push_str ( & crate_attrs) ;
340
+ if opts. attrs . is_empty ( ) {
341
+ // If there aren't any attributes supplied by #![doc(test(attr(...)))], then allow some
342
+ // lints that are commonly triggered in doctests. The crate-level test attributes are
343
+ // commonly used to make tests fail in case they trigger warnings, so having this there in
344
+ // that case may cause some tests to pass when they shouldn't have.
345
+ prog. push_str ( "#![allow(unused)]\n " ) ;
346
+ }
343
347
344
- // Next, any attributes for other aspects such as lints .
348
+ // Next, any attributes that came from the crate root via #![doc(test(attr(...)))] .
345
349
for attr in & opts. attrs {
346
350
prog. push_str ( & format ! ( "#![{}]\n " , attr) ) ;
347
351
}
348
352
353
+ // Now push any outer attributes from the example, assuming they
354
+ // are intended to be crate attributes.
355
+ prog. push_str ( & crate_attrs) ;
356
+
349
357
// Don't inject `extern crate std` because it's already injected by the
350
358
// compiler.
351
359
if !s. contains ( "extern crate" ) && !opts. no_crate_inject && cratename != Some ( "std" ) {
Original file line number Diff line number Diff line change 21
21
pub fn dummy ( ) { }
22
22
23
23
// ensure that `extern crate foo;` was inserted into code snips automatically:
24
- // @matches foo/index.html '//a[@class="test-arrow"][@href="https://example.com/?code=extern %20crate%20foo%3B%0Afn%20main()%20%7B%0Ause%20foo%3A%3Adummy%3B%0Adummy()%3B%0A%7D"]' "Run"
24
+ // @matches foo/index.html '//a[@class="test-arrow"][@href="https://example.com/?code=%23!%5Ballow(unused)%5D%0Aextern %20crate%20foo%3B%0Afn%20main()%20%7B%0Ause%20foo%3A%3Adummy%3B%0Adummy()%3B%0A%7D"]' "Run"
Original file line number Diff line number Diff line change 34
34
//! }
35
35
//! ```
36
36
37
- // @matches foo/index.html '//a[@class="test-arrow"][@href="https://www.example.com/?code=fn %20main()%20%7B%0A%20%20%20%20println!(%22Hello%2C%20world!%22)%3B%0A%7D%0A"]' "Run"
38
- // @matches foo/index.html '//a[@class="test-arrow"][@href="https://www.example.com/?code=fn %20main()%20%7B%0Aprintln!(%22Hello%2C%20world!%22)%3B%0A%7D"]' "Run"
39
- // @matches foo/index.html '//a[@class="test-arrow"][@href="https://www.example.com/?code=%23!%5Bfeature(something)%5D%0A%0Afn%20main()%20%7B%0A%20%20%20%20println!(%22Hello%2C%20world!%22)%3B%0A%7D%0A&version=nightly"]' "Run"
37
+ // @matches foo/index.html '//a[@class="test-arrow"][@href="https://www.example.com/?code=%23!%5Ballow(unused)%5D%0Afn %20main()%20%7B%0A%20%20%20%20println!(%22Hello%2C%20world!%22)%3B%0A%7D%0A"]' "Run"
38
+ // @matches foo/index.html '//a[@class="test-arrow"][@href="https://www.example.com/?code=%23!%5Ballow(unused)%5D%0Afn %20main()%20%7B%0Aprintln!(%22Hello%2C%20world!%22)%3B%0A%7D"]' "Run"
39
+ // @matches foo/index.html '//a[@class="test-arrow"][@href="https://www.example.com/?code=%23!%5Ballow(unused)%5D%0A%23!% 5Bfeature(something)%5D%0A%0Afn%20main()%20%7B%0A%20%20%20%20println!(%22Hello%2C%20world!%22)%3B%0A%7D%0A&version=nightly"]' "Run"
You can’t perform that action at this time.
0 commit comments