aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/lib.rs')
-rw-r--r--crates/ra_hir/src/lib.rs20
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::{
42pub use self::function::FnSignatureInfo; 42pub use self::function::FnSignatureInfo;
43 43
44#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 44#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
45pub struct FnId(u32);
46ra_db::impl_numeric_id!(FnId);
47
48impl 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)]
61pub struct DefId(u32); 45pub struct DefId(u32);
62ra_db::impl_numeric_id!(DefId); 46ra_db::impl_numeric_id!(DefId);
63 47
64#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] 48#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
65pub(crate) enum DefKind { 49pub(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
90pub enum Def { 75pub 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 }