diff options
author | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-11 18:08:00 +0000 |
---|---|---|
committer | bors[bot] <bors[bot]@users.noreply.github.com> | 2019-01-11 18:08:00 +0000 |
commit | 738c958a044361dc84a0f27e57b40f66a5815990 (patch) | |
tree | c57734dc82350c2d853f557a40f7aafdc7470bdf /crates/ra_hir/src/code_model_impl.rs | |
parent | 2d3940d0ab862dbfaed4f4c844faaca6a38e31e9 (diff) | |
parent | f193fbcbae0783953cfaa88aaec6a8d4e1255007 (diff) |
Merge #498
498: actually produce missing def kinds r=matklad a=matklad
Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/code_model_impl.rs')
-rw-r--r-- | crates/ra_hir/src/code_model_impl.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/crates/ra_hir/src/code_model_impl.rs b/crates/ra_hir/src/code_model_impl.rs index 1f28fab74..0cea9f7b6 100644 --- a/crates/ra_hir/src/code_model_impl.rs +++ b/crates/ra_hir/src/code_model_impl.rs | |||
@@ -1,3 +1,18 @@ | |||
1 | mod krate; // `crate` is invalid ident :( | 1 | mod krate; // `crate` is invalid ident :( |
2 | mod module; | 2 | mod module; |
3 | pub(crate) mod function; | 3 | pub(crate) mod function; |
4 | |||
5 | use ra_syntax::{AstNode, TreeArc}; | ||
6 | |||
7 | use crate::{HirDatabase, DefId, HirFileId}; | ||
8 | |||
9 | pub(crate) fn def_id_to_ast<N: AstNode>( | ||
10 | db: &impl HirDatabase, | ||
11 | def_id: DefId, | ||
12 | ) -> (HirFileId, TreeArc<N>) { | ||
13 | let (file_id, syntax) = def_id.source(db); | ||
14 | let ast = N::cast(&syntax) | ||
15 | .unwrap_or_else(|| panic!("def points to wrong source {:?} {:?}", def_id, syntax)) | ||
16 | .to_owned(); | ||
17 | (file_id, ast) | ||
18 | } | ||