Skip to content

Commit 20de50d

Browse files
committed
meow
1 parent c8d473f commit 20de50d

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

clippy_lints/src/thread_local_initializer_can_be_made_const.rs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
use clippy_config::msrvs::{self, Msrv};
22
use clippy_utils::diagnostics::span_lint_and_sugg;
3-
use clippy_utils::macros::{is_panic, macro_backtrace};
3+
use clippy_utils::macros::macro_backtrace;
44
use clippy_utils::qualify_min_const_fn::is_min_const_fn;
55
use clippy_utils::source::snippet;
66
use clippy_utils::{fn_has_unsatisfiable_preds, peel_blocks};
77
use rustc_errors::Applicability;
88
use rustc_hir::{intravisit, Expr, ExprKind};
99
use rustc_lint::{LateContext, LateLintPass};
1010
use rustc_session::impl_lint_pass;
11-
use rustc_span::sym::thread_local_macro;
11+
use rustc_span::sym::{self, thread_local_macro};
1212

1313
declare_clippy_lint! {
1414
/// ### What it does
@@ -71,16 +71,23 @@ fn is_thread_local_initializer(
7171
}
7272

7373
fn is_unreachable(cx: &LateContext<'_>, expr: &Expr<'_>) -> bool {
74-
let Some(macro_call) = macro_backtrace(expr.span).next() else {
75-
return false;
76-
};
77-
if is_panic(cx, macro_call.def_id) {
78-
return !cx.tcx.hir().is_inside_const_context(expr.hir_id);
74+
if let Some(macro_call) = macro_backtrace(expr.span).next()
75+
&& let Some(diag_name) = cx.tcx.get_diagnostic_name(macro_call.def_id)
76+
{
77+
return (matches!(
78+
diag_name,
79+
sym::core_panic_macro
80+
| sym::std_panic_macro
81+
| sym::core_panic_2015_macro
82+
| sym::std_panic_2015_macro
83+
| sym::core_panic_2021_macro
84+
) && !cx.tcx.hir().is_inside_const_context(expr.hir_id))
85+
|| matches!(
86+
diag_name,
87+
sym::unimplemented_macro | sym::todo_macro | sym::unreachable_macro | sym::unreachable_2015_macro
88+
);
7989
}
80-
matches!(
81-
cx.tcx.item_name(macro_call.def_id).as_str(),
82-
"todo" | "unimplemented" | "unreachable"
83-
)
90+
false
8491
}
8592

8693
#[inline]

0 commit comments

Comments
 (0)