diff options
Diffstat (limited to 'crates/ra_hir/src/ty.rs')
-rw-r--r-- | crates/ra_hir/src/ty.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index 0592e4a63..4ebd44d27 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs | |||
@@ -381,7 +381,11 @@ pub fn type_for_fn(db: &impl HirDatabase, f: Function) -> Cancelable<Ty> { | |||
381 | .collect() | 381 | .collect() |
382 | }) | 382 | }) |
383 | .unwrap_or_else(|| Ok(Vec::new()))?; | 383 | .unwrap_or_else(|| Ok(Vec::new()))?; |
384 | let output = Ty::from_ast_opt(db, &module, node.ret_type().and_then(|rt| rt.type_ref()))?; | 384 | let output = if let Some(type_ref) = node.ret_type().and_then(|rt| rt.type_ref()) { |
385 | Ty::from_ast(db, &module, type_ref)? | ||
386 | } else { | ||
387 | Ty::unit() | ||
388 | }; | ||
385 | let sig = FnSig { input, output }; | 389 | let sig = FnSig { input, output }; |
386 | Ok(Ty::FnPtr(Arc::new(sig))) | 390 | Ok(Ty::FnPtr(Arc::new(sig))) |
387 | } | 391 | } |