aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-11-15 20:25:53 +0000
committerGitHub <[email protected]>2019-11-15 20:25:53 +0000
commit920848940ae7b79b1655ac48a9e2c1694b9e06c8 (patch)
treecd0d39cd13ae0a9ee7299db575bea1a854cc0102 /crates/ra_hir
parent86469d4195e7aeb93ae420d0c073593bfccc97f0 (diff)
parent4c90b7e2ecd03e739a3c92bbe5afd4c90fe2812d (diff)
Merge #2266
2266: Sourcify some things r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
Diffstat (limited to 'crates/ra_hir')
-rw-r--r--crates/ra_hir/src/from_source.rs5
-rw-r--r--crates/ra_hir/src/source_binder.rs15
2 files changed, 9 insertions, 11 deletions
diff --git a/crates/ra_hir/src/from_source.rs b/crates/ra_hir/src/from_source.rs
index ec56dfa6a..79152a57c 100644
--- a/crates/ra_hir/src/from_source.rs
+++ b/crates/ra_hir/src/from_source.rs
@@ -196,9 +196,8 @@ where
196 N: AstNode, 196 N: AstNode,
197 DEF: AstItemDef<N>, 197 DEF: AstItemDef<N>,
198{ 198{
199 let module_src = 199 let module_src = ModuleSource::from_child_node(db, src.as_ref().map(|it| it.syntax()));
200 crate::ModuleSource::from_child_node(db, src.file_id.original_file(db), &src.ast.syntax()); 200 let module = Module::from_definition(db, Source::new(src.file_id, module_src))?;
201 let module = Module::from_definition(db, Source { file_id: src.file_id, ast: module_src })?;
202 let ctx = LocationCtx::new(db, module.id, src.file_id); 201 let ctx = LocationCtx::new(db, module.id, src.file_id);
203 Some(DEF::from_ast(ctx, &src.ast)) 202 Some(DEF::from_ast(ctx, &src.ast))
204} 203}
diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs
index 662d3f880..f08827ed3 100644
--- a/crates/ra_hir/src/source_binder.rs
+++ b/crates/ra_hir/src/source_binder.rs
@@ -56,7 +56,7 @@ fn try_get_resolver_for_node(
56 }, 56 },
57 _ => { 57 _ => {
58 if node.kind() == FN_DEF || node.kind() == CONST_DEF || node.kind() == STATIC_DEF { 58 if node.kind() == FN_DEF || node.kind() == CONST_DEF || node.kind() == STATIC_DEF {
59 Some(def_with_body_from_child_node(db, file_id, node)?.resolver(db)) 59 Some(def_with_body_from_child_node(db, Source::new(file_id.into(), node))?.resolver(db))
60 } else { 60 } else {
61 // FIXME add missing cases 61 // FIXME add missing cases
62 None 62 None
@@ -68,14 +68,13 @@ fn try_get_resolver_for_node(
68 68
69fn def_with_body_from_child_node( 69fn def_with_body_from_child_node(
70 db: &impl HirDatabase, 70 db: &impl HirDatabase,
71 file_id: FileId, 71 child: Source<&SyntaxNode>,
72 node: &SyntaxNode,
73) -> Option<DefWithBody> { 72) -> Option<DefWithBody> {
74 let src = crate::ModuleSource::from_child_node(db, file_id, node); 73 let module_source = crate::ModuleSource::from_child_node(db, child);
75 let module = Module::from_definition(db, crate::Source { file_id: file_id.into(), ast: src })?; 74 let module = Module::from_definition(db, Source::new(child.file_id, module_source))?;
76 let ctx = LocationCtx::new(db, module.id, file_id.into()); 75 let ctx = LocationCtx::new(db, module.id, child.file_id);
77 76
78 node.ancestors().find_map(|node| { 77 child.ast.ancestors().find_map(|node| {
79 match_ast! { 78 match_ast! {
80 match node { 79 match node {
81 ast::FnDef(def) => { Some(Function {id: ctx.to_def(&def) }.into()) }, 80 ast::FnDef(def) => { Some(Function {id: ctx.to_def(&def) }.into()) },
@@ -142,7 +141,7 @@ impl SourceAnalyzer {
142 node: &SyntaxNode, 141 node: &SyntaxNode,
143 offset: Option<TextUnit>, 142 offset: Option<TextUnit>,
144 ) -> SourceAnalyzer { 143 ) -> SourceAnalyzer {
145 let def_with_body = def_with_body_from_child_node(db, file_id, node); 144 let def_with_body = def_with_body_from_child_node(db, Source::new(file_id.into(), node));
146 if let Some(def) = def_with_body { 145 if let Some(def) = def_with_body {
147 let source_map = def.body_source_map(db); 146 let source_map = def.body_source_map(db);
148 let scopes = def.expr_scopes(db); 147 let scopes = def.expr_scopes(db);