Skip to content

Commit 903293b

Browse files
committed
Auto merge of #13382 - c410-f3r:blah, r=y21
[`missing_panics_doc`] Fix #13381 Fix #13381 Makes `missing_panics_doc` act like other "panicking" lints (`unwrap_used`, `panic`, etc) in constant environments. changelog: Ignore `missing_panics_doc` in constant environments
2 parents 2536745 + 0905a77 commit 903293b

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

clippy_lints/src/panic_in_result_fn.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use clippy_utils::diagnostics::span_lint_and_then;
22
use clippy_utils::macros::root_macro_call_first_node;
3-
use clippy_utils::return_ty;
43
use clippy_utils::ty::is_type_diagnostic_item;
54
use clippy_utils::visitors::{for_each_expr, Descend};
5+
use clippy_utils::{is_inside_always_const_context, return_ty};
66
use core::ops::ControlFlow;
77
use rustc_hir as hir;
88
use rustc_hir::intravisit::FnKind;
@@ -68,10 +68,12 @@ fn lint_impl_body<'tcx>(cx: &LateContext<'tcx>, impl_span: Span, body: &'tcx hir
6868
let Some(macro_call) = root_macro_call_first_node(cx, e) else {
6969
return ControlFlow::Continue(Descend::Yes);
7070
};
71-
if matches!(
72-
cx.tcx.item_name(macro_call.def_id).as_str(),
73-
"panic" | "assert" | "assert_eq" | "assert_ne"
74-
) {
71+
if !is_inside_always_const_context(cx.tcx, e.hir_id)
72+
&& matches!(
73+
cx.tcx.item_name(macro_call.def_id).as_str(),
74+
"panic" | "assert" | "assert_eq" | "assert_ne"
75+
)
76+
{
7577
panics.push(macro_call.span);
7678
ControlFlow::Continue(Descend::No)
7779
} else {

tests/ui/panic_in_result_fn.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,15 @@ fn function_result_with_custom_todo() -> Result<bool, String> // should not emit
7171
Ok(true)
7272
}
7373

74+
fn issue_13381<const N: usize>() -> Result<(), String> {
75+
const {
76+
if N == 0 {
77+
panic!();
78+
}
79+
}
80+
Ok(())
81+
}
82+
7483
fn main() -> Result<(), String> {
7584
todo!("finish main method");
7685
Ok(())

0 commit comments

Comments
 (0)