From 18d5f821480803811f3f7ef866ef0ef8ae9bf9c1 Mon Sep 17 00:00:00 2001 From: Matthew Jasper Date: Sun, 29 Jul 2018 18:02:13 +0100 Subject: [PATCH] Change order of copy and borrow to avoid conflict Note that the first argument is `self as &mut dyn Delegate`, so this isn't allowed with two-phase borrows. --- src/librustc_passes/rvalue_promotion.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/librustc_passes/rvalue_promotion.rs b/src/librustc_passes/rvalue_promotion.rs index d223dc2a353..114fd8754a2 100644 --- a/src/librustc_passes/rvalue_promotion.rs +++ b/src/librustc_passes/rvalue_promotion.rs @@ -248,7 +248,8 @@ impl<'a, 'tcx> CheckCrateVisitor<'a, 'tcx> { let tcx = self.tcx; let param_env = self.param_env; let region_scope_tree = self.tcx.region_scope_tree(item_def_id); - euv::ExprUseVisitor::new(self, tcx, param_env, ®ion_scope_tree, self.tables, None) + let tables = self.tables; + euv::ExprUseVisitor::new(self, tcx, param_env, ®ion_scope_tree, tables, None) .consume_body(body); let body_promotable = self.check_expr(&body.value);