From 4039176ec63e5c75d76398f2debe26ac6fa59cbc Mon Sep 17 00:00:00 2001 From: Igor Aleksanov Date: Sat, 3 Oct 2020 12:48:02 +0300 Subject: Create basic support for names case checks and implement function name case check --- crates/hir_def/src/item_tree/lower.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'crates/hir_def/src/item_tree') diff --git a/crates/hir_def/src/item_tree/lower.rs b/crates/hir_def/src/item_tree/lower.rs index 3328639cf..2ffa46ac0 100644 --- a/crates/hir_def/src/item_tree/lower.rs +++ b/crates/hir_def/src/item_tree/lower.rs @@ -283,6 +283,7 @@ impl Ctx { let name = func.name()?.as_name(); let mut params = Vec::new(); + let mut param_names = Vec::new(); let mut has_self_param = false; if let Some(param_list) = func.param_list() { if let Some(self_param) = param_list.self_param() { @@ -305,6 +306,18 @@ impl Ctx { has_self_param = true; } for param in param_list.params() { + let param_name = param + .pat() + .map(|name| { + if let ast::Pat::IdentPat(ident) = name { + Some(ident.name()?.as_name()) + } else { + None + } + }) + .flatten(); + param_names.push(param_name); + let type_ref = TypeRef::from_ast_opt(&self.body_ctx, param.ty()); params.push(type_ref); } @@ -341,6 +354,7 @@ impl Ctx { has_body, is_unsafe: func.unsafe_token().is_some(), params: params.into_boxed_slice(), + param_names: param_names.into_boxed_slice(), is_varargs, ret_type, ast_id, -- cgit v1.2.3