diff options
| author | Kisaragi Marine <kisaragi.effective@gmail.com> | 2023-06-14 12:23:02 +0900 |
|---|---|---|
| committer | Kisaragi Marine <kisaragi.effective@gmail.com> | 2023-06-14 12:31:49 +0900 |
| commit | 062b2099044ed1d65f6100d0d0ca8cd76102246e (patch) | |
| tree | e80334ca3eb9bf2768ee1ff530df8546376f0b6f | |
| parent | eefc2a0ac4e72d5532f9e0d9bd76971bdac3f597 (diff) | |
| download | rust-062b2099044ed1d65f6100d0d0ca8cd76102246e.tar.gz rust-062b2099044ed1d65f6100d0d0ca8cd76102246e.zip | |
Ignore `main()` in `no_test` code fences
| -rw-r--r-- | clippy_lints/src/doc.rs | 5 | ||||
| -rw-r--r-- | tests/ui/doc/needless_doctest_main.rs | 19 |
2 files changed, 23 insertions, 1 deletions
diff --git a/clippy_lints/src/doc.rs b/clippy_lints/src/doc.rs index 384aca7fead..0617c3ea5e9 100644 --- a/clippy_lints/src/doc.rs +++ b/clippy_lints/src/doc.rs @@ -571,6 +571,7 @@ fn check_doc<'a, Events: Iterator<Item = (pulldown_cmark::Event<'a>, Range<usize let mut in_link = None; let mut in_heading = false; let mut is_rust = false; + let mut no_test = false; let mut edition = None; let mut ticks_unbalanced = false; let mut text_to_check: Vec<(CowStr<'_>, Span)> = Vec::new(); @@ -584,6 +585,8 @@ fn check_doc<'a, Events: Iterator<Item = (pulldown_cmark::Event<'a>, Range<usize if item == "ignore" { is_rust = false; break; + } else if item == "no_test" { + no_test = true; } if let Some(stripped) = item.strip_prefix("edition") { is_rust = true; @@ -648,7 +651,7 @@ fn check_doc<'a, Events: Iterator<Item = (pulldown_cmark::Event<'a>, Range<usize headers.errors |= in_heading && trimmed_text == "Errors"; headers.panics |= in_heading && trimmed_text == "Panics"; if in_code { - if is_rust { + if is_rust && !no_test { let edition = edition.unwrap_or_else(|| cx.tcx.sess.edition()); check_code(cx, &text, edition, span); } diff --git a/tests/ui/doc/needless_doctest_main.rs b/tests/ui/doc/needless_doctest_main.rs new file mode 100644 index 00000000000..fb32aac9449 --- /dev/null +++ b/tests/ui/doc/needless_doctest_main.rs @@ -0,0 +1,19 @@ +#![warn(clippy::needless_doctest_main)] +//! issue 10491: +//! ```rust,no_test +//! use std::collections::HashMap; +//! +//! fn main() { +//! let mut m = HashMap::new(); +//! m.insert(1u32, 2u32); +//! } +//! ``` +//! + +/// some description here +/// ```rust,no_test +/// fn main() { +/// foo() +/// } +/// ``` +fn foo() {} |
