diff options
Diffstat (limited to 'crates/ra_hir_def/src/item_tree/lower.rs')
-rw-r--r-- | crates/ra_hir_def/src/item_tree/lower.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/crates/ra_hir_def/src/item_tree/lower.rs b/crates/ra_hir_def/src/item_tree/lower.rs index 450ef8798..89ad91d37 100644 --- a/crates/ra_hir_def/src/item_tree/lower.rs +++ b/crates/ra_hir_def/src/item_tree/lower.rs | |||
@@ -283,7 +283,7 @@ impl Ctx { | |||
283 | let name = func.name()?.as_name(); | 283 | let name = func.name()?.as_name(); |
284 | 284 | ||
285 | let mut params = Vec::new(); | 285 | let mut params = Vec::new(); |
286 | let mut has_self_param = false; | 286 | let mut func_self_param = None; |
287 | if let Some(param_list) = func.param_list() { | 287 | if let Some(param_list) = func.param_list() { |
288 | if let Some(self_param) = param_list.self_param() { | 288 | if let Some(self_param) = param_list.self_param() { |
289 | let self_type = match self_param.ty() { | 289 | let self_type = match self_param.ty() { |
@@ -302,7 +302,10 @@ impl Ctx { | |||
302 | } | 302 | } |
303 | }; | 303 | }; |
304 | params.push(self_type); | 304 | params.push(self_type); |
305 | has_self_param = true; | 305 | func_self_param = Some(SelfParam { |
306 | is_ref: self_param.amp_token().is_some(), | ||
307 | is_mut: self_param.mut_token().is_some(), | ||
308 | }); | ||
306 | } | 309 | } |
307 | for param in param_list.params() { | 310 | for param in param_list.params() { |
308 | let type_ref = TypeRef::from_ast_opt(&self.body_ctx, param.ty()); | 311 | let type_ref = TypeRef::from_ast_opt(&self.body_ctx, param.ty()); |
@@ -335,7 +338,7 @@ impl Ctx { | |||
335 | name, | 338 | name, |
336 | visibility, | 339 | visibility, |
337 | generic_params: GenericParamsId::EMPTY, | 340 | generic_params: GenericParamsId::EMPTY, |
338 | has_self_param, | 341 | self_param: func_self_param, |
339 | is_unsafe: func.unsafe_token().is_some(), | 342 | is_unsafe: func.unsafe_token().is_some(), |
340 | params: params.into_boxed_slice(), | 343 | params: params.into_boxed_slice(), |
341 | is_varargs, | 344 | is_varargs, |