Scope missing_docs_in_private_items to only private items
This commit is contained in:
parent
149392b0ba
commit
49a06ed66f
@ -8,10 +8,10 @@
|
||||
use clippy_utils::attrs::is_doc_hidden;
|
||||
use clippy_utils::diagnostics::span_lint;
|
||||
use clippy_utils::is_from_proc_macro;
|
||||
use hir::def_id::LocalDefId;
|
||||
use if_chain::if_chain;
|
||||
use rustc_ast::ast::{self, MetaItem, MetaItemKind};
|
||||
use rustc_hir as hir;
|
||||
use rustc_hir::def_id::LocalDefId;
|
||||
use rustc_lint::{LateContext, LateLintPass, LintContext};
|
||||
use rustc_middle::ty::{DefIdTree, Visibility};
|
||||
use rustc_session::{declare_tool_lint, impl_lint_pass};
|
||||
@ -21,8 +21,7 @@
|
||||
|
||||
declare_clippy_lint! {
|
||||
/// ### What it does
|
||||
/// Warns if there is missing doc for any documentable item
|
||||
/// (public or private).
|
||||
/// Warns if there is missing doc for any private documentable item
|
||||
///
|
||||
/// ### Why is this bad?
|
||||
/// Doc is good. *rustc* has a `MISSING_DOCS`
|
||||
@ -32,7 +31,7 @@
|
||||
#[clippy::version = "pre 1.29.0"]
|
||||
pub MISSING_DOCS_IN_PRIVATE_ITEMS,
|
||||
restriction,
|
||||
"detects missing documentation for public and private members"
|
||||
"detects missing documentation for private members"
|
||||
}
|
||||
|
||||
pub struct MissingDoc {
|
||||
@ -107,11 +106,14 @@ fn check_missing_docs_attrs(
|
||||
if vis == Visibility::Public || vis != Visibility::Restricted(CRATE_DEF_ID.into()) {
|
||||
return;
|
||||
}
|
||||
} else if def_id != CRATE_DEF_ID && cx.effective_visibilities.is_exported(def_id) {
|
||||
return;
|
||||
}
|
||||
|
||||
let has_doc = attrs
|
||||
.iter()
|
||||
.any(|a| a.doc_str().is_some() || Self::has_include(a.meta()));
|
||||
|
||||
if !has_doc {
|
||||
span_lint(
|
||||
cx,
|
||||
|
@ -6,30 +6,12 @@ LL | type Typedef = String;
|
||||
|
|
||||
= note: `-D clippy::missing-docs-in-private-items` implied by `-D warnings`
|
||||
|
||||
error: missing documentation for a type alias
|
||||
--> $DIR/missing_doc.rs:17:1
|
||||
|
|
||||
LL | pub type PubTypedef = String;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a module
|
||||
--> $DIR/missing_doc.rs:19:1
|
||||
|
|
||||
LL | mod module_no_dox {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a module
|
||||
--> $DIR/missing_doc.rs:20:1
|
||||
|
|
||||
LL | pub mod pub_module_no_dox {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a function
|
||||
--> $DIR/missing_doc.rs:24:1
|
||||
|
|
||||
LL | pub fn foo2() {}
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a function
|
||||
--> $DIR/missing_doc.rs:25:1
|
||||
|
|
||||
@ -69,50 +51,18 @@ error: missing documentation for a variant
|
||||
LL | BarB,
|
||||
| ^^^^
|
||||
|
||||
error: missing documentation for an enum
|
||||
--> $DIR/missing_doc.rs:44:1
|
||||
|
|
||||
LL | / pub enum PubBaz {
|
||||
LL | | PubBazA { a: isize },
|
||||
LL | | }
|
||||
| |_^
|
||||
|
||||
error: missing documentation for a variant
|
||||
--> $DIR/missing_doc.rs:45:5
|
||||
|
|
||||
LL | PubBazA { a: isize },
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a struct field
|
||||
--> $DIR/missing_doc.rs:45:15
|
||||
|
|
||||
LL | PubBazA { a: isize },
|
||||
| ^^^^^^^^
|
||||
|
||||
error: missing documentation for a constant
|
||||
--> $DIR/missing_doc.rs:65:1
|
||||
|
|
||||
LL | const FOO: u32 = 0;
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a constant
|
||||
--> $DIR/missing_doc.rs:72:1
|
||||
|
|
||||
LL | pub const FOO4: u32 = 0;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a static
|
||||
--> $DIR/missing_doc.rs:74:1
|
||||
|
|
||||
LL | static BAR: u32 = 0;
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a static
|
||||
--> $DIR/missing_doc.rs:81:1
|
||||
|
|
||||
LL | pub static BAR4: u32 = 0;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a module
|
||||
--> $DIR/missing_doc.rs:83:1
|
||||
|
|
||||
@ -125,35 +75,17 @@ LL | | }
|
||||
LL | | }
|
||||
| |_^
|
||||
|
||||
error: missing documentation for a function
|
||||
--> $DIR/missing_doc.rs:86:5
|
||||
|
|
||||
LL | pub fn undocumented1() {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a function
|
||||
--> $DIR/missing_doc.rs:87:5
|
||||
|
|
||||
LL | pub fn undocumented2() {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a function
|
||||
--> $DIR/missing_doc.rs:88:5
|
||||
|
|
||||
LL | fn undocumented3() {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a function
|
||||
--> $DIR/missing_doc.rs:93:9
|
||||
|
|
||||
LL | pub fn also_undocumented1() {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a function
|
||||
--> $DIR/missing_doc.rs:94:9
|
||||
|
|
||||
LL | fn also_undocumented2() {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 24 previous errors
|
||||
error: aborting due to 13 previous errors
|
||||
|
||||
|
@ -21,60 +21,12 @@ error: missing documentation for a struct field
|
||||
LL | b: isize,
|
||||
| ^^^^^^^^
|
||||
|
||||
error: missing documentation for a struct
|
||||
--> $DIR/missing_doc_impl.rs:18:1
|
||||
|
|
||||
LL | / pub struct PubFoo {
|
||||
LL | | pub a: isize,
|
||||
LL | | b: isize,
|
||||
LL | | }
|
||||
| |_^
|
||||
|
||||
error: missing documentation for a struct field
|
||||
--> $DIR/missing_doc_impl.rs:19:5
|
||||
|
|
||||
LL | pub a: isize,
|
||||
| ^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a struct field
|
||||
--> $DIR/missing_doc_impl.rs:20:5
|
||||
|
|
||||
LL | b: isize,
|
||||
| ^^^^^^^^
|
||||
|
||||
error: missing documentation for a trait
|
||||
--> $DIR/missing_doc_impl.rs:43:1
|
||||
|
|
||||
LL | / pub trait C {
|
||||
LL | | fn foo(&self);
|
||||
LL | | fn foo_with_impl(&self) {}
|
||||
LL | | }
|
||||
| |_^
|
||||
|
||||
error: missing documentation for a method
|
||||
--> $DIR/missing_doc_impl.rs:44:5
|
||||
|
|
||||
LL | fn foo(&self);
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for a method
|
||||
--> $DIR/missing_doc_impl.rs:45:5
|
||||
|
|
||||
LL | fn foo_with_impl(&self) {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for an associated type
|
||||
--> $DIR/missing_doc_impl.rs:55:5
|
||||
|
|
||||
LL | type AssociatedType;
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for an associated type
|
||||
--> $DIR/missing_doc_impl.rs:56:5
|
||||
|
|
||||
LL | type AssociatedTypeDef = Self;
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for an associated function
|
||||
--> $DIR/missing_doc_impl.rs:67:5
|
||||
|
|
||||
@ -89,12 +41,6 @@ error: missing documentation for an associated function
|
||||
LL | fn bar() {}
|
||||
| ^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for an associated function
|
||||
--> $DIR/missing_doc_impl.rs:74:5
|
||||
|
|
||||
LL | pub fn foo() {}
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
||||
error: missing documentation for an associated function
|
||||
--> $DIR/missing_doc_impl.rs:78:5
|
||||
|
|
||||
@ -103,5 +49,5 @@ LL | | 1
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
||||
error: aborting due to 15 previous errors
|
||||
error: aborting due to 7 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user