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.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs
index 7bf06c7f7..f13f0107e 100644
--- a/crates/ra_hir/src/lib.rs
+++ b/crates/ra_hir/src/lib.rs
@@ -14,7 +14,7 @@ macro_rules! ctry {
14 }; 14 };
15} 15}
16 16
17pub(crate) mod db; 17pub mod db;
18mod query_definitions; 18mod query_definitions;
19mod function; 19mod function;
20mod module; 20mod module;
@@ -31,36 +31,36 @@ use crate::{
31 arena::{Arena, Id}, 31 arena::{Arena, Id},
32}; 32};
33 33
34pub(crate) use self::{ 34pub use self::{
35 path::{Path, PathKind}, 35 path::{Path, PathKind},
36 module::{Module, ModuleId, Problem}, 36 module::{Module, ModuleId, Problem, nameres::ItemMap},
37 function::{Function, FnScopes}, 37 function::{Function, FnScopes},
38}; 38};
39 39
40pub use self::function::FnSignatureInfo; 40pub use self::function::FnSignatureInfo;
41 41
42#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 42#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
43pub(crate) struct FnId(u32); 43pub struct FnId(u32);
44ra_db::impl_numeric_id!(FnId); 44ra_db::impl_numeric_id!(FnId);
45 45
46impl FnId { 46impl FnId {
47 pub(crate) fn from_loc( 47 pub fn from_loc(
48 db: &impl AsRef<LocationIntener<SourceItemId, FnId>>, 48 db: &impl AsRef<LocationIntener<SourceItemId, FnId>>,
49 loc: &SourceItemId, 49 loc: &SourceItemId,
50 ) -> FnId { 50 ) -> FnId {
51 db.as_ref().loc2id(loc) 51 db.as_ref().loc2id(loc)
52 } 52 }
53 pub(crate) fn loc(self, db: &impl AsRef<LocationIntener<SourceItemId, FnId>>) -> SourceItemId { 53 pub fn loc(self, db: &impl AsRef<LocationIntener<SourceItemId, FnId>>) -> SourceItemId {
54 db.as_ref().id2loc(self) 54 db.as_ref().id2loc(self)
55 } 55 }
56} 56}
57 57
58#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 58#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
59pub(crate) struct DefId(u32); 59pub struct DefId(u32);
60ra_db::impl_numeric_id!(DefId); 60ra_db::impl_numeric_id!(DefId);
61 61
62#[derive(Clone, Debug, PartialEq, Eq, Hash)] 62#[derive(Clone, Debug, PartialEq, Eq, Hash)]
63pub(crate) enum DefLoc { 63pub enum DefLoc {
64 Module { 64 Module {
65 id: ModuleId, 65 id: ModuleId,
66 source_root: SourceRootId, 66 source_root: SourceRootId,
@@ -71,24 +71,24 @@ pub(crate) enum DefLoc {
71} 71}
72 72
73impl DefId { 73impl DefId {
74 pub(crate) fn loc(self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefLoc { 74 pub fn loc(self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefLoc {
75 db.as_ref().id2loc(self) 75 db.as_ref().id2loc(self)
76 } 76 }
77} 77}
78 78
79impl DefLoc { 79impl DefLoc {
80 pub(crate) fn id(&self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefId { 80 pub fn id(&self, db: &impl AsRef<LocationIntener<DefLoc, DefId>>) -> DefId {
81 db.as_ref().loc2id(&self) 81 db.as_ref().loc2id(&self)
82 } 82 }
83} 83}
84 84
85pub(crate) enum Def { 85pub enum Def {
86 Module(Module), 86 Module(Module),
87 Item, 87 Item,
88} 88}
89 89
90impl DefId { 90impl DefId {
91 pub(crate) fn resolve(self, db: &impl HirDatabase) -> Cancelable<Def> { 91 pub fn resolve(self, db: &impl HirDatabase) -> Cancelable<Def> {
92 let loc = self.loc(db); 92 let loc = self.loc(db);
93 let res = match loc { 93 let res = match loc {
94 DefLoc::Module { id, source_root } => { 94 DefLoc::Module { id, source_root } => {
@@ -106,14 +106,14 @@ impl DefId {
106pub(crate) type SourceFileItemId = Id<SyntaxNode>; 106pub(crate) type SourceFileItemId = Id<SyntaxNode>;
107 107
108#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] 108#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
109pub(crate) struct SourceItemId { 109pub struct SourceItemId {
110 file_id: FileId, 110 file_id: FileId,
111 item_id: SourceFileItemId, 111 item_id: SourceFileItemId,
112} 112}
113 113
114/// Maps item's `SyntaxNode`s to `SourceFileItemId` and back. 114/// Maps item's `SyntaxNode`s to `SourceFileItemId` and back.
115#[derive(Debug, PartialEq, Eq, Default)] 115#[derive(Debug, PartialEq, Eq, Default)]
116pub(crate) struct SourceFileItems { 116pub struct SourceFileItems {
117 arena: Arena<SyntaxNode>, 117 arena: Arena<SyntaxNode>,
118} 118}
119 119
@@ -121,7 +121,7 @@ impl SourceFileItems {
121 fn alloc(&mut self, item: SyntaxNode) -> SourceFileItemId { 121 fn alloc(&mut self, item: SyntaxNode) -> SourceFileItemId {
122 self.arena.alloc(item) 122 self.arena.alloc(item)
123 } 123 }
124 fn id_of(&self, item: SyntaxNodeRef) -> SourceFileItemId { 124 pub fn id_of(&self, item: SyntaxNodeRef) -> SourceFileItemId {
125 let (id, _item) = self 125 let (id, _item) = self
126 .arena 126 .arena
127 .iter() 127 .iter()