diff options
Diffstat (limited to 'crates/hir_def/src/lib.rs')
-rw-r--r-- | crates/hir_def/src/lib.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/crates/hir_def/src/lib.rs b/crates/hir_def/src/lib.rs index 08ed920c6..2f9261a7f 100644 --- a/crates/hir_def/src/lib.rs +++ b/crates/hir_def/src/lib.rs | |||
@@ -50,7 +50,10 @@ pub mod import_map; | |||
50 | #[cfg(test)] | 50 | #[cfg(test)] |
51 | mod test_db; | 51 | mod test_db; |
52 | 52 | ||
53 | use std::hash::{Hash, Hasher}; | 53 | use std::{ |
54 | hash::{Hash, Hasher}, | ||
55 | sync::Arc, | ||
56 | }; | ||
54 | 57 | ||
55 | use base_db::{impl_intern_key, salsa, CrateId}; | 58 | use base_db::{impl_intern_key, salsa, CrateId}; |
56 | use hir_expand::{ | 59 | use hir_expand::{ |
@@ -58,6 +61,7 @@ use hir_expand::{ | |||
58 | MacroCallId, MacroCallKind, MacroDefId, MacroDefKind, | 61 | MacroCallId, MacroCallKind, MacroDefId, MacroDefKind, |
59 | }; | 62 | }; |
60 | use la_arena::Idx; | 63 | use la_arena::Idx; |
64 | use nameres::DefMap; | ||
61 | use syntax::ast; | 65 | use syntax::ast; |
62 | 66 | ||
63 | use crate::builtin_type::BuiltinType; | 67 | use crate::builtin_type::BuiltinType; |
@@ -73,6 +77,12 @@ pub struct ModuleId { | |||
73 | pub local_id: LocalModuleId, | 77 | pub local_id: LocalModuleId, |
74 | } | 78 | } |
75 | 79 | ||
80 | impl ModuleId { | ||
81 | pub fn def_map(&self, db: &dyn db::DefDatabase) -> Arc<DefMap> { | ||
82 | db.crate_def_map(self.krate) | ||
83 | } | ||
84 | } | ||
85 | |||
76 | /// An ID of a module, **local** to a specific crate | 86 | /// An ID of a module, **local** to a specific crate |
77 | pub type LocalModuleId = Idx<nameres::ModuleData>; | 87 | pub type LocalModuleId = Idx<nameres::ModuleData>; |
78 | 88 | ||