aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/lib.rs')
-rw-r--r--crates/ra_hir_def/src/lib.rs27
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;
13pub mod type_ref; 13pub mod type_ref;
14pub mod builtin_type; 14pub mod builtin_type;
15pub mod adt; 15pub mod adt;
16pub mod diagnostics;
17
18#[cfg(test)]
19mod test_db;
20#[cfg(test)]
21mod marks;
16 22
17// FIXME: this should be private 23// FIXME: this should be private
18pub mod nameres; 24pub mod nameres;
19 25
20use std::hash::{Hash, Hasher}; 26use std::hash::{Hash, Hasher};
21 27
22use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId}; 28use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId, Source};
23use ra_arena::{impl_arena_id, RawId}; 29use ra_arena::{impl_arena_id, RawId};
24use ra_db::{salsa, CrateId, FileId}; 30use ra_db::{salsa, CrateId, FileId};
25use ra_syntax::{ast, AstNode, SyntaxNode}; 31use ra_syntax::{ast, AstNode, SyntaxNode};
26 32
27use crate::{builtin_type::BuiltinType, db::InternDatabase}; 33use crate::{builtin_type::BuiltinType, db::InternDatabase};
28 34
29#[derive(Debug, PartialEq, Eq, Clone, Copy)]
30pub struct Source<T> {
31 pub file_id: HirFileId,
32 pub ast: T,
33}
34
35pub enum ModuleSource { 35pub 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
97impl<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)]
107pub struct ModuleId { 98pub 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)]
254pub struct EnumVariantId { 245pub 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)]