diff options
| author | Nicholas Nethercote <n.nethercote@gmail.com> | 2025-02-18 13:40:58 +1100 |
|---|---|---|
| committer | Nicholas Nethercote <n.nethercote@gmail.com> | 2025-02-18 13:43:43 +1100 |
| commit | 04eeda47abd07a5ba6f3f93e586ecf75d5574545 (patch) | |
| tree | fdf63954d6f8c7b6640ca8b21bfb0fb10bf1e0a8 /compiler/rustc_mir_transform | |
| parent | 69f5e342bf179c991e325587fb9b16a75851b372 (diff) | |
Inline and replace `Statement::replace_nop`.
It has a single call site, and doesn't seem worth having as an API function.
Diffstat (limited to 'compiler/rustc_mir_transform')
| -rw-r--r-- | compiler/rustc_mir_transform/src/single_use_consts.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/rustc_mir_transform/src/single_use_consts.rs b/compiler/rustc_mir_transform/src/single_use_consts.rs index c5e951eb8b2..02caa92ad3f 100644 --- a/compiler/rustc_mir_transform/src/single_use_consts.rs +++ b/compiler/rustc_mir_transform/src/single_use_consts.rs @@ -48,9 +48,11 @@ impl<'tcx> crate::MirPass<'tcx> for SingleUseConsts { // We're only changing an operand, not the terminator kinds or successors let basic_blocks = body.basic_blocks.as_mut_preserves_cfg(); - let init_statement = - basic_blocks[init_loc.block].statements[init_loc.statement_index].replace_nop(); - let StatementKind::Assign(place_and_rvalue) = init_statement.kind else { + let init_statement_kind = std::mem::replace( + &mut basic_blocks[init_loc.block].statements[init_loc.statement_index].kind, + StatementKind::Nop, + ); + let StatementKind::Assign(place_and_rvalue) = init_statement_kind else { bug!("No longer an assign?"); }; let (place, rvalue) = *place_and_rvalue; |
