diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-10 12:51:58 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-10 12:51:58 +0000 |
commit | aef93c918e2b6e0b8826e970b00c46f8a5c3aaa9 (patch) | |
tree | 0c264c806bb6fabbc31bb785f7ba2b8f16a3b7aa /crates/ra_db/src/loc2id.rs | |
parent | 9225033cdf16fd9f3f38b3d3482efb0c36698085 (diff) | |
parent | 495a7ea9f78209435579453b83726e50f339e50e (diff) |
Merge #478
478: WIP: implement cancelation via unwinding r=matklad a=matklad
This uses https://github.com/salsa-rs/salsa/pull/107 to implement cancellation.
Now we can get rid of `Cancelable` wrapper from everywhere except the top-level analyzer library.
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_db/src/loc2id.rs')
-rw-r--r-- | crates/ra_db/src/loc2id.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/ra_db/src/loc2id.rs b/crates/ra_db/src/loc2id.rs index 254c52629..359cd893d 100644 --- a/crates/ra_db/src/loc2id.rs +++ b/crates/ra_db/src/loc2id.rs | |||
@@ -1,4 +1,4 @@ | |||
1 | use std::hash::Hash; | 1 | use std::{panic, hash::Hash}; |
2 | 2 | ||
3 | use parking_lot::Mutex; | 3 | use parking_lot::Mutex; |
4 | use rustc_hash::FxHashMap; | 4 | use rustc_hash::FxHashMap; |
@@ -70,6 +70,15 @@ where | |||
70 | map: Mutex<Loc2IdMap<LOC, ID>>, | 70 | map: Mutex<Loc2IdMap<LOC, ID>>, |
71 | } | 71 | } |
72 | 72 | ||
73 | impl<LOC, ID> panic::RefUnwindSafe for LocationIntener<LOC, ID> | ||
74 | where | ||
75 | ID: ArenaId + Clone, | ||
76 | LOC: Clone + Eq + Hash, | ||
77 | ID: panic::RefUnwindSafe, | ||
78 | LOC: panic::RefUnwindSafe, | ||
79 | { | ||
80 | } | ||
81 | |||
73 | impl<LOC, ID> Default for LocationIntener<LOC, ID> | 82 | impl<LOC, ID> Default for LocationIntener<LOC, ID> |
74 | where | 83 | where |
75 | ID: ArenaId + Clone, | 84 | ID: ArenaId + Clone, |