aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_analysis
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_analysis')
-rw-r--r--crates/ra_analysis/src/db.rs17
-rw-r--r--crates/ra_analysis/src/hir/module/imp.rs3
-rw-r--r--crates/ra_analysis/src/hir/module/nameres.rs2
-rw-r--r--crates/ra_analysis/src/input.rs2
4 files changed, 9 insertions, 15 deletions
diff --git a/crates/ra_analysis/src/db.rs b/crates/ra_analysis/src/db.rs
index 78bbfcf2d..d7fffc188 100644
--- a/crates/ra_analysis/src/db.rs
+++ b/crates/ra_analysis/src/db.rs
@@ -6,7 +6,6 @@ use ra_syntax::{SourceFileNode, SyntaxNode};
6use salsa::{self, Database}; 6use salsa::{self, Database};
7 7
8use crate::{ 8use crate::{
9 db,
10 hir, 9 hir,
11 symbol_index::SymbolIndex, 10 symbol_index::SymbolIndex,
12 syntax_ptr::SyntaxPtr, 11 syntax_ptr::SyntaxPtr,
@@ -59,14 +58,6 @@ impl Default for RootDatabase {
59 } 58 }
60} 59}
61 60
62pub(crate) fn check_canceled(db: &impl salsa::Database) -> Cancelable<()> {
63 if db.salsa_runtime().is_current_revision_canceled() {
64 Err(Canceled)
65 } else {
66 Ok(())
67 }
68}
69
70impl salsa::ParallelDatabase for RootDatabase { 61impl salsa::ParallelDatabase for RootDatabase {
71 fn snapshot(&self) -> salsa::Snapshot<RootDatabase> { 62 fn snapshot(&self) -> salsa::Snapshot<RootDatabase> {
72 salsa::Snapshot::new(RootDatabase { 63 salsa::Snapshot::new(RootDatabase {
@@ -80,7 +71,11 @@ impl salsa::ParallelDatabase for RootDatabase {
80pub(crate) trait BaseDatabase: salsa::Database { 71pub(crate) trait BaseDatabase: salsa::Database {
81 fn id_maps(&self) -> &IdMaps; 72 fn id_maps(&self) -> &IdMaps;
82 fn check_canceled(&self) -> Cancelable<()> { 73 fn check_canceled(&self) -> Cancelable<()> {
83 check_canceled(self) 74 if self.salsa_runtime().is_current_revision_canceled() {
75 Err(Canceled)
76 } else {
77 Ok(())
78 }
84 } 79 }
85} 80}
86 81
@@ -171,7 +166,7 @@ fn file_lines(db: &impl SyntaxDatabase, file_id: FileId) -> Arc<LineIndex> {
171 Arc::new(LineIndex::new(&*text)) 166 Arc::new(LineIndex::new(&*text))
172} 167}
173fn file_symbols(db: &impl SyntaxDatabase, file_id: FileId) -> Cancelable<Arc<SymbolIndex>> { 168fn file_symbols(db: &impl SyntaxDatabase, file_id: FileId) -> Cancelable<Arc<SymbolIndex>> {
174 db::check_canceled(db)?; 169 db.check_canceled()?;
175 let syntax = db.file_syntax(file_id); 170 let syntax = db.file_syntax(file_id);
176 Ok(Arc::new(SymbolIndex::for_file(file_id, syntax))) 171 Ok(Arc::new(SymbolIndex::for_file(file_id, syntax)))
177} 172}
diff --git a/crates/ra_analysis/src/hir/module/imp.rs b/crates/ra_analysis/src/hir/module/imp.rs
index 3b1baff76..d51ca2d59 100644
--- a/crates/ra_analysis/src/hir/module/imp.rs
+++ b/crates/ra_analysis/src/hir/module/imp.rs
@@ -8,7 +8,6 @@ use relative_path::RelativePathBuf;
8use rustc_hash::{FxHashMap, FxHashSet}; 8use rustc_hash::{FxHashMap, FxHashSet};
9 9
10use crate::{ 10use crate::{
11 db,
12 hir::HirDatabase, 11 hir::HirDatabase,
13 input::{SourceRoot, SourceRootId}, 12 input::{SourceRoot, SourceRootId},
14 Cancelable, FileId, FileResolverImp, 13 Cancelable, FileId, FileResolverImp,
@@ -52,7 +51,7 @@ pub(crate) fn module_tree(
52 db: &impl HirDatabase, 51 db: &impl HirDatabase,
53 source_root: SourceRootId, 52 source_root: SourceRootId,
54) -> Cancelable<Arc<ModuleTree>> { 53) -> Cancelable<Arc<ModuleTree>> {
55 db::check_canceled(db)?; 54 db.check_canceled()?;
56 let res = create_module_tree(db, source_root)?; 55 let res = create_module_tree(db, source_root)?;
57 Ok(Arc::new(res)) 56 Ok(Arc::new(res))
58} 57}
diff --git a/crates/ra_analysis/src/hir/module/nameres.rs b/crates/ra_analysis/src/hir/module/nameres.rs
index 2ff5e0537..d38940085 100644
--- a/crates/ra_analysis/src/hir/module/nameres.rs
+++ b/crates/ra_analysis/src/hir/module/nameres.rs
@@ -248,7 +248,7 @@ where
248 } 248 }
249 249
250 for &module_id in self.input.keys() { 250 for &module_id in self.input.keys() {
251 crate::db::check_canceled(self.db)?; 251 self.db.check_canceled()?;
252 self.resolve_imports(module_id); 252 self.resolve_imports(module_id);
253 } 253 }
254 Ok(self.result) 254 Ok(self.result)
diff --git a/crates/ra_analysis/src/input.rs b/crates/ra_analysis/src/input.rs
index a78b6e397..60086d1ae 100644
--- a/crates/ra_analysis/src/input.rs
+++ b/crates/ra_analysis/src/input.rs
@@ -33,7 +33,7 @@ impl CrateGraph {
33pub trait FileResolver: fmt::Debug + Send + Sync + 'static { 33pub trait FileResolver: fmt::Debug + Send + Sync + 'static {
34 fn file_stem(&self, file_id: FileId) -> String; 34 fn file_stem(&self, file_id: FileId) -> String;
35 fn resolve(&self, file_id: FileId, path: &RelativePath) -> Option<FileId>; 35 fn resolve(&self, file_id: FileId, path: &RelativePath) -> Option<FileId>;
36 fn debug_path(&self, _file_id: FileId) -> Option<std::path::PathBuf> { 36 fn debug_path(&self, _1file_id: FileId) -> Option<std::path::PathBuf> {
37 None 37 None
38 } 38 }
39} 39}