diff options
Diffstat (limited to 'crates/ra_hir_ty/src/test_db.rs')
-rw-r--r-- | crates/ra_hir_ty/src/test_db.rs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/crates/ra_hir_ty/src/test_db.rs b/crates/ra_hir_ty/src/test_db.rs index ad04e3e0f..0481a7b12 100644 --- a/crates/ra_hir_ty/src/test_db.rs +++ b/crates/ra_hir_ty/src/test_db.rs | |||
@@ -11,7 +11,10 @@ use ra_db::{salsa, CrateId, FileId, FileLoader, FileLoaderDelegate, SourceDataba | |||
11 | use rustc_hash::FxHashSet; | 11 | use rustc_hash::FxHashSet; |
12 | use stdx::format_to; | 12 | use stdx::format_to; |
13 | 13 | ||
14 | use crate::{db::HirDatabase, diagnostics::Diagnostic, expr::ExprValidator}; | 14 | use crate::{ |
15 | db::HirDatabase, diagnostics::Diagnostic, expr::ExprValidator, | ||
16 | unsafe_validation::UnsafeValidator, | ||
17 | }; | ||
15 | 18 | ||
16 | #[salsa::database( | 19 | #[salsa::database( |
17 | ra_db::SourceDatabaseExtStorage, | 20 | ra_db::SourceDatabaseExtStorage, |
@@ -119,7 +122,9 @@ impl TestDB { | |||
119 | let infer = self.infer(f.into()); | 122 | let infer = self.infer(f.into()); |
120 | let mut sink = DiagnosticSink::new(&mut cb); | 123 | let mut sink = DiagnosticSink::new(&mut cb); |
121 | infer.add_diagnostics(self, f, &mut sink); | 124 | infer.add_diagnostics(self, f, &mut sink); |
122 | let mut validator = ExprValidator::new(f, infer, &mut sink); | 125 | let mut validator = ExprValidator::new(f, infer.clone(), &mut sink); |
126 | validator.validate_body(self); | ||
127 | let mut validator = UnsafeValidator::new(f, infer, &mut sink); | ||
123 | validator.validate_body(self); | 128 | validator.validate_body(self); |
124 | } | 129 | } |
125 | } | 130 | } |
@@ -149,6 +154,19 @@ impl TestDB { | |||
149 | }); | 154 | }); |
150 | (buf, count) | 155 | (buf, count) |
151 | } | 156 | } |
157 | |||
158 | pub fn all_files(&self) -> Vec<FileId> { | ||
159 | let mut res = Vec::new(); | ||
160 | let crate_graph = self.crate_graph(); | ||
161 | for krate in crate_graph.iter() { | ||
162 | let crate_def_map = self.crate_def_map(krate); | ||
163 | for (module_id, _) in crate_def_map.modules.iter() { | ||
164 | let file_id = crate_def_map[module_id].origin.file_id(); | ||
165 | res.extend(file_id) | ||
166 | } | ||
167 | } | ||
168 | res | ||
169 | } | ||
152 | } | 170 | } |
153 | 171 | ||
154 | impl TestDB { | 172 | impl TestDB { |