Unnamed repository; edit this file 'description' to name the repository.
Merge #10049
10049: minor: nicer way to defeat disjoint closure captures r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
bors[bot] 2021-08-27
parent 55d4813 · parent cb3d04c · commit 8f683e9
-rw-r--r--crates/rust-analyzer/src/dispatch.rs6
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"),