summary refs log tree commit diff
path: root/library/proc_macro/src
diff options
context:
space:
mode:
authorBadel2 <2badel2@gmail.com>2022-01-07 17:04:33 +0100
committerBadel2 <2badel2@gmail.com>2022-01-08 00:57:59 +0100
commit8ef3ce866e2f20bdcc567e2f7012f81ce2e60298 (patch)
tree1764db087c7b3bb38aa060ba67b985d4ec63f975 /library/proc_macro/src
parent8bdf5c3de6c6e4e01f7f6241cd0f2a606c7486df (diff)
downloadrust-8ef3ce866e2f20bdcc567e2f7012f81ce2e60298.tar.gz
rust-8ef3ce866e2f20bdcc567e2f7012f81ce2e60298.zip
Change panic::update_hook to simplify usage
And to remove possibility of panics while changing the panic handler,
because that resulted in a double panic.
Diffstat (limited to 'library/proc_macro/src')
-rw-r--r--library/proc_macro/src/bridge/client.rs18
1 files changed, 8 insertions, 10 deletions
diff --git a/library/proc_macro/src/bridge/client.rs b/library/proc_macro/src/bridge/client.rs
index 5ff7bbf6f96..9e9750eb8de 100644
--- a/library/proc_macro/src/bridge/client.rs
+++ b/library/proc_macro/src/bridge/client.rs
@@ -310,16 +310,14 @@ impl Bridge<'_> {
         // NB. the server can't do this because it may use a different libstd.
         static HIDE_PANICS_DURING_EXPANSION: Once = Once::new();
         HIDE_PANICS_DURING_EXPANSION.call_once(|| {
-            panic::update_hook(|prev| {
-                Box::new(move |info| {
-                    let show = BridgeState::with(|state| match state {
-                        BridgeState::NotConnected => true,
-                        BridgeState::Connected(_) | BridgeState::InUse => force_show_panics,
-                    });
-                    if show {
-                        prev(info)
-                    }
-                })
+            panic::update_hook(move |prev, info| {
+                let show = BridgeState::with(|state| match state {
+                    BridgeState::NotConnected => true,
+                    BridgeState::Connected(_) | BridgeState::InUse => force_show_panics,
+                });
+                if show {
+                    prev(info)
+                }
             });
         });