diff options
Diffstat (limited to 'crates/ra_hir/src/lib.rs')
-rw-r--r-- | crates/ra_hir/src/lib.rs | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index ffc99fd5f..dbcc5e46d 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs | |||
@@ -42,28 +42,13 @@ pub use self::{ | |||
42 | pub use self::function::FnSignatureInfo; | 42 | pub use self::function::FnSignatureInfo; |
43 | 43 | ||
44 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 44 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
45 | pub struct FnId(u32); | ||
46 | ra_db::impl_numeric_id!(FnId); | ||
47 | |||
48 | impl FnId { | ||
49 | pub fn from_loc( | ||
50 | db: &impl AsRef<LocationIntener<SourceItemId, FnId>>, | ||
51 | loc: &SourceItemId, | ||
52 | ) -> FnId { | ||
53 | db.as_ref().loc2id(loc) | ||
54 | } | ||
55 | pub fn loc(self, db: &impl AsRef<LocationIntener<SourceItemId, FnId>>) -> SourceItemId { | ||
56 | db.as_ref().id2loc(self) | ||
57 | } | ||
58 | } | ||
59 | |||
60 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | ||
61 | pub struct DefId(u32); | 45 | pub struct DefId(u32); |
62 | ra_db::impl_numeric_id!(DefId); | 46 | ra_db::impl_numeric_id!(DefId); |
63 | 47 | ||
64 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] | 48 | #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] |
65 | pub(crate) enum DefKind { | 49 | pub(crate) enum DefKind { |
66 | Module, | 50 | Module, |
51 | Function, | ||
67 | Item, | 52 | Item, |
68 | } | 53 | } |
69 | 54 | ||
@@ -89,6 +74,7 @@ impl DefLoc { | |||
89 | 74 | ||
90 | pub enum Def { | 75 | pub enum Def { |
91 | Module(Module), | 76 | Module(Module), |
77 | Function(Function), | ||
92 | Item, | 78 | Item, |
93 | } | 79 | } |
94 | 80 | ||
@@ -100,7 +86,7 @@ impl DefId { | |||
100 | let descr = Module::new(db, loc.source_root_id, loc.module_id)?; | 86 | let descr = Module::new(db, loc.source_root_id, loc.module_id)?; |
101 | Def::Module(descr) | 87 | Def::Module(descr) |
102 | } | 88 | } |
103 | DefKind::Item => Def::Item, | 89 | DefKind::Item | DefKind::Function => Def::Item, |
104 | }; | 90 | }; |
105 | Ok(res) | 91 | Ok(res) |
106 | } | 92 | } |