aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_db/src/lib.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-09-05 20:36:04 +0100
committerAleksey Kladov <[email protected]>2019-09-06 12:21:11 +0100
commit9ae455ea52bf0bc60476fdb3d50d05f5873040c1 (patch)
tree5f5adc8ffd4c29d104e646057f636def67ac2549 /crates/ra_db/src/lib.rs
parent3bdb456d17660f3460bbf2c38315568b2f76aaa5 (diff)
make source_root API more abstract
Diffstat (limited to 'crates/ra_db/src/lib.rs')
-rw-r--r--crates/ra_db/src/lib.rs5
1 files changed, 2 insertions, 3 deletions
diff --git a/crates/ra_db/src/lib.rs b/crates/ra_db/src/lib.rs
index b82d1bda0..c54791b7a 100644
--- a/crates/ra_db/src/lib.rs
+++ b/crates/ra_db/src/lib.rs
@@ -12,7 +12,7 @@ pub use crate::{
12 cancellation::Canceled, 12 cancellation::Canceled,
13 input::{CrateGraph, CrateId, Dependency, Edition, FileId, SourceRoot, SourceRootId}, 13 input::{CrateGraph, CrateId, Dependency, Edition, FileId, SourceRoot, SourceRootId},
14}; 14};
15pub use ::salsa; 15pub use salsa;
16 16
17pub trait CheckCanceled { 17pub trait CheckCanceled {
18 /// Aborts current query if there are pending changes. 18 /// Aborts current query if there are pending changes.
@@ -93,8 +93,7 @@ pub trait SourceDatabase: CheckCanceled + std::fmt::Debug {
93fn source_root_crates(db: &impl SourceDatabase, id: SourceRootId) -> Arc<Vec<CrateId>> { 93fn source_root_crates(db: &impl SourceDatabase, id: SourceRootId) -> Arc<Vec<CrateId>> {
94 let root = db.source_root(id); 94 let root = db.source_root(id);
95 let graph = db.crate_graph(); 95 let graph = db.crate_graph();
96 let res = 96 let res = root.walk().filter_map(|it| graph.crate_id_for_crate_root(it)).collect::<Vec<_>>();
97 root.files.values().filter_map(|&it| graph.crate_id_for_crate_root(it)).collect::<Vec<_>>();
98 Arc::new(res) 97 Arc::new(res)
99} 98}
100 99