Skip to content

Commit 036e538

Browse files
committed
Call the panic hook for non-unwind panics in proc-macros
1 parent aa6a697 commit 036e538

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

library/proc_macro/src/bridge/client.rs

+5-1
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,11 @@ fn maybe_install_panic_hook(force_show_panics: bool) {
283283
HIDE_PANICS_DURING_EXPANSION.call_once(|| {
284284
let prev = panic::take_hook();
285285
panic::set_hook(Box::new(move |info| {
286-
if force_show_panics || !is_available() {
286+
// We normally report panics by catching unwinds and passing the payload from the
287+
// unwind back to the compiler, but if the panic doesn't unwind we'll abort before
288+
// the compiler has a chance to print an error. So we special-case PanicInfo where
289+
// can_unwind is false.
290+
if force_show_panics || !is_available() || !info.can_unwind() {
287291
prev(info)
288292
}
289293
}));

0 commit comments

Comments
 (0)