From b49003289366411f7d5e0359af2c3de3b5b850e7 Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Fri, 19 Jul 2019 22:41:52 +0200 Subject: [PATCH] Avoid cloning Place in assign #1 --- src/librustc_mir/transform/qualify_consts.rs | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/librustc_mir/transform/qualify_consts.rs b/src/librustc_mir/transform/qualify_consts.rs index eadda7b52a164..da8304419bf23 100644 --- a/src/librustc_mir/transform/qualify_consts.rs +++ b/src/librustc_mir/transform/qualify_consts.rs @@ -865,14 +865,9 @@ impl<'a, 'tcx> Checker<'a, 'tcx> { (base, Some(proj)) => { // Catch more errors in the destination. `visit_place` also checks various // projection rules like union field access and raw pointer deref - self.visit_place( - &Place { - base: base.clone(), - projection: dest_projection.clone(), - }, - PlaceContext::MutatingUse(MutatingUseContext::Store), - location - ); + let context = PlaceContext::MutatingUse(MutatingUseContext::Store); + self.visit_place_base(base, context, location); + self.visit_projection(base, proj, context, location); dest_projection = &proj.base; }, (&PlaceBase::Static(box Static {