From 129d0cd0f465510cf4b8ee46ce3bdb51c5fa2286 Mon Sep 17 00:00:00 2001 From: Andre Bogus Date: Mon, 23 Dec 2019 13:11:20 +0100 Subject: [PATCH] Avoid needless_doctest_main on 'extern crate' --- clippy_lints/src/doc.rs | 4 +++- tests/ui/needless_doc_main.rs | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/clippy_lints/src/doc.rs b/clippy_lints/src/doc.rs index 327c18e855d..a997fd8b6b8 100644 --- a/clippy_lints/src/doc.rs +++ b/clippy_lints/src/doc.rs @@ -390,8 +390,10 @@ fn check_doc<'a, Events: Iterator, Range, text: &str, span: Span) { - if text.contains("fn main() {") && !(text.contains("static") || text.contains("fn main() {}")) { + if text.contains("fn main() {") && !LEAVE_MAIN_PATTERNS.iter().any(|p| text.contains(p)) { span_lint(cx, NEEDLESS_DOCTEST_MAIN, span, "needless `fn main` in doctest"); } } diff --git a/tests/ui/needless_doc_main.rs b/tests/ui/needless_doc_main.rs index d2a3857b554..813d2606153 100644 --- a/tests/ui/needless_doc_main.rs +++ b/tests/ui/needless_doc_main.rs @@ -25,6 +25,15 @@ fn bad_doctest() {} /// assert_eq!(42, ANSWER); /// } /// ``` +/// +/// Neither should this lint because of `extern crate`: +/// ``` +/// #![feature(test)] +/// extern crate test; +/// fn main() { +/// assert_eq(1u8, test::black_box(1)); +/// } +/// ``` fn no_false_positives() {} fn main() {