mirror of
https://github.com/rust-lang/rust-clippy
synced 2025-02-16 05:58:41 +00:00
Auto merge of #6996 - Y-Nak:missing_panics_doc, r=Manishearth
Allow missing panics doc if the panics occur only when debug-assertions is specified fixes #6970 changelog: `missing_panics_doc`: Allow missing panics doc if the panics occur only when `debug-assertions` is specified.
This commit is contained in:
commit
0e06b3c5f3
3 changed files with 24 additions and 10 deletions
|
@ -715,6 +715,7 @@ impl<'a, 'tcx> Visitor<'tcx> for FindPanicUnwrap<'a, 'tcx> {
|
||||||
if let Some(path_def_id) = path.res.opt_def_id();
|
if let Some(path_def_id) = path.res.opt_def_id();
|
||||||
if match_panic_def_id(self.cx, path_def_id);
|
if match_panic_def_id(self.cx, path_def_id);
|
||||||
if is_expn_of(expr.span, "unreachable").is_none();
|
if is_expn_of(expr.span, "unreachable").is_none();
|
||||||
|
if !is_expn_of_debug_assertions(expr.span);
|
||||||
then {
|
then {
|
||||||
self.panic_span = Some(expr.span);
|
self.panic_span = Some(expr.span);
|
||||||
}
|
}
|
||||||
|
@ -738,3 +739,8 @@ impl<'a, 'tcx> Visitor<'tcx> for FindPanicUnwrap<'a, 'tcx> {
|
||||||
NestedVisitorMap::OnlyBodies(self.cx.tcx.hir())
|
NestedVisitorMap::OnlyBodies(self.cx.tcx.hir())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn is_expn_of_debug_assertions(span: Span) -> bool {
|
||||||
|
const MACRO_NAMES: &[&str] = &["debug_assert", "debug_assert_eq", "debug_assert_ne"];
|
||||||
|
MACRO_NAMES.iter().any(|name| is_expn_of(span, name).is_some())
|
||||||
|
}
|
||||||
|
|
|
@ -112,3 +112,11 @@ fn inner_body_private(opt: Option<u32>) {
|
||||||
pub fn unreachable() {
|
pub fn unreachable() {
|
||||||
unreachable!("This function panics")
|
unreachable!("This function panics")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// #6970.
|
||||||
|
/// This is okay because it is expansion of `debug_assert` family.
|
||||||
|
pub fn debug_assertions() {
|
||||||
|
debug_assert!(false);
|
||||||
|
debug_assert_eq!(1, 2);
|
||||||
|
debug_assert_ne!(1, 2);
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
error: docs for function which may panic missing `# Panics` section
|
error: docs for function which may panic missing `# Panics` section
|
||||||
--> $DIR/doc_panics.rs:7:1
|
--> $DIR/missing_panics_doc.rs:7:1
|
||||||
|
|
|
|
||||||
LL | / pub fn unwrap() {
|
LL | / pub fn unwrap() {
|
||||||
LL | | let result = Err("Hi");
|
LL | | let result = Err("Hi");
|
||||||
|
@ -9,13 +9,13 @@ LL | | }
|
||||||
|
|
|
|
||||||
= note: `-D clippy::missing-panics-doc` implied by `-D warnings`
|
= note: `-D clippy::missing-panics-doc` implied by `-D warnings`
|
||||||
note: first possible panic found here
|
note: first possible panic found here
|
||||||
--> $DIR/doc_panics.rs:9:5
|
--> $DIR/missing_panics_doc.rs:9:5
|
||||||
|
|
|
|
||||||
LL | result.unwrap()
|
LL | result.unwrap()
|
||||||
| ^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
error: docs for function which may panic missing `# Panics` section
|
error: docs for function which may panic missing `# Panics` section
|
||||||
--> $DIR/doc_panics.rs:13:1
|
--> $DIR/missing_panics_doc.rs:13:1
|
||||||
|
|
|
|
||||||
LL | / pub fn panic() {
|
LL | / pub fn panic() {
|
||||||
LL | | panic!("This function panics")
|
LL | | panic!("This function panics")
|
||||||
|
@ -23,14 +23,14 @@ LL | | }
|
||||||
| |_^
|
| |_^
|
||||||
|
|
|
|
||||||
note: first possible panic found here
|
note: first possible panic found here
|
||||||
--> $DIR/doc_panics.rs:14:5
|
--> $DIR/missing_panics_doc.rs:14:5
|
||||||
|
|
|
|
||||||
LL | panic!("This function panics")
|
LL | panic!("This function panics")
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
|
||||||
error: docs for function which may panic missing `# Panics` section
|
error: docs for function which may panic missing `# Panics` section
|
||||||
--> $DIR/doc_panics.rs:18:1
|
--> $DIR/missing_panics_doc.rs:18:1
|
||||||
|
|
|
|
||||||
LL | / pub fn todo() {
|
LL | / pub fn todo() {
|
||||||
LL | | todo!()
|
LL | | todo!()
|
||||||
|
@ -38,14 +38,14 @@ LL | | }
|
||||||
| |_^
|
| |_^
|
||||||
|
|
|
|
||||||
note: first possible panic found here
|
note: first possible panic found here
|
||||||
--> $DIR/doc_panics.rs:19:5
|
--> $DIR/missing_panics_doc.rs:19:5
|
||||||
|
|
|
|
||||||
LL | todo!()
|
LL | todo!()
|
||||||
| ^^^^^^^
|
| ^^^^^^^
|
||||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
|
||||||
error: docs for function which may panic missing `# Panics` section
|
error: docs for function which may panic missing `# Panics` section
|
||||||
--> $DIR/doc_panics.rs:23:1
|
--> $DIR/missing_panics_doc.rs:23:1
|
||||||
|
|
|
|
||||||
LL | / pub fn inner_body(opt: Option<u32>) {
|
LL | / pub fn inner_body(opt: Option<u32>) {
|
||||||
LL | | opt.map(|x| {
|
LL | | opt.map(|x| {
|
||||||
|
@ -57,14 +57,14 @@ LL | | }
|
||||||
| |_^
|
| |_^
|
||||||
|
|
|
|
||||||
note: first possible panic found here
|
note: first possible panic found here
|
||||||
--> $DIR/doc_panics.rs:26:13
|
--> $DIR/missing_panics_doc.rs:26:13
|
||||||
|
|
|
|
||||||
LL | panic!()
|
LL | panic!()
|
||||||
| ^^^^^^^^
|
| ^^^^^^^^
|
||||||
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
|
||||||
error: docs for function which may panic missing `# Panics` section
|
error: docs for function which may panic missing `# Panics` section
|
||||||
--> $DIR/doc_panics.rs:32:1
|
--> $DIR/missing_panics_doc.rs:32:1
|
||||||
|
|
|
|
||||||
LL | / pub fn unreachable_and_panic() {
|
LL | / pub fn unreachable_and_panic() {
|
||||||
LL | | if true { unreachable!() } else { panic!() }
|
LL | | if true { unreachable!() } else { panic!() }
|
||||||
|
@ -72,7 +72,7 @@ LL | | }
|
||||||
| |_^
|
| |_^
|
||||||
|
|
|
|
||||||
note: first possible panic found here
|
note: first possible panic found here
|
||||||
--> $DIR/doc_panics.rs:33:39
|
--> $DIR/missing_panics_doc.rs:33:39
|
||||||
|
|
|
|
||||||
LL | if true { unreachable!() } else { panic!() }
|
LL | if true { unreachable!() } else { panic!() }
|
||||||
| ^^^^^^^^
|
| ^^^^^^^^
|
Loading…
Add table
Reference in a new issue