This commit is contained in:
ouz-a 2022-04-17 22:16:12 +03:00
parent 831ebfc961
commit 70e67d6f55

View File

@ -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<Statement<'_>> = 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());
}
}