aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/lib.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-11-22 18:43:36 +0000
committerAleksey Kladov <[email protected]>2019-11-22 20:09:17 +0000
commit0f415dd4b30289117fe76d071293e9bdd3556336 (patch)
tree908faccf9e77fcb1d2804da3289ebc4d026ce339 /crates/ra_hir_def/src/lib.rs
parent5b19202e00fffe62a1a9c07f4b974f0affdd0c66 (diff)
More principled sources for enums and fields
Diffstat (limited to 'crates/ra_hir_def/src/lib.rs')
-rw-r--r--crates/ra_hir_def/src/lib.rs13
1 files changed, 12 insertions, 1 deletions
diff --git a/crates/ra_hir_def/src/lib.rs b/crates/ra_hir_def/src/lib.rs
index 3a0420da0..2edf743ab 100644
--- a/crates/ra_hir_def/src/lib.rs
+++ b/crates/ra_hir_def/src/lib.rs
@@ -20,6 +20,8 @@ pub mod generics;
20pub mod resolver; 20pub mod resolver;
21pub mod data; 21pub mod data;
22 22
23mod trace;
24
23#[cfg(test)] 25#[cfg(test)]
24mod test_db; 26mod test_db;
25#[cfg(test)] 27#[cfg(test)]
@@ -31,7 +33,7 @@ pub mod nameres;
31use std::hash::{Hash, Hasher}; 33use std::hash::{Hash, Hasher};
32 34
33use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId, Source}; 35use hir_expand::{ast_id_map::FileAstId, db::AstDatabase, AstId, HirFileId, Source};
34use ra_arena::{impl_arena_id, RawId}; 36use ra_arena::{impl_arena_id, map::ArenaMap, RawId};
35use ra_db::{salsa, CrateId, FileId}; 37use ra_db::{salsa, CrateId, FileId};
36use ra_syntax::{ast, AstNode, SyntaxNode}; 38use ra_syntax::{ast, AstNode, SyntaxNode};
37 39
@@ -550,3 +552,12 @@ impl HasSource for ConstLoc {
550 Source::new(self.ast_id.file_id(), node) 552 Source::new(self.ast_id.file_id(), node)
551 } 553 }
552} 554}
555
556pub trait HasChildSource {
557 type ChildId;
558 type Value;
559 fn child_source(
560 &self,
561 db: &impl db::DefDatabase2,
562 ) -> Source<ArenaMap<Self::ChildId, Self::Value>>;
563}