diff options
Diffstat (limited to 'crates/ra_hir/src/mock.rs')
-rw-r--r-- | crates/ra_hir/src/mock.rs | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/crates/ra_hir/src/mock.rs b/crates/ra_hir/src/mock.rs index 2bba11e42..7da15eca0 100644 --- a/crates/ra_hir/src/mock.rs +++ b/crates/ra_hir/src/mock.rs | |||
@@ -2,8 +2,7 @@ use std::{sync::Arc, panic}; | |||
2 | 2 | ||
3 | use parking_lot::Mutex; | 3 | use parking_lot::Mutex; |
4 | use ra_db::{ | 4 | use ra_db::{ |
5 | mock::FileMap, CheckCanceled, CrateGraph, FileId, FilePosition, SourceDatabase, | 5 | CheckCanceled, FilePosition, FileId, CrateGraph, SourceRoot, SourceRootId, SourceDatabase, salsa, |
6 | SourceRoot, SourceRootId, salsa | ||
7 | }; | 6 | }; |
8 | use relative_path::RelativePathBuf; | 7 | use relative_path::RelativePathBuf; |
9 | use test_utils::{parse_fixture, CURSOR_MARKER, extract_offset}; | 8 | use test_utils::{parse_fixture, CURSOR_MARKER, extract_offset}; |
@@ -18,7 +17,7 @@ pub(crate) struct MockDatabase { | |||
18 | events: Mutex<Option<Vec<salsa::Event<MockDatabase>>>>, | 17 | events: Mutex<Option<Vec<salsa::Event<MockDatabase>>>>, |
19 | runtime: salsa::Runtime<MockDatabase>, | 18 | runtime: salsa::Runtime<MockDatabase>, |
20 | interner: Arc<HirInterner>, | 19 | interner: Arc<HirInterner>, |
21 | file_map: Arc<FileMap>, | 20 | file_counter: u32, |
22 | } | 21 | } |
23 | 22 | ||
24 | impl panic::RefUnwindSafe for MockDatabase {} | 23 | impl panic::RefUnwindSafe for MockDatabase {} |
@@ -44,10 +43,6 @@ impl MockDatabase { | |||
44 | (db, position) | 43 | (db, position) |
45 | } | 44 | } |
46 | 45 | ||
47 | pub(crate) fn file_id(&self, file: &str) -> FileId { | ||
48 | self.file_map.file_id(file) | ||
49 | } | ||
50 | |||
51 | fn from_fixture(fixture: &str) -> (MockDatabase, SourceRoot, Option<FilePosition>) { | 46 | fn from_fixture(fixture: &str) -> (MockDatabase, SourceRoot, Option<FilePosition>) { |
52 | let mut db = MockDatabase::default(); | 47 | let mut db = MockDatabase::default(); |
53 | 48 | ||
@@ -94,7 +89,8 @@ impl MockDatabase { | |||
94 | let is_crate_root = path == "/lib.rs" || path == "/main.rs"; | 89 | let is_crate_root = path == "/lib.rs" || path == "/main.rs"; |
95 | 90 | ||
96 | let path = RelativePathBuf::from_path(&path[1..]).unwrap(); | 91 | let path = RelativePathBuf::from_path(&path[1..]).unwrap(); |
97 | let file_id = Arc::make_mut(&mut self.file_map).add(path.clone()); | 92 | let file_id = FileId(self.file_counter); |
93 | self.file_counter += 1; | ||
98 | let text = Arc::new(text.to_string()); | 94 | let text = Arc::new(text.to_string()); |
99 | self.set_file_text(file_id, text); | 95 | self.set_file_text(file_id, text); |
100 | self.set_file_relative_path(file_id, path.clone()); | 96 | self.set_file_relative_path(file_id, path.clone()); |
@@ -141,7 +137,7 @@ impl Default for MockDatabase { | |||
141 | events: Default::default(), | 137 | events: Default::default(), |
142 | runtime: salsa::Runtime::default(), | 138 | runtime: salsa::Runtime::default(), |
143 | interner: Default::default(), | 139 | interner: Default::default(), |
144 | file_map: Default::default(), | 140 | file_counter: 0, |
145 | }; | 141 | }; |
146 | db.set_crate_graph(Default::default()); | 142 | db.set_crate_graph(Default::default()); |
147 | db | 143 | db |
@@ -154,7 +150,7 @@ impl salsa::ParallelDatabase for MockDatabase { | |||
154 | events: Default::default(), | 150 | events: Default::default(), |
155 | runtime: self.runtime.snapshot(self), | 151 | runtime: self.runtime.snapshot(self), |
156 | interner: Arc::clone(&self.interner), | 152 | interner: Arc::clone(&self.interner), |
157 | file_map: Arc::clone(&self.file_map), | 153 | file_counter: self.file_counter, |
158 | }) | 154 | }) |
159 | } | 155 | } |
160 | } | 156 | } |