diff options
author | Aleksey Kladov <[email protected]> | 2018-11-28 01:09:44 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-11-28 01:09:44 +0000 |
commit | 59e29aef633e906837f8fed604435976a46be691 (patch) | |
tree | 0e5aa7337c000dd8c6ef3a7fedba68abf7feca8a /crates/ra_hir/src/lib.rs | |
parent | 0e4b710af83844f4a7c471c5335c99aaaa25a90c (diff) |
Move hir to a separate crate
Diffstat (limited to 'crates/ra_hir/src/lib.rs')
-rw-r--r-- | crates/ra_hir/src/lib.rs | 30 |
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 | ||
17 | pub(crate) mod db; | 17 | pub mod db; |
18 | mod query_definitions; | 18 | mod query_definitions; |
19 | mod function; | 19 | mod function; |
20 | mod module; | 20 | mod module; |
@@ -31,36 +31,36 @@ use crate::{ | |||
31 | arena::{Arena, Id}, | 31 | arena::{Arena, Id}, |
32 | }; | 32 | }; |
33 | 33 | ||
34 | pub(crate) use self::{ | 34 | pub 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 | ||
40 | pub use self::function::FnSignatureInfo; | 40 | pub use self::function::FnSignatureInfo; |
41 | 41 | ||
42 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 42 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
43 | pub(crate) struct FnId(u32); | 43 | pub struct FnId(u32); |
44 | ra_db::impl_numeric_id!(FnId); | 44 | ra_db::impl_numeric_id!(FnId); |
45 | 45 | ||
46 | impl FnId { | 46 | impl 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)] |
59 | pub(crate) struct DefId(u32); | 59 | pub struct DefId(u32); |
60 | ra_db::impl_numeric_id!(DefId); | 60 | ra_db::impl_numeric_id!(DefId); |
61 | 61 | ||
62 | #[derive(Clone, Debug, PartialEq, Eq, Hash)] | 62 | #[derive(Clone, Debug, PartialEq, Eq, Hash)] |
63 | pub(crate) enum DefLoc { | 63 | pub 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 | ||
73 | impl DefId { | 73 | impl 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 | ||
79 | impl DefLoc { | 79 | impl 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 | ||
85 | pub(crate) enum Def { | 85 | pub enum Def { |
86 | Module(Module), | 86 | Module(Module), |
87 | Item, | 87 | Item, |
88 | } | 88 | } |
89 | 89 | ||
90 | impl DefId { | 90 | impl 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 { | |||
106 | pub(crate) type SourceFileItemId = Id<SyntaxNode>; | 106 | pub(crate) type SourceFileItemId = Id<SyntaxNode>; |
107 | 107 | ||
108 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 108 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
109 | pub(crate) struct SourceItemId { | 109 | pub 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)] |
116 | pub(crate) struct SourceFileItems { | 116 | pub 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() |