From 70e67d6f558fbde67c6b5244fbc0e15fa646bb1c Mon Sep 17 00:00:00 2001 From: ouz-a Date: Sun, 17 Apr 2022 22:16:12 +0300 Subject: [PATCH] fat vec --- compiler/rustc_middle/src/mir/patch.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/compiler/rustc_middle/src/mir/patch.rs b/compiler/rustc_middle/src/mir/patch.rs index b30929cd316..f6bb2ec573c 100644 --- a/compiler/rustc_middle/src/mir/patch.rs +++ b/compiler/rustc_middle/src/mir/patch.rs @@ -141,8 +141,7 @@ impl<'tcx> MirPatch<'tcx> { let mut delta = 0; let mut last_bb = START_BLOCK; - let mut terminator_targets = Vec::new(); - let mut statements: Vec> = Vec::new(); + let mut stmts_and_targets: Vec<(Statement<'_>, BasicBlock)> = Vec::new(); for (mut loc, stmt) in new_statements { if loc.block != last_bb { delta = 0; @@ -159,8 +158,8 @@ impl<'tcx> MirPatch<'tcx> { let successors = term.successors().clone(); for i in successors { - statements.push(Statement { source_info, kind: stmt.clone() }); - terminator_targets.push(i.clone()); + stmts_and_targets + .push((Statement { source_info, kind: stmt.clone() }, i.clone())); } delta += 1; continue; @@ -172,9 +171,8 @@ impl<'tcx> MirPatch<'tcx> { delta += 1; } - for target in terminator_targets.iter().rev() { - let stmt = statements.pop().unwrap(); - body[*target].statements.insert(0, stmt); + for (stmt, target) in stmts_and_targets.iter().rev() { + body[*target].statements.insert(0, stmt.clone()); } }