diff options
| author | Roman <romaaan.git@gmail.com> | 2020-09-01 14:19:24 +0200 |
|---|---|---|
| committer | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2020-10-12 13:46:37 +0200 |
| commit | 02e6b861eb04737915636a63eec00ef126f59dd5 (patch) | |
| tree | 36e387b48a4e533f3976d591d4bd8b30ba3ddef4 /src/librustdoc | |
| parent | 0e022fc2b8eecbc16c090a99efbbd262c37ec962 (diff) | |
| download | rust-02e6b861eb04737915636a63eec00ef126f59dd5.tar.gz rust-02e6b861eb04737915636a63eec00ef126f59dd5.zip | |
rustdoc: skip allow missing doc in cover. report
During the document coverage reporting with ```bash rustdoc something.rs -Z unstable-options --show-coverage ``` the coverage report also includes parts of the code that are marked with `#[allow(missing_docs)]`, which outputs lower numbers in the coverage report even though these parts should be ignored for the calculation. Co-authored-by: Joshua Nelson <joshua@yottadb.com>
Diffstat (limited to 'src/librustdoc')
| -rw-r--r-- | src/librustdoc/passes/calculate_doc_coverage.rs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/librustdoc/passes/calculate_doc_coverage.rs b/src/librustdoc/passes/calculate_doc_coverage.rs index 4bca3996eb4..30dd8def70e 100644 --- a/src/librustdoc/passes/calculate_doc_coverage.rs +++ b/src/librustdoc/passes/calculate_doc_coverage.rs @@ -5,7 +5,7 @@ use crate::fold::{self, DocFolder}; use crate::html::markdown::{find_testable_code, ErrorCodes}; use crate::passes::doc_test_lints::{should_have_doc_example, Tests}; use crate::passes::Pass; -use rustc_span::symbol::sym; +use rustc_span::symbol::{sym, Ident}; use rustc_span::FileName; use serde::Serialize; @@ -41,8 +41,11 @@ impl ItemCount { has_docs: bool, has_doc_example: bool, should_have_doc_examples: bool, + should_have_docs: bool, ) { - self.total += 1; + if has_docs || should_have_docs { + self.total += 1; + } if has_docs { self.with_docs += 1; @@ -229,6 +232,15 @@ impl fold::DocFolder for CoverageCalculator { } _ => { let has_docs = !i.attrs.doc_strings.is_empty(); + let should_have_docs = !i.attrs.other_attrs.iter().any(|a| { + a.has_name(sym::allow) + && a.meta_item_list().iter().any(|meta_list_item| { + meta_list_item.iter().any(|li| match li.ident() { + Some(ident) => ident == Ident::from_str("missing_docs"), + _ => false, + }) + }) + }); let mut tests = Tests { found_tests: 0 }; find_testable_code( @@ -250,7 +262,12 @@ impl fold::DocFolder for CoverageCalculator { has_docs, has_doc_example, should_have_doc_example(&i.inner), + should_have_docs, ); + + if !should_have_docs { + return Some(i); + } } } |
