diff options
Diffstat (limited to 'crates/ra_hir_def/src/lib.rs')
-rw-r--r-- | crates/ra_hir_def/src/lib.rs | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/crates/ra_hir_def/src/lib.rs b/crates/ra_hir_def/src/lib.rs index 76d5f1852..63ed2a098 100644 --- a/crates/ra_hir_def/src/lib.rs +++ b/crates/ra_hir_def/src/lib.rs | |||
@@ -13,25 +13,25 @@ pub mod path; | |||
13 | pub mod type_ref; | 13 | pub mod type_ref; |
14 | pub mod builtin_type; | 14 | pub mod builtin_type; |
15 | pub mod adt; | 15 | pub mod adt; |
16 | pub mod diagnostics; | ||
17 | |||
18 | #[cfg(test)] | ||
19 | mod test_db; | ||
20 | #[cfg(test)] | ||
21 | mod marks; | ||
16 | 22 | ||
17 | // FIXME: this should be private | 23 | // FIXME: this should be private |
18 | pub mod nameres; | 24 | pub mod nameres; |
19 | 25 | ||
20 | use std::hash::{Hash, Hasher}; | 26 | use std::hash::{Hash, Hasher}; |
21 | 27 | ||
22 | use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId}; | 28 | use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId, Source}; |
23 | use ra_arena::{impl_arena_id, RawId}; | 29 | use ra_arena::{impl_arena_id, RawId}; |
24 | use ra_db::{salsa, CrateId, FileId}; | 30 | use ra_db::{salsa, CrateId, FileId}; |
25 | use ra_syntax::{ast, AstNode, SyntaxNode}; | 31 | use ra_syntax::{ast, AstNode, SyntaxNode}; |
26 | 32 | ||
27 | use crate::{builtin_type::BuiltinType, db::InternDatabase}; | 33 | use crate::{builtin_type::BuiltinType, db::InternDatabase}; |
28 | 34 | ||
29 | #[derive(Debug, PartialEq, Eq, Clone, Copy)] | ||
30 | pub struct Source<T> { | ||
31 | pub file_id: HirFileId, | ||
32 | pub ast: T, | ||
33 | } | ||
34 | |||
35 | pub enum ModuleSource { | 35 | pub enum ModuleSource { |
36 | SourceFile(ast::SourceFile), | 36 | SourceFile(ast::SourceFile), |
37 | Module(ast::Module), | 37 | Module(ast::Module), |
@@ -94,15 +94,6 @@ impl ModuleSource { | |||
94 | } | 94 | } |
95 | } | 95 | } |
96 | 96 | ||
97 | impl<T> Source<T> { | ||
98 | pub fn map<F: FnOnce(T) -> U, U>(self, f: F) -> Source<U> { | ||
99 | Source { file_id: self.file_id, ast: f(self.ast) } | ||
100 | } | ||
101 | pub fn file_syntax(&self, db: &impl AstDatabase) -> SyntaxNode { | ||
102 | db.parse_or_expand(self.file_id).expect("source created from invalid file") | ||
103 | } | ||
104 | } | ||
105 | |||
106 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 97 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
107 | pub struct ModuleId { | 98 | pub struct ModuleId { |
108 | pub krate: CrateId, | 99 | pub krate: CrateId, |
@@ -252,8 +243,8 @@ impl AstItemDef<ast::EnumDef> for EnumId { | |||
252 | // FIXME: rename to `VariantId`, only enums can ave variants | 243 | // FIXME: rename to `VariantId`, only enums can ave variants |
253 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 244 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
254 | pub struct EnumVariantId { | 245 | pub struct EnumVariantId { |
255 | parent: EnumId, | 246 | pub parent: EnumId, |
256 | local_id: LocalEnumVariantId, | 247 | pub local_id: LocalEnumVariantId, |
257 | } | 248 | } |
258 | 249 | ||
259 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 250 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |