aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/source_binder.rs
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-01-05 12:42:47 +0000
committerFlorian Diebold <[email protected]>2019-01-05 21:41:12 +0000
commita6f33b4ca5e70a056c60b24cb8cb3283d8209624 (patch)
treef92f6f5b9431c4047163cbec6db23c57447d8aa8 /crates/ra_hir/src/source_binder.rs
parent3e42a158787955ff9f2e81be43479dbe8f2b1bb6 (diff)
Add test for invalidation of inferred types when typing inside function
This currently fails, but should work once we have hir::Expr.
Diffstat (limited to 'crates/ra_hir/src/source_binder.rs')
-rw-r--r--crates/ra_hir/src/source_binder.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/crates/ra_hir/src/source_binder.rs b/crates/ra_hir/src/source_binder.rs
index 85bd84469..551f44d4e 100644
--- a/crates/ra_hir/src/source_binder.rs
+++ b/crates/ra_hir/src/source_binder.rs
@@ -87,6 +87,20 @@ fn module_from_source(
87 Ok(Some(Module::new(db, source_root_id, module_id)?)) 87 Ok(Some(Module::new(db, source_root_id, module_id)?))
88} 88}
89 89
90pub fn function_from_position(
91 db: &impl HirDatabase,
92 position: FilePosition,
93) -> Cancelable<Option<Function>> {
94 let file = db.source_file(position.file_id);
95 let fn_def = if let Some(f) = find_node_at_offset::<ast::FnDef>(file.syntax(), position.offset)
96 {
97 f
98 } else {
99 return Ok(None);
100 };
101 function_from_source(db, position.file_id, fn_def)
102}
103
90pub fn function_from_source( 104pub fn function_from_source(
91 db: &impl HirDatabase, 105 db: &impl HirDatabase,
92 file_id: FileId, 106 file_id: FileId,