diff options
author | Aleksey Kladov <[email protected]> | 2018-11-28 00:31:50 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-11-28 00:31:50 +0000 |
commit | f66e5b6e6b6f7b2b899ef4207dfe46655d77334c (patch) | |
tree | ab85d22708e1f1e994e1337b851ce8d094e13d7a /crates/ra_analysis/src/loc2id.rs | |
parent | 11168c464cd962af3336a2cc68295496066edd6c (diff) |
move ids to HIR
Diffstat (limited to 'crates/ra_analysis/src/loc2id.rs')
-rw-r--r-- | crates/ra_analysis/src/loc2id.rs | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/crates/ra_analysis/src/loc2id.rs b/crates/ra_analysis/src/loc2id.rs deleted file mode 100644 index 7956431ab..000000000 --- a/crates/ra_analysis/src/loc2id.rs +++ /dev/null | |||
@@ -1,69 +0,0 @@ | |||
1 | use ra_db::SourceRootId; | ||
2 | |||
3 | use crate::{ | ||
4 | hir::{SourceItemId, ModuleId}, | ||
5 | }; | ||
6 | |||
7 | use ra_db::{NumericId, LocationIntener}; | ||
8 | |||
9 | macro_rules! impl_numeric_id { | ||
10 | ($id:ident) => { | ||
11 | impl NumericId for $id { | ||
12 | fn from_u32(id: u32) -> Self { | ||
13 | $id(id) | ||
14 | } | ||
15 | fn to_u32(self) -> u32 { | ||
16 | self.0 | ||
17 | } | ||
18 | } | ||
19 | }; | ||
20 | } | ||
21 | |||
22 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | ||
23 | pub(crate) struct FnId(u32); | ||
24 | impl_numeric_id!(FnId); | ||
25 | |||
26 | impl FnId { | ||
27 | pub(crate) fn from_loc( | ||
28 | db: &impl AsRef<LocationIntener<SourceItemId, FnId>>, | ||
29 | loc: &SourceItemId, | ||
30 | ) -> FnId { | ||
31 | db.as_ref().loc2id(loc) | ||
32 | } | ||
33 | pub(crate) fn loc(self, db: &impl AsRef<LocationIntener<SourceItemId, FnId>>) -> SourceItemId { | ||
34 | db.as_ref().id2loc(self) | ||
35 | } | ||
36 | } | ||
37 | |||
38 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | ||
39 | pub(crate) struct DefId(u32); | ||
40 | impl_numeric_id!(DefId); | ||
41 | |||
42 | #[derive(Clone, Debug, PartialEq, Eq, Hash)] | ||
43 | pub(crate) enum DefLoc { | ||
44 | Module { | ||
45 | id: ModuleId, | ||
46 | source_root: SourceRootId, | ||
47 | }, | ||
48 | Item { | ||
49 | source_item_id: SourceItemId, | ||
50 | }, | ||
51 | } | ||
52 | |||
53 | impl DefId { | ||
54 | pub(crate) fn loc(self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefLoc { | ||
55 | db.as_ref().id2loc(self) | ||
56 | } | ||
57 | } | ||
58 | |||
59 | impl DefLoc { | ||
60 | pub(crate) fn id(&self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefId { | ||
61 | db.as_ref().loc2id(&self) | ||
62 | } | ||
63 | } | ||
64 | |||
65 | #[derive(Debug, Default)] | ||
66 | pub(crate) struct IdMaps { | ||
67 | pub(crate) fns: LocationIntener<SourceItemId, FnId>, | ||
68 | pub(crate) defs: LocationIntener<DefLoc, DefId>, | ||
69 | } | ||