Skip to content

Commit

Permalink
Auto merge of rust-lang#13382 - c410-f3r:blah, r=y21
Browse files Browse the repository at this point in the history
[`missing_panics_doc`] Fix rust-lang#13381

Fix rust-lang#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
  • Loading branch information
bors committed Sep 17, 2024
2 parents 2536745 + 0905a77 commit 903293b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
12 changes: 7 additions & 5 deletions clippy_lints/src/panic_in_result_fn.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
use clippy_utils::diagnostics::span_lint_and_then;
use clippy_utils::macros::root_macro_call_first_node;
use clippy_utils::return_ty;
use clippy_utils::ty::is_type_diagnostic_item;
use clippy_utils::visitors::{for_each_expr, Descend};
use clippy_utils::{is_inside_always_const_context, return_ty};
use core::ops::ControlFlow;
use rustc_hir as hir;
use rustc_hir::intravisit::FnKind;
Expand Down Expand Up @@ -68,10 +68,12 @@ fn lint_impl_body<'tcx>(cx: &LateContext<'tcx>, impl_span: Span, body: &'tcx hir
let Some(macro_call) = root_macro_call_first_node(cx, e) else {
return ControlFlow::Continue(Descend::Yes);
};
if matches!(
cx.tcx.item_name(macro_call.def_id).as_str(),
"panic" | "assert" | "assert_eq" | "assert_ne"
) {
if !is_inside_always_const_context(cx.tcx, e.hir_id)
&& matches!(
cx.tcx.item_name(macro_call.def_id).as_str(),
"panic" | "assert" | "assert_eq" | "assert_ne"
)
{
panics.push(macro_call.span);
ControlFlow::Continue(Descend::No)
} else {
Expand Down
9 changes: 9 additions & 0 deletions tests/ui/panic_in_result_fn.rs
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,15 @@ fn function_result_with_custom_todo() -> Result<bool, String> // should not emit
Ok(true)
}

fn issue_13381<const N: usize>() -> Result<(), String> {
const {
if N == 0 {
panic!();
}
}
Ok(())
}

fn main() -> Result<(), String> {
todo!("finish main method");
Ok(())
Expand Down

0 comments on commit 903293b

Please sign in to comment.