Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/body/lower.rs')
| -rw-r--r-- | crates/hir-def/src/body/lower.rs | 51 |
1 files changed, 24 insertions, 27 deletions
diff --git a/crates/hir-def/src/body/lower.rs b/crates/hir-def/src/body/lower.rs index 4625ca7fc1..5fc4867bfa 100644 --- a/crates/hir-def/src/body/lower.rs +++ b/crates/hir-def/src/body/lower.rs @@ -776,11 +776,10 @@ impl ExprCollector<'_> { None => self.collect_expr_opt(e.condition()), }; - let break_expr = - self.alloc_expr(Expr::Break { expr: None, label: None }, syntax_ptr.clone()); + let break_expr = self.alloc_expr(Expr::Break { expr: None, label: None }, syntax_ptr); let if_expr = self.alloc_expr( Expr::If { condition, then_branch: body, else_branch: Some(break_expr) }, - syntax_ptr.clone(), + syntax_ptr, ); self.alloc_expr(Expr::Loop { body: if_expr, label }, syntax_ptr) } @@ -811,19 +810,19 @@ impl ExprCollector<'_> { return self.alloc_expr(Expr::Missing, syntax_ptr); }; let head = self.collect_expr_opt(e.iterable()); - let into_iter_fn_expr = self.alloc_expr(Expr::Path(into_iter_fn), syntax_ptr.clone()); + let into_iter_fn_expr = self.alloc_expr(Expr::Path(into_iter_fn), syntax_ptr); let iterator = self.alloc_expr( Expr::Call { callee: into_iter_fn_expr, args: Box::new([head]), is_assignee_expr: false, }, - syntax_ptr.clone(), + syntax_ptr, ); let none_arm = MatchArm { pat: self.alloc_pat_desugared(Pat::Path(Box::new(option_none))), guard: None, - expr: self.alloc_expr(Expr::Break { expr: None, label: None }, syntax_ptr.clone()), + expr: self.alloc_expr(Expr::Break { expr: None, label: None }, syntax_ptr), }; let some_pat = Pat::TupleStruct { path: Some(Box::new(option_some)), @@ -839,27 +838,25 @@ impl ExprCollector<'_> { }), }; let iter_name = Name::generate_new_name(); - let iter_expr = - self.alloc_expr(Expr::Path(Path::from(iter_name.clone())), syntax_ptr.clone()); + let iter_expr = self.alloc_expr(Expr::Path(Path::from(iter_name.clone())), syntax_ptr); let iter_expr_mut = self.alloc_expr( Expr::Ref { expr: iter_expr, rawness: Rawness::Ref, mutability: Mutability::Mut }, - syntax_ptr.clone(), + syntax_ptr, ); - let iter_next_fn_expr = self.alloc_expr(Expr::Path(iter_next_fn), syntax_ptr.clone()); + let iter_next_fn_expr = self.alloc_expr(Expr::Path(iter_next_fn), syntax_ptr); let iter_next_expr = self.alloc_expr( Expr::Call { callee: iter_next_fn_expr, args: Box::new([iter_expr_mut]), is_assignee_expr: false, }, - syntax_ptr.clone(), + syntax_ptr, ); let loop_inner = self.alloc_expr( Expr::Match { expr: iter_next_expr, arms: Box::new([none_arm, some_arm]) }, - syntax_ptr.clone(), + syntax_ptr, ); - let loop_outer = - self.alloc_expr(Expr::Loop { body: loop_inner, label }, syntax_ptr.clone()); + let loop_outer = self.alloc_expr(Expr::Loop { body: loop_inner, label }, syntax_ptr); let iter_binding = self.alloc_binding(iter_name, BindingAnnotation::Mutable); let iter_pat = self.alloc_pat_desugared(Pat::Bind { id: iter_binding, subpat: None }); self.add_definition_to_binding(iter_binding, iter_pat); @@ -868,7 +865,7 @@ impl ExprCollector<'_> { expr: iterator, arms: Box::new([MatchArm { pat: iter_pat, guard: None, expr: loop_outer }]), }, - syntax_ptr.clone(), + syntax_ptr, ) } @@ -896,10 +893,10 @@ impl ExprCollector<'_> { return self.alloc_expr(Expr::Missing, syntax_ptr); }; let operand = self.collect_expr_opt(e.expr()); - let try_branch = self.alloc_expr(Expr::Path(try_branch), syntax_ptr.clone()); + let try_branch = self.alloc_expr(Expr::Path(try_branch), syntax_ptr); let expr = self.alloc_expr( Expr::Call { callee: try_branch, args: Box::new([operand]), is_assignee_expr: false }, - syntax_ptr.clone(), + syntax_ptr, ); let continue_name = Name::generate_new_name(); let continue_binding = @@ -914,7 +911,7 @@ impl ExprCollector<'_> { ellipsis: None, }), guard: None, - expr: self.alloc_expr(Expr::Path(Path::from(continue_name)), syntax_ptr.clone()), + expr: self.alloc_expr(Expr::Path(Path::from(continue_name)), syntax_ptr), }; let break_name = Name::generate_new_name(); let break_binding = self.alloc_binding(break_name.clone(), BindingAnnotation::Unannotated); @@ -928,18 +925,18 @@ impl ExprCollector<'_> { }), guard: None, expr: { - let it = self.alloc_expr(Expr::Path(Path::from(break_name)), syntax_ptr.clone()); - let callee = self.alloc_expr(Expr::Path(try_from_residual), syntax_ptr.clone()); + let it = self.alloc_expr(Expr::Path(Path::from(break_name)), syntax_ptr); + let callee = self.alloc_expr(Expr::Path(try_from_residual), syntax_ptr); let result = self.alloc_expr( Expr::Call { callee, args: Box::new([it]), is_assignee_expr: false }, - syntax_ptr.clone(), + syntax_ptr, ); self.alloc_expr( match self.current_try_block_label { Some(label) => Expr::Break { expr: Some(result), label: Some(label) }, None => Expr::Return { expr: Some(result) }, }, - syntax_ptr.clone(), + syntax_ptr, ) }, }; @@ -1847,8 +1844,8 @@ impl ExprCollector<'_> { flags as u128, Some(BuiltinUint::U32), ))); - let precision = self.make_count(&precision, argmap); - let width = self.make_count(&width, argmap); + let precision = self.make_count(precision, argmap); + let width = self.make_count(width, argmap); let format_placeholder_new = { let format_placeholder_new = @@ -1994,7 +1991,7 @@ impl ExprCollector<'_> { fn alloc_expr(&mut self, expr: Expr, ptr: ExprPtr) -> ExprId { let src = self.expander.in_file(ptr); let id = self.body.exprs.alloc(expr); - self.source_map.expr_map_back.insert(id, src.clone()); + self.source_map.expr_map_back.insert(id, src); self.source_map.expr_map.insert(src, id); id } @@ -2022,7 +2019,7 @@ impl ExprCollector<'_> { fn alloc_pat(&mut self, pat: Pat, ptr: PatPtr) -> PatId { let src = self.expander.in_file(ptr); let id = self.body.pats.alloc(pat); - self.source_map.pat_map_back.insert(id, src.clone()); + self.source_map.pat_map_back.insert(id, src); self.source_map.pat_map.insert(src, id); id } @@ -2037,7 +2034,7 @@ impl ExprCollector<'_> { fn alloc_label(&mut self, label: Label, ptr: LabelPtr) -> LabelId { let src = self.expander.in_file(ptr); let id = self.body.labels.alloc(label); - self.source_map.label_map_back.insert(id, src.clone()); + self.source_map.label_map_back.insert(id, src); self.source_map.label_map.insert(src, id); id } |