Unnamed repository; edit this file 'description' to name the repository.
minor: nicer way to defeat disjoint closure captures
Thanks https://internals.rust-lang.org/t/feature-idea-edition-dependent-names-replacing-standard-library-items/15198/27?u=matklad!
| -rw-r--r-- | crates/rust-analyzer/src/dispatch.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/crates/rust-analyzer/src/dispatch.rs b/crates/rust-analyzer/src/dispatch.rs index 031c76c772..07ab46647f 100644 --- a/crates/rust-analyzer/src/dispatch.rs +++ b/crates/rust-analyzer/src/dispatch.rs @@ -33,8 +33,10 @@ impl<'a> RequestDispatcher<'a> { let global_state = panic::AssertUnwindSafe(&mut *self.global_state); let result = panic::catch_unwind(move || { - let _ = &global_state; - let panic::AssertUnwindSafe(global_state) = global_state; + // Make sure that the whole AssertUnwindSafe is moved into the + // closure, and not just its field. + let panic::AssertUnwindSafe(global_state) = { global_state }; + let _pctx = stdx::panic_context::enter(format!( "\nversion: {}\nrequest: {} {:#?}", env!("REV"), |