diff --git a/clippy_lints/src/panic_unimplemented.rs b/clippy_lints/src/panic_unimplemented.rs index 1a680e7607e0b..dc28874c16e67 100644 --- a/clippy_lints/src/panic_unimplemented.rs +++ b/clippy_lints/src/panic_unimplemented.rs @@ -74,7 +74,9 @@ declare_lint_pass!(PanicUnimplemented => [UNIMPLEMENTED, UNREACHABLE, TODO, PANI impl<'tcx> LateLintPass<'tcx> for PanicUnimplemented { fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) { - if match_panic_call(cx, expr).is_some() && is_expn_of(expr.span, "debug_assert").is_none() { + if match_panic_call(cx, expr).is_some() + && (is_expn_of(expr.span, "debug_assert").is_none() && is_expn_of(expr.span, "assert").is_none()) + { let span = get_outer_span(expr); if is_expn_of(expr.span, "unimplemented").is_some() { span_lint( diff --git a/tests/ui/panicking_macros.rs b/tests/ui/panicking_macros.rs index 93b236f7473d5..7338064646244 100644 --- a/tests/ui/panicking_macros.rs +++ b/tests/ui/panicking_macros.rs @@ -43,6 +43,18 @@ fn core_versions() { unreachable!(); } +fn assert() { + assert!(true); + assert_eq!(true, true); + assert_ne!(true, false); +} + +fn assert_msg() { + assert!(true, "this should not panic"); + assert_eq!(true, true, "this should not panic"); + assert_ne!(true, false, "this should not panic"); +} + fn debug_assert() { debug_assert!(true); debug_assert_eq!(true, true); @@ -61,4 +73,8 @@ fn main() { unimplemented(); unreachable(); core_versions(); + assert(); + assert_msg(); + debug_assert(); + debug_assert_msg(); }