mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 07:14:28 +00:00
fat vec
This commit is contained in:
parent
831ebfc961
commit
70e67d6f55
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user