diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/ra_hir/src/mock.rs | 16 | ||||
-rw-r--r-- | crates/ra_hir/src/nameres/tests.rs | 8 |
2 files changed, 9 insertions, 15 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 | } |
diff --git a/crates/ra_hir/src/nameres/tests.rs b/crates/ra_hir/src/nameres/tests.rs index 971f71637..3d420467c 100644 --- a/crates/ra_hir/src/nameres/tests.rs +++ b/crates/ra_hir/src/nameres/tests.rs | |||
@@ -19,11 +19,12 @@ fn item_map(fixture: &str) -> (Arc<ItemMap>, ModuleId) { | |||
19 | (db.item_map(krate.crate_id), module_id) | 19 | (db.item_map(krate.crate_id), module_id) |
20 | } | 20 | } |
21 | 21 | ||
22 | fn item_map_custom_crate_root(fixture: &str, root: &str) -> (Arc<ItemMap>, ModuleId) { | 22 | /// Sets the crate root to the file of the cursor marker |
23 | fn item_map_custom_crate_root(fixture: &str) -> (Arc<ItemMap>, ModuleId) { | ||
23 | let (mut db, pos) = MockDatabase::with_position(fixture); | 24 | let (mut db, pos) = MockDatabase::with_position(fixture); |
24 | 25 | ||
25 | let mut crate_graph = CrateGraph::default(); | 26 | let mut crate_graph = CrateGraph::default(); |
26 | crate_graph.add_crate_root(db.file_id(root)); | 27 | crate_graph.add_crate_root(pos.file_id); |
27 | db.set_crate_graph(Arc::new(crate_graph)); | 28 | db.set_crate_graph(Arc::new(crate_graph)); |
28 | 29 | ||
29 | let module = crate::source_binder::module_from_position(&db, pos).unwrap(); | 30 | let module = crate::source_binder::module_from_position(&db, pos).unwrap(); |
@@ -152,14 +153,11 @@ fn module_resolution_works_for_non_standard_filenames() { | |||
152 | " | 153 | " |
153 | //- /my_library.rs | 154 | //- /my_library.rs |
154 | mod foo; | 155 | mod foo; |
155 | |||
156 | use self::foo::Bar; | 156 | use self::foo::Bar; |
157 | <|> | 157 | <|> |
158 | |||
159 | //- /foo/mod.rs | 158 | //- /foo/mod.rs |
160 | pub struct Bar; | 159 | pub struct Bar; |
161 | ", | 160 | ", |
162 | "/my_library.rs", | ||
163 | ); | 161 | ); |
164 | check_module_item_map( | 162 | check_module_item_map( |
165 | &item_map, | 163 | &item_map, |