aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_db/src/lib.rs
diff options
context:
space:
mode:
authorarsdragonfly <[email protected]>2019-09-27 21:17:23 +0100
committerarsdragonfly <[email protected]>2019-09-27 21:17:23 +0100
commit84340db87aed477f61bf46ba5e4a75f3eb672237 (patch)
treeaf7fe4eb8045ccb1b73bcdcd80b3a729062bd308 /crates/ra_db/src/lib.rs
parentd1988a17f4ceb90bcdaed79072c4b7f647c86854 (diff)
parent21fa889cf3f70c507e3b9f2f6362e65cbb8ed955 (diff)
Merge branch 'master' of https://github.com/rust-analyzer/rust-analyzer
Diffstat (limited to 'crates/ra_db/src/lib.rs')
-rw-r--r--crates/ra_db/src/lib.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/crates/ra_db/src/lib.rs b/crates/ra_db/src/lib.rs
index c54791b7a..603daed37 100644
--- a/crates/ra_db/src/lib.rs
+++ b/crates/ra_db/src/lib.rs
@@ -32,11 +32,10 @@ pub trait CheckCanceled {
32 32
33 fn catch_canceled<F, T>(&self, f: F) -> Result<T, Canceled> 33 fn catch_canceled<F, T>(&self, f: F) -> Result<T, Canceled>
34 where 34 where
35 Self: Sized, 35 Self: Sized + panic::RefUnwindSafe,
36 F: FnOnce(&Self) -> T + panic::UnwindSafe, 36 F: FnOnce(&Self) -> T + panic::UnwindSafe,
37 { 37 {
38 let this = panic::AssertUnwindSafe(self); 38 panic::catch_unwind(|| f(self)).map_err(|err| match err.downcast::<Canceled>() {
39 panic::catch_unwind(|| f(*this)).map_err(|err| match err.downcast::<Canceled>() {
40 Ok(canceled) => *canceled, 39 Ok(canceled) => *canceled,
41 Err(payload) => panic::resume_unwind(payload), 40 Err(payload) => panic::resume_unwind(payload),
42 }) 41 })