about summary refs log tree commit diff
path: root/clippy_lints/src/missing_doc.rs
diff options
context:
space:
mode:
authorflip1995 <philipp.krones@embecosm.com>2021-12-30 14:04:13 +0100
committerflip1995 <philipp.krones@embecosm.com>2021-12-30 14:17:53 +0100
commite45842e3602e806345b3355ed0955e604daef49c (patch)
treedb4d1481f0b49bae4bdeedea435b5cfc0ceb6e38 /clippy_lints/src/missing_doc.rs
parent01217f6f4c752700754e8e66eb02d763c4c55c72 (diff)
parentc1cd64b9c6b29ed2a577fc174a50c76267a966e2 (diff)
downloadrust-e45842e3602e806345b3355ed0955e604daef49c.tar.gz
rust-e45842e3602e806345b3355ed0955e604daef49c.zip
Merge remote-tracking branch 'upstream/master' into rustup
Diffstat (limited to 'clippy_lints/src/missing_doc.rs')
-rw-r--r--clippy_lints/src/missing_doc.rs21
1 files changed, 19 insertions, 2 deletions
diff --git a/clippy_lints/src/missing_doc.rs b/clippy_lints/src/missing_doc.rs
index fc0483a929a..db6aab0671b 100644
--- a/clippy_lints/src/missing_doc.rs
+++ b/clippy_lints/src/missing_doc.rs
@@ -7,7 +7,8 @@
 
 use clippy_utils::attrs::is_doc_hidden;
 use clippy_utils::diagnostics::span_lint;
-use rustc_ast::ast;
+use if_chain::if_chain;
+use rustc_ast::ast::{self, MetaItem, MetaItemKind};
 use rustc_hir as hir;
 use rustc_lint::{LateContext, LateLintPass, LintContext};
 use rustc_middle::ty;
@@ -57,6 +58,20 @@ impl MissingDoc {
         *self.doc_hidden_stack.last().expect("empty doc_hidden_stack")
     }
 
+    fn has_include(meta: Option<MetaItem>) -> bool {
+        if_chain! {
+            if let Some(meta) = meta;
+            if let MetaItemKind::List(list) = meta.kind;
+            if let Some(meta) = list.get(0);
+            if let Some(name) = meta.ident();
+            then {
+                name.name == sym::include
+            } else {
+                false
+            }
+        }
+    }
+
     fn check_missing_docs_attrs(
         &self,
         cx: &LateContext<'_>,
@@ -80,7 +95,9 @@ impl MissingDoc {
             return;
         }
 
-        let has_doc = attrs.iter().any(|a| a.doc_str().is_some());
+        let has_doc = attrs
+            .iter()
+            .any(|a| a.doc_str().is_some() || Self::has_include(a.meta()));
         if !has_doc {
             span_lint(
                 cx,