diff options
Diffstat (limited to 'crates/ra_hir_def/src')
-rw-r--r-- | crates/ra_hir_def/src/type_ref.rs | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/crates/ra_hir_def/src/type_ref.rs b/crates/ra_hir_def/src/type_ref.rs index 102fdb13d..01cc392db 100644 --- a/crates/ra_hir_def/src/type_ref.rs +++ b/crates/ra_hir_def/src/type_ref.rs | |||
@@ -93,7 +93,11 @@ impl TypeRef { | |||
93 | } | 93 | } |
94 | ast::TypeRef::PlaceholderType(_inner) => TypeRef::Placeholder, | 94 | ast::TypeRef::PlaceholderType(_inner) => TypeRef::Placeholder, |
95 | ast::TypeRef::FnPointerType(inner) => { | 95 | ast::TypeRef::FnPointerType(inner) => { |
96 | let ret_ty = TypeRef::from_ast_opt(inner.ret_type().and_then(|rt| rt.type_ref())); | 96 | let ret_ty = inner |
97 | .ret_type() | ||
98 | .and_then(|rt| rt.type_ref()) | ||
99 | .map(TypeRef::from_ast) | ||
100 | .unwrap_or_else(|| TypeRef::Tuple(Vec::new())); | ||
97 | let mut params = if let Some(pl) = inner.param_list() { | 101 | let mut params = if let Some(pl) = inner.param_list() { |
98 | pl.params().map(|p| p.ascribed_type()).map(TypeRef::from_ast_opt).collect() | 102 | pl.params().map(|p| p.ascribed_type()).map(TypeRef::from_ast_opt).collect() |
99 | } else { | 103 | } else { |