diff options
| author | Badel2 <2badel2@gmail.com> | 2022-01-05 22:42:21 +0100 |
|---|---|---|
| committer | Badel2 <2badel2@gmail.com> | 2022-01-07 17:28:20 +0100 |
| commit | 8bdf5c3de6c6e4e01f7f6241cd0f2a606c7486df (patch) | |
| tree | 795cf4e3727479f3f82c0ee6eba205b91d9fee6d /library/proc_macro/src | |
| parent | e012a191d768adeda1ee36a99ef8b92d51920154 (diff) | |
| download | rust-8bdf5c3de6c6e4e01f7f6241cd0f2a606c7486df.tar.gz rust-8bdf5c3de6c6e4e01f7f6241cd0f2a606c7486df.zip | |
Implement panic::update_hook
Diffstat (limited to 'library/proc_macro/src')
| -rw-r--r-- | library/proc_macro/src/bridge/client.rs | 21 | ||||
| -rw-r--r-- | library/proc_macro/src/lib.rs | 1 |
2 files changed, 12 insertions, 10 deletions
diff --git a/library/proc_macro/src/bridge/client.rs b/library/proc_macro/src/bridge/client.rs index 83a2ac6f0d4..5ff7bbf6f96 100644 --- a/library/proc_macro/src/bridge/client.rs +++ b/library/proc_macro/src/bridge/client.rs @@ -310,16 +310,17 @@ 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(|| { - let prev = panic::take_hook(); - panic::set_hook(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(|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) + } + }) + }); }); BRIDGE_STATE.with(|state| state.set(BridgeState::Connected(self), f)) diff --git a/library/proc_macro/src/lib.rs b/library/proc_macro/src/lib.rs index 69af598f91e..c5afca6d56a 100644 --- a/library/proc_macro/src/lib.rs +++ b/library/proc_macro/src/lib.rs @@ -30,6 +30,7 @@ #![feature(restricted_std)] #![feature(rustc_attrs)] #![feature(min_specialization)] +#![feature(panic_update_hook)] #![recursion_limit = "256"] #[unstable(feature = "proc_macro_internals", issue = "27812")] |
