diff options
Diffstat (limited to 'crates/ra_hir_def/src/db.rs')
-rw-r--r-- | crates/ra_hir_def/src/db.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/ra_hir_def/src/db.rs b/crates/ra_hir_def/src/db.rs index dcd377aae..7f8c1ea21 100644 --- a/crates/ra_hir_def/src/db.rs +++ b/crates/ra_hir_def/src/db.rs | |||
@@ -2,7 +2,7 @@ | |||
2 | use std::sync::Arc; | 2 | use std::sync::Arc; |
3 | 3 | ||
4 | use hir_expand::{db::AstDatabase, HirFileId}; | 4 | use hir_expand::{db::AstDatabase, HirFileId}; |
5 | use ra_db::{salsa, CrateId, SourceDatabase}; | 5 | use ra_db::{salsa, CrateId, SourceDatabase, Upcast}; |
6 | use ra_prof::profile; | 6 | use ra_prof::profile; |
7 | use ra_syntax::SmolStr; | 7 | use ra_syntax::SmolStr; |
8 | 8 | ||
@@ -43,7 +43,7 @@ pub trait InternDatabase: SourceDatabase { | |||
43 | } | 43 | } |
44 | 44 | ||
45 | #[salsa::query_group(DefDatabaseStorage)] | 45 | #[salsa::query_group(DefDatabaseStorage)] |
46 | pub trait DefDatabase: InternDatabase + AstDatabase { | 46 | pub trait DefDatabase: InternDatabase + AstDatabase + Upcast<dyn AstDatabase> { |
47 | #[salsa::invoke(RawItems::raw_items_query)] | 47 | #[salsa::invoke(RawItems::raw_items_query)] |
48 | fn raw_items(&self, file_id: HirFileId) -> Arc<RawItems>; | 48 | fn raw_items(&self, file_id: HirFileId) -> Arc<RawItems>; |
49 | 49 | ||
@@ -109,6 +109,12 @@ pub trait DefDatabase: InternDatabase + AstDatabase { | |||
109 | fn documentation(&self, def: AttrDefId) -> Option<Documentation>; | 109 | fn documentation(&self, def: AttrDefId) -> Option<Documentation>; |
110 | } | 110 | } |
111 | 111 | ||
112 | // impl<T: DefDatabase> Upcast<dyn AstDatabase> for T { | ||
113 | // fn upcast(&self) -> &dyn AstDatabase { | ||
114 | // &*self | ||
115 | // } | ||
116 | // } | ||
117 | |||
112 | fn crate_def_map_wait(db: &impl DefDatabase, krate: CrateId) -> Arc<CrateDefMap> { | 118 | fn crate_def_map_wait(db: &impl DefDatabase, krate: CrateId) -> Arc<CrateDefMap> { |
113 | let _p = profile("crate_def_map:wait"); | 119 | let _p = profile("crate_def_map:wait"); |
114 | db.crate_def_map_query(krate) | 120 | db.crate_def_map_query(krate) |