diff options
Diffstat (limited to 'crates/ra_analysis/src/loc2id.rs')
-rw-r--r-- | crates/ra_analysis/src/loc2id.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/ra_analysis/src/loc2id.rs b/crates/ra_analysis/src/loc2id.rs index 87417df94..e4b55f9b0 100644 --- a/crates/ra_analysis/src/loc2id.rs +++ b/crates/ra_analysis/src/loc2id.rs | |||
@@ -96,14 +96,14 @@ pub(crate) struct DefId(u32); | |||
96 | impl_numeric_id!(DefId); | 96 | impl_numeric_id!(DefId); |
97 | 97 | ||
98 | #[derive(Clone, Debug, PartialEq, Eq, Hash)] | 98 | #[derive(Clone, Debug, PartialEq, Eq, Hash)] |
99 | enum DefLoc { | 99 | pub(crate) enum DefLoc { |
100 | Module { | 100 | Module { |
101 | id: ModuleId, | 101 | id: ModuleId, |
102 | source_root: SourceRootId, | 102 | source_root: SourceRootId, |
103 | }, | 103 | }, |
104 | Item { | 104 | Item { |
105 | ptr: SyntaxPtr, | 105 | ptr: SyntaxPtr, |
106 | } | 106 | }, |
107 | } | 107 | } |
108 | 108 | ||
109 | pub(crate) trait IdDatabase: salsa::Database { | 109 | pub(crate) trait IdDatabase: salsa::Database { |
@@ -122,6 +122,13 @@ impl IdMaps { | |||
122 | pub(crate) fn fn_ptr(&self, fn_id: FnId) -> SyntaxPtr { | 122 | pub(crate) fn fn_ptr(&self, fn_id: FnId) -> SyntaxPtr { |
123 | self.inner.fns.lock().id2loc(fn_id) | 123 | self.inner.fns.lock().id2loc(fn_id) |
124 | } | 124 | } |
125 | |||
126 | pub(crate) fn def_id(&self, loc: DefLoc) -> DefId { | ||
127 | self.inner.defs.lock().loc2id(&loc) | ||
128 | } | ||
129 | pub(crate) fn def_loc(&self, def_id: DefId) -> DefLoc { | ||
130 | self.inner.defs.lock().id2loc(def_id) | ||
131 | } | ||
125 | } | 132 | } |
126 | 133 | ||
127 | #[derive(Debug, Default)] | 134 | #[derive(Debug, Default)] |