give some unwind-related terminators a more clear name

This commit is contained in:
Ralf Jung 2023-08-19 13:10:25 +02:00
parent c0b6ffaaea
commit 818ec8e23a
39 changed files with 123 additions and 117 deletions

View File

@ -159,7 +159,9 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
self.mutate_place(location, *resume_arg, Deep); self.mutate_place(location, *resume_arg, Deep);
} }
TerminatorKind::Resume | TerminatorKind::Return | TerminatorKind::GeneratorDrop => { TerminatorKind::UnwindResume
| TerminatorKind::Return
| TerminatorKind::GeneratorDrop => {
// Invalidate all borrows of local places // Invalidate all borrows of local places
let borrow_set = self.borrow_set; let borrow_set = self.borrow_set;
let start = self.location_table.start_index(location); let start = self.location_table.start_index(location);
@ -200,7 +202,7 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
} }
} }
TerminatorKind::Goto { target: _ } TerminatorKind::Goto { target: _ }
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::FalseEdge { real_target: _, imaginary_target: _ } | TerminatorKind::FalseEdge { real_target: _, imaginary_target: _ }
| TerminatorKind::FalseUnwind { real_target: _, unwind: _ } => { | TerminatorKind::FalseUnwind { real_target: _, unwind: _ } => {

View File

@ -770,9 +770,9 @@ fn visit_terminator_before_primary_effect(
} }
TerminatorKind::Goto { target: _ } TerminatorKind::Goto { target: _ }
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::FalseEdge { real_target: _, imaginary_target: _ } | TerminatorKind::FalseEdge { real_target: _, imaginary_target: _ }
@ -803,7 +803,9 @@ fn visit_terminator_after_primary_effect(
} }
} }
TerminatorKind::Resume | TerminatorKind::Return | TerminatorKind::GeneratorDrop => { TerminatorKind::UnwindResume
| TerminatorKind::Return
| TerminatorKind::GeneratorDrop => {
// Returning from the function implicitly kills storage for all locals and statics. // Returning from the function implicitly kills storage for all locals and statics.
// Often, the storage will already have been killed by an explicit // Often, the storage will already have been killed by an explicit
// StorageDead, but we don't always emit those (notably on unwind paths), // StorageDead, but we don't always emit those (notably on unwind paths),
@ -815,7 +817,7 @@ fn visit_terminator_after_primary_effect(
} }
} }
TerminatorKind::Terminate TerminatorKind::UnwindTerminate
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }
| TerminatorKind::Call { .. } | TerminatorKind::Call { .. }
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }

View File

@ -1333,8 +1333,8 @@ fn check_terminator(
debug!("terminator kind: {:?}", term.kind); debug!("terminator kind: {:?}", term.kind);
match &term.kind { match &term.kind {
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
@ -1608,12 +1608,12 @@ fn check_iscleanup(&mut self, body: &Body<'tcx>, block_data: &BasicBlockData<'tc
self.assert_iscleanup(body, block_data, *target, is_cleanup); self.assert_iscleanup(body, block_data, *target, is_cleanup);
} }
} }
TerminatorKind::Resume => { TerminatorKind::UnwindResume => {
if !is_cleanup { if !is_cleanup {
span_mirbug!(self, block_data, "resume on non-cleanup block!") span_mirbug!(self, block_data, "resume on non-cleanup block!")
} }
} }
TerminatorKind::Terminate => { TerminatorKind::UnwindTerminate => {
if !is_cleanup { if !is_cleanup {
span_mirbug!(self, block_data, "abort on non-cleanup block!") span_mirbug!(self, block_data, "abort on non-cleanup block!")
} }

View File

@ -474,10 +474,10 @@ fn codegen_fn_body(fx: &mut FunctionCx<'_, '_, '_>, start_block: Block) {
*destination, *destination,
); );
} }
TerminatorKind::Terminate => { TerminatorKind::UnwindTerminate => {
codegen_panic_cannot_unwind(fx, source_info); codegen_panic_cannot_unwind(fx, source_info);
} }
TerminatorKind::Resume => { TerminatorKind::UnwindResume => {
// FIXME implement unwinding // FIXME implement unwinding
fx.bcx.ins().trap(TrapCode::UnreachableCodeReached); fx.bcx.ins().trap(TrapCode::UnreachableCodeReached);
} }

View File

@ -550,8 +550,8 @@ pub(crate) fn mir_operand_get_const_val<'tcx>(
match &bb_data.terminator().kind { match &bb_data.terminator().kind {
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }

View File

@ -284,8 +284,8 @@ fn discover_masters<'tcx>(
for (bb, data) in mir.basic_blocks.iter_enumerated() { for (bb, data) in mir.basic_blocks.iter_enumerated() {
match data.terminator().kind { match data.terminator().kind {
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Unreachable | TerminatorKind::Unreachable

View File

@ -1224,12 +1224,12 @@ fn codegen_terminator(
self.set_debug_loc(bx, terminator.source_info); self.set_debug_loc(bx, terminator.source_info);
match terminator.kind { match terminator.kind {
mir::TerminatorKind::Resume => { mir::TerminatorKind::UnwindResume => {
self.codegen_resume_terminator(helper, bx); self.codegen_resume_terminator(helper, bx);
MergingSucc::False MergingSucc::False
} }
mir::TerminatorKind::Terminate => { mir::TerminatorKind::UnwindTerminate => {
self.codegen_terminate_terminator(helper, bx, terminator); self.codegen_terminate_terminator(helper, bx, terminator);
MergingSucc::False MergingSucc::False
} }

View File

@ -196,7 +196,7 @@ pub(super) fn eval_terminator(
} }
} }
Terminate => { UnwindTerminate => {
// FIXME: maybe should call `panic_no_unwind` lang item instead. // FIXME: maybe should call `panic_no_unwind` lang item instead.
M::abort(self, "panic in a function that cannot unwind".to_owned())?; M::abort(self, "panic in a function that cannot unwind".to_owned())?;
} }
@ -204,7 +204,7 @@ pub(super) fn eval_terminator(
// When we encounter Resume, we've finished unwinding // When we encounter Resume, we've finished unwinding
// cleanup for the current stack frame. We pop it in order // cleanup for the current stack frame. We pop it in order
// to continue unwinding the next frame // to continue unwinding the next frame
Resume => { UnwindResume => {
trace!("unwinding: resuming from cleanup"); trace!("unwinding: resuming from cleanup");
// By definition, a Resume terminator means // By definition, a Resume terminator means
// that we're unwinding // that we're unwinding

View File

@ -1037,7 +1037,7 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
self.check_op(ops::Generator(hir::GeneratorKind::Gen)) self.check_op(ops::Generator(hir::GeneratorKind::Gen))
} }
TerminatorKind::Terminate => { TerminatorKind::UnwindTerminate => {
// Cleanup blocks are skipped for const checking (see `visit_basic_block_data`). // Cleanup blocks are skipped for const checking (see `visit_basic_block_data`).
span_bug!(self.span, "`Terminate` terminator outside of cleanup block") span_bug!(self.span, "`Terminate` terminator outside of cleanup block")
} }
@ -1046,7 +1046,7 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
| TerminatorKind::FalseEdge { .. } | TerminatorKind::FalseEdge { .. }
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Unreachable => {} | TerminatorKind::Unreachable => {}

View File

@ -106,7 +106,7 @@ fn visit_terminator(&mut self, terminator: &mir::Terminator<'tcx>, location: Loc
} }
} }
mir::TerminatorKind::Terminate mir::TerminatorKind::UnwindTerminate
| mir::TerminatorKind::Call { .. } | mir::TerminatorKind::Call { .. }
| mir::TerminatorKind::Assert { .. } | mir::TerminatorKind::Assert { .. }
| mir::TerminatorKind::FalseEdge { .. } | mir::TerminatorKind::FalseEdge { .. }
@ -114,7 +114,7 @@ fn visit_terminator(&mut self, terminator: &mir::Terminator<'tcx>, location: Loc
| mir::TerminatorKind::GeneratorDrop | mir::TerminatorKind::GeneratorDrop
| mir::TerminatorKind::Goto { .. } | mir::TerminatorKind::Goto { .. }
| mir::TerminatorKind::InlineAsm { .. } | mir::TerminatorKind::InlineAsm { .. }
| mir::TerminatorKind::Resume | mir::TerminatorKind::UnwindResume
| mir::TerminatorKind::Return | mir::TerminatorKind::Return
| mir::TerminatorKind::SwitchInt { .. } | mir::TerminatorKind::SwitchInt { .. }
| mir::TerminatorKind::Unreachable | mir::TerminatorKind::Unreachable

View File

@ -492,19 +492,19 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
); );
} }
} }
TerminatorKind::Resume => { TerminatorKind::UnwindResume => {
let bb = location.block; let bb = location.block;
if !self.body.basic_blocks[bb].is_cleanup { if !self.body.basic_blocks[bb].is_cleanup {
self.fail(location, "Cannot `Resume` from non-cleanup basic block") self.fail(location, "Cannot `UnwindResume` from non-cleanup basic block")
} }
if !self.can_unwind { if !self.can_unwind {
self.fail(location, "Cannot `Resume` in a function that cannot unwind") self.fail(location, "Cannot `UnwindResume` in a function that cannot unwind")
} }
} }
TerminatorKind::Terminate => { TerminatorKind::UnwindTerminate => {
let bb = location.block; let bb = location.block;
if !self.body.basic_blocks[bb].is_cleanup { if !self.body.basic_blocks[bb].is_cleanup {
self.fail(location, "Cannot `Terminate` from non-cleanup basic block") self.fail(location, "Cannot `UnwindTerminate` from non-cleanup basic block")
} }
} }
TerminatorKind::Return => { TerminatorKind::Return => {
@ -1232,8 +1232,8 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::InlineAsm { .. } | TerminatorKind::InlineAsm { .. }
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable => {} | TerminatorKind::Unreachable => {}
} }

View File

@ -35,7 +35,7 @@ pub fn new(body: &Body<'tcx>) -> Self {
for (bb, block) in body.basic_blocks.iter_enumerated() { for (bb, block) in body.basic_blocks.iter_enumerated() {
// Check if we already have a resume block // Check if we already have a resume block
if let TerminatorKind::Resume = block.terminator().kind && block.statements.is_empty() { if let TerminatorKind::UnwindResume = block.terminator().kind && block.statements.is_empty() {
result.resume_block = Some(bb); result.resume_block = Some(bb);
continue; continue;
} }
@ -50,7 +50,7 @@ pub fn new(body: &Body<'tcx>) -> Self {
} }
// Check if we already have a terminate block // Check if we already have a terminate block
if let TerminatorKind::Terminate = block.terminator().kind && block.statements.is_empty() { if let TerminatorKind::UnwindTerminate = block.terminator().kind && block.statements.is_empty() {
result.terminate_block = Some(bb); result.terminate_block = Some(bb);
continue; continue;
} }
@ -68,7 +68,7 @@ pub fn resume_block(&mut self) -> BasicBlock {
statements: vec![], statements: vec![],
terminator: Some(Terminator { terminator: Some(Terminator {
source_info: SourceInfo::outermost(self.body_span), source_info: SourceInfo::outermost(self.body_span),
kind: TerminatorKind::Resume, kind: TerminatorKind::UnwindResume,
}), }),
is_cleanup: true, is_cleanup: true,
}); });
@ -102,7 +102,7 @@ pub fn terminate_block(&mut self) -> BasicBlock {
statements: vec![], statements: vec![],
terminator: Some(Terminator { terminator: Some(Terminator {
source_info: SourceInfo::outermost(self.body_span), source_info: SourceInfo::outermost(self.body_span),
kind: TerminatorKind::Terminate, kind: TerminatorKind::UnwindTerminate,
}), }),
is_cleanup: true, is_cleanup: true,
}); });

View File

@ -262,8 +262,8 @@ pub fn terminator_kind_name(term: &Terminator<'_>) -> &'static str {
match term.kind { match term.kind {
Goto { .. } => "Goto", Goto { .. } => "Goto",
SwitchInt { .. } => "SwitchInt", SwitchInt { .. } => "SwitchInt",
Resume => "Resume", UnwindResume => "Resume",
Terminate => "Terminate", UnwindTerminate => "Terminate",
Return => "Return", Return => "Return",
Unreachable => "Unreachable", Unreachable => "Unreachable",
Drop { .. } => "Drop", Drop { .. } => "Drop",

View File

@ -593,13 +593,13 @@ pub enum TerminatorKind<'tcx> {
/// ///
/// Only permitted in cleanup blocks. `Resume` is not permitted with `-C unwind=abort` after /// Only permitted in cleanup blocks. `Resume` is not permitted with `-C unwind=abort` after
/// deaggregation runs. /// deaggregation runs.
Resume, UnwindResume,
/// Indicates that the landing pad is finished and that the process should terminate. /// Indicates that the landing pad is finished and that the process should terminate.
/// ///
/// Used to prevent unwinding for foreign items or with `-C unwind=abort`. Only permitted in /// Used to prevent unwinding for foreign items or with `-C unwind=abort`. Only permitted in
/// cleanup blocks. /// cleanup blocks.
Terminate, UnwindTerminate,
/// Returns from the function. /// Returns from the function.
/// ///
@ -790,8 +790,8 @@ pub const fn name(&self) -> &'static str {
match self { match self {
TerminatorKind::Goto { .. } => "Goto", TerminatorKind::Goto { .. } => "Goto",
TerminatorKind::SwitchInt { .. } => "SwitchInt", TerminatorKind::SwitchInt { .. } => "SwitchInt",
TerminatorKind::Resume => "Resume", TerminatorKind::UnwindResume => "Resume",
TerminatorKind::Terminate => "Terminate", TerminatorKind::UnwindTerminate => "Terminate",
TerminatorKind::Return => "Return", TerminatorKind::Return => "Return",
TerminatorKind::Unreachable => "Unreachable", TerminatorKind::Unreachable => "Unreachable",
TerminatorKind::Drop { .. } => "Drop", TerminatorKind::Drop { .. } => "Drop",

View File

@ -155,8 +155,8 @@ pub fn successors(&self) -> Successors<'_> {
| InlineAsm { destination: Some(t), unwind: _, .. } => { | InlineAsm { destination: Some(t), unwind: _, .. } => {
Some(t).into_iter().chain((&[]).into_iter().copied()) Some(t).into_iter().chain((&[]).into_iter().copied())
} }
Resume UnwindResume
| Terminate | UnwindTerminate
| GeneratorDrop | GeneratorDrop
| Return | Return
| Unreachable | Unreachable
@ -197,8 +197,8 @@ pub fn successors_mut(&mut self) -> SuccessorsMut<'_> {
| InlineAsm { destination: Some(ref mut t), unwind: _, .. } => { | InlineAsm { destination: Some(ref mut t), unwind: _, .. } => {
Some(t).into_iter().chain(&mut []) Some(t).into_iter().chain(&mut [])
} }
Resume UnwindResume
| Terminate | UnwindTerminate
| GeneratorDrop | GeneratorDrop
| Return | Return
| Unreachable | Unreachable
@ -214,8 +214,8 @@ pub fn successors_mut(&mut self) -> SuccessorsMut<'_> {
pub fn unwind(&self) -> Option<&UnwindAction> { pub fn unwind(&self) -> Option<&UnwindAction> {
match *self { match *self {
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
@ -233,8 +233,8 @@ pub fn unwind(&self) -> Option<&UnwindAction> {
pub fn unwind_mut(&mut self) -> Option<&mut UnwindAction> { pub fn unwind_mut(&mut self) -> Option<&mut UnwindAction> {
match *self { match *self {
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
@ -311,8 +311,8 @@ pub fn fmt_head<W: Write>(&self, fmt: &mut W) -> fmt::Result {
SwitchInt { discr, .. } => write!(fmt, "switchInt({discr:?})"), SwitchInt { discr, .. } => write!(fmt, "switchInt({discr:?})"),
Return => write!(fmt, "return"), Return => write!(fmt, "return"),
GeneratorDrop => write!(fmt, "generator_drop"), GeneratorDrop => write!(fmt, "generator_drop"),
Resume => write!(fmt, "resume"), UnwindResume => write!(fmt, "resume"),
Terminate => write!(fmt, "abort"), UnwindTerminate => write!(fmt, "abort"),
Yield { value, resume_arg, .. } => write!(fmt, "{resume_arg:?} = yield({value:?})"), Yield { value, resume_arg, .. } => write!(fmt, "{resume_arg:?} = yield({value:?})"),
Unreachable => write!(fmt, "unreachable"), Unreachable => write!(fmt, "unreachable"),
Drop { place, .. } => write!(fmt, "drop({place:?})"), Drop { place, .. } => write!(fmt, "drop({place:?})"),
@ -391,7 +391,7 @@ pub fn fmt_head<W: Write>(&self, fmt: &mut W) -> fmt::Result {
pub fn fmt_successor_labels(&self) -> Vec<Cow<'static, str>> { pub fn fmt_successor_labels(&self) -> Vec<Cow<'static, str>> {
use self::TerminatorKind::*; use self::TerminatorKind::*;
match *self { match *self {
Return | Resume | Terminate | Unreachable | GeneratorDrop => vec![], Return | UnwindResume | UnwindTerminate | Unreachable | GeneratorDrop => vec![],
Goto { .. } => vec!["".into()], Goto { .. } => vec!["".into()],
SwitchInt { ref targets, .. } => targets SwitchInt { ref targets, .. } => targets
.values .values
@ -486,7 +486,9 @@ impl<'tcx> TerminatorKind<'tcx> {
pub fn edges(&self) -> TerminatorEdges<'_, 'tcx> { pub fn edges(&self) -> TerminatorEdges<'_, 'tcx> {
use TerminatorKind::*; use TerminatorKind::*;
match *self { match *self {
Return | Resume | Terminate | GeneratorDrop | Unreachable => TerminatorEdges::None, Return | UnwindResume | UnwindTerminate | GeneratorDrop | Unreachable => {
TerminatorEdges::None
}
Goto { target } => TerminatorEdges::Single(target), Goto { target } => TerminatorEdges::Single(target),

View File

@ -469,8 +469,8 @@ fn super_terminator(&mut self,
self.visit_source_info(source_info); self.visit_source_info(source_info);
match kind { match kind {
TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. } |
TerminatorKind::Resume | TerminatorKind::UnwindResume |
TerminatorKind::Terminate | TerminatorKind::UnwindTerminate |
TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop |
TerminatorKind::Unreachable | TerminatorKind::Unreachable |
TerminatorKind::FalseEdge { .. } | TerminatorKind::FalseEdge { .. } |

View File

@ -685,9 +685,9 @@ pub(crate) fn break_scope(
drops.add_entry(block, drop_idx); drops.add_entry(block, drop_idx);
// `build_drop_trees` doesn't have access to our source_info, so we // `build_drop_trees` doesn't have access to our source_info, so we
// create a dummy terminator now. `TerminatorKind::Resume` is used // create a dummy terminator now. `TerminatorKind::UnwindResume` is used
// because MIR type checking will panic if it hasn't been overwritten. // because MIR type checking will panic if it hasn't been overwritten.
self.cfg.terminate(block, source_info, TerminatorKind::Resume); self.cfg.terminate(block, source_info, TerminatorKind::UnwindResume);
self.cfg.start_new_block().unit() self.cfg.start_new_block().unit()
} }
@ -717,9 +717,9 @@ pub(crate) fn break_for_else(
drops.add_entry(block, drop_idx); drops.add_entry(block, drop_idx);
// `build_drop_trees` doesn't have access to our source_info, so we // `build_drop_trees` doesn't have access to our source_info, so we
// create a dummy terminator now. `TerminatorKind::Resume` is used // create a dummy terminator now. `TerminatorKind::UnwindResume` is used
// because MIR type checking will panic if it hasn't been overwritten. // because MIR type checking will panic if it hasn't been overwritten.
self.cfg.terminate(block, source_info, TerminatorKind::Resume); self.cfg.terminate(block, source_info, TerminatorKind::UnwindResume);
} }
// Add a dummy `Assign` statement to the CFG, with the span for the source code's `continue` // Add a dummy `Assign` statement to the CFG, with the span for the source code's `continue`
@ -1441,7 +1441,7 @@ fn build_unwind_tree(
blocks[ROOT_NODE] = *resume_block; blocks[ROOT_NODE] = *resume_block;
drops.build_mir::<Unwind>(cfg, &mut blocks); drops.build_mir::<Unwind>(cfg, &mut blocks);
if let (None, Some(resume)) = (*resume_block, blocks[ROOT_NODE]) { if let (None, Some(resume)) = (*resume_block, blocks[ROOT_NODE]) {
cfg.terminate(resume, SourceInfo::outermost(fn_span), TerminatorKind::Resume); cfg.terminate(resume, SourceInfo::outermost(fn_span), TerminatorKind::UnwindResume);
*resume_block = blocks[ROOT_NODE]; *resume_block = blocks[ROOT_NODE];
} }
@ -1506,8 +1506,8 @@ fn add_entry(cfg: &mut CFG<'tcx>, from: BasicBlock, to: BasicBlock) {
} }
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Yield { .. } | TerminatorKind::Yield { .. }

View File

@ -186,9 +186,9 @@ fn node_examined(
match self.body[bb].terminator().kind { match self.body[bb].terminator().kind {
// These terminators return control flow to the caller. // These terminators return control flow to the caller.
TerminatorKind::Terminate TerminatorKind::UnwindTerminate
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Yield { .. } => ControlFlow::Break(NonRecursive), | TerminatorKind::Yield { .. } => ControlFlow::Break(NonRecursive),

View File

@ -131,7 +131,7 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
} }
} }
TerminatorKind::Terminate TerminatorKind::UnwindTerminate
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }
| TerminatorKind::Call { .. } | TerminatorKind::Call { .. }
| TerminatorKind::FalseEdge { .. } | TerminatorKind::FalseEdge { .. }
@ -139,7 +139,7 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::InlineAsm { .. } | TerminatorKind::InlineAsm { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Unreachable | TerminatorKind::Unreachable

View File

@ -291,14 +291,14 @@ fn before_terminator_effect(
// Nothing to do for these. Match exhaustively so this fails to compile when new // Nothing to do for these. Match exhaustively so this fails to compile when new
// variants are added. // variants are added.
TerminatorKind::Terminate TerminatorKind::UnwindTerminate
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }
| TerminatorKind::FalseEdge { .. } | TerminatorKind::FalseEdge { .. }
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Unreachable => {} | TerminatorKind::Unreachable => {}
@ -328,14 +328,14 @@ fn terminator_effect<'t>(
// Nothing to do for these. Match exhaustively so this fails to compile when new // Nothing to do for these. Match exhaustively so this fails to compile when new
// variants are added. // variants are added.
TerminatorKind::Yield { .. } TerminatorKind::Yield { .. }
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }
| TerminatorKind::FalseEdge { .. } | TerminatorKind::FalseEdge { .. }
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Unreachable => {} | TerminatorKind::Unreachable => {}

View File

@ -370,8 +370,8 @@ fn gather_terminator(&mut self, term: &Terminator<'tcx>) {
// this that could possibly access the return place, this doesn't // this that could possibly access the return place, this doesn't
// need recording. // need recording.
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Drop { .. } => {} | TerminatorKind::Drop { .. } => {}

View File

@ -269,8 +269,8 @@ fn super_terminator<'mir>(
return self.handle_switch_int(discr, targets, state); return self.handle_switch_int(discr, targets, state);
} }
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }

View File

@ -57,8 +57,8 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
| TerminatorKind::Yield { .. } | TerminatorKind::Yield { .. }
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::FalseEdge { .. } | TerminatorKind::FalseEdge { .. }

View File

@ -678,8 +678,8 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
} }
// None of these have Operands to const-propagate. // None of these have Operands to const-propagate.
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }

View File

@ -116,7 +116,7 @@ fn compute_basic_coverage_blocks(
match term.kind { match term.kind {
TerminatorKind::Return { .. } TerminatorKind::Return { .. }
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Yield { .. } | TerminatorKind::Yield { .. }
| TerminatorKind::SwitchInt { .. } => { | TerminatorKind::SwitchInt { .. } => {
// The `bb` has more than one _outgoing_ edge, or exits the function. Save the // The `bb` has more than one _outgoing_ edge, or exits the function. Save the
@ -146,7 +146,7 @@ fn compute_basic_coverage_blocks(
// is as intended. (See Issue #78544 for a possible future option to support // is as intended. (See Issue #78544 for a possible future option to support
// coverage in test programs that panic.) // coverage in test programs that panic.)
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }
| TerminatorKind::Call { .. } | TerminatorKind::Call { .. }

View File

@ -867,8 +867,8 @@ pub(super) fn filtered_terminator_span(terminator: &Terminator<'_>) -> Option<Sp
} }
// Retain spans from all other terminators // Retain spans from all other terminators
TerminatorKind::Resume TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Yield { .. } | TerminatorKind::Yield { .. }
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop

View File

@ -647,8 +647,8 @@ fn for_terminator<'tcx>(&mut self, terminator: &TerminatorKind<'tcx>) {
} }
} }
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable { .. } => (), | TerminatorKind::Unreachable { .. } => (),
TerminatorKind::Drop { .. } => { TerminatorKind::Drop { .. } => {

View File

@ -470,7 +470,7 @@ fn drop_flags_for_locs(&mut self) {
// drop elaboration should handle that by itself // drop elaboration should handle that by itself
continue; continue;
} }
TerminatorKind::Resume => { TerminatorKind::UnwindResume => {
// It is possible for `Resume` to be patched // It is possible for `Resume` to be patched
// (in particular it can be patched to be replaced with // (in particular it can be patched to be replaced with
// a Goto; see `MirPatch::new`). // a Goto; see `MirPatch::new`).

View File

@ -1239,7 +1239,7 @@ fn can_unwind<'tcx>(tcx: TyCtxt<'tcx>, body: &Body<'tcx>) -> bool {
// These never unwind. // These never unwind.
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
@ -1248,7 +1248,7 @@ fn can_unwind<'tcx>(tcx: TyCtxt<'tcx>, body: &Body<'tcx>) -> bool {
// Resume will *continue* unwinding, but if there's no other unwinding terminator it // Resume will *continue* unwinding, but if there's no other unwinding terminator it
// will never be reached. // will never be reached.
TerminatorKind::Resume => {} TerminatorKind::UnwindResume => {}
TerminatorKind::Yield { .. } => { TerminatorKind::Yield { .. } => {
unreachable!("`can_unwind` called before generator transform") unreachable!("`can_unwind` called before generator transform")
@ -1279,14 +1279,14 @@ fn create_generator_resume_function<'tcx>(
let source_info = SourceInfo::outermost(body.span); let source_info = SourceInfo::outermost(body.span);
let poison_block = body.basic_blocks_mut().push(BasicBlockData { let poison_block = body.basic_blocks_mut().push(BasicBlockData {
statements: vec![transform.set_discr(VariantIdx::new(POISONED), source_info)], statements: vec![transform.set_discr(VariantIdx::new(POISONED), source_info)],
terminator: Some(Terminator { source_info, kind: TerminatorKind::Resume }), terminator: Some(Terminator { source_info, kind: TerminatorKind::UnwindResume }),
is_cleanup: true, is_cleanup: true,
}); });
for (idx, block) in body.basic_blocks_mut().iter_enumerated_mut() { for (idx, block) in body.basic_blocks_mut().iter_enumerated_mut() {
let source_info = block.terminator().source_info; let source_info = block.terminator().source_info;
if let TerminatorKind::Resume = block.terminator().kind { if let TerminatorKind::UnwindResume = block.terminator().kind {
// An existing `Resume` terminator is redirected to jump to our dedicated // An existing `Resume` terminator is redirected to jump to our dedicated
// "poisoning block" above. // "poisoning block" above.
if idx != poison_block { if idx != poison_block {
@ -1758,8 +1758,8 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, location: Location
TerminatorKind::Call { .. } TerminatorKind::Call { .. }
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }

View File

@ -839,7 +839,7 @@ fn visit_terminator(&mut self, terminator: &Terminator<'tcx>, _: Location) {
self.cost += LANDINGPAD_PENALTY; self.cost += LANDINGPAD_PENALTY;
} }
} }
TerminatorKind::Resume => self.cost += RESUME_PENALTY, TerminatorKind::UnwindResume => self.cost += RESUME_PENALTY,
TerminatorKind::InlineAsm { unwind, .. } => { TerminatorKind::InlineAsm { unwind, .. } => {
self.cost += INSTR_COST; self.cost += INSTR_COST;
if let UnwindAction::Cleanup(_) = unwind { if let UnwindAction::Cleanup(_) = unwind {
@ -1017,15 +1017,15 @@ fn visit_terminator(&mut self, terminator: &mut Terminator<'tcx>, loc: Location)
TerminatorKind::Unreachable TerminatorKind::Unreachable
} }
} }
TerminatorKind::Resume => { TerminatorKind::UnwindResume => {
terminator.kind = match self.cleanup_block { terminator.kind = match self.cleanup_block {
UnwindAction::Cleanup(tgt) => TerminatorKind::Goto { target: tgt }, UnwindAction::Cleanup(tgt) => TerminatorKind::Goto { target: tgt },
UnwindAction::Continue => TerminatorKind::Resume, UnwindAction::Continue => TerminatorKind::UnwindResume,
UnwindAction::Unreachable => TerminatorKind::Unreachable, UnwindAction::Unreachable => TerminatorKind::Unreachable,
UnwindAction::Terminate => TerminatorKind::Terminate, UnwindAction::Terminate => TerminatorKind::UnwindTerminate,
}; };
} }
TerminatorKind::Terminate => {} TerminatorKind::UnwindTerminate => {}
TerminatorKind::Unreachable => {} TerminatorKind::Unreachable => {}
TerminatorKind::FalseEdge { ref mut real_target, ref mut imaginary_target } => { TerminatorKind::FalseEdge { ref mut real_target, ref mut imaginary_target } => {
*real_target = self.map_block(*real_target); *real_target = self.map_block(*real_target);

View File

@ -63,7 +63,7 @@ fn is_nop_landing_pad(
let terminator = body[bb].terminator(); let terminator = body[bb].terminator();
match terminator.kind { match terminator.kind {
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::SwitchInt { .. } | TerminatorKind::SwitchInt { .. }
| TerminatorKind::FalseEdge { .. } | TerminatorKind::FalseEdge { .. }
| TerminatorKind::FalseUnwind { .. } => { | TerminatorKind::FalseUnwind { .. } => {
@ -72,7 +72,7 @@ fn is_nop_landing_pad(
TerminatorKind::GeneratorDrop TerminatorKind::GeneratorDrop
| TerminatorKind::Yield { .. } | TerminatorKind::Yield { .. }
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::Call { .. } | TerminatorKind::Call { .. }
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }
@ -88,7 +88,7 @@ fn remove_nop_landing_pads(&self, body: &mut Body<'_>) {
let has_resume = body let has_resume = body
.basic_blocks .basic_blocks
.iter_enumerated() .iter_enumerated()
.any(|(_bb, block)| matches!(block.terminator().kind, TerminatorKind::Resume)); .any(|(_bb, block)| matches!(block.terminator().kind, TerminatorKind::UnwindResume));
if !has_resume { if !has_resume {
debug!("remove_noop_landing_pads: no resume block in MIR"); debug!("remove_noop_landing_pads: no resume block in MIR");
return; return;

View File

@ -108,13 +108,13 @@ pub fn separate_const_switch(body: &mut Body<'_>) -> usize {
} }
// The following terminators are not allowed // The following terminators are not allowed
TerminatorKind::Resume TerminatorKind::UnwindResume
| TerminatorKind::Drop { .. } | TerminatorKind::Drop { .. }
| TerminatorKind::Call { .. } | TerminatorKind::Call { .. }
| TerminatorKind::Assert { .. } | TerminatorKind::Assert { .. }
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::Yield { .. } | TerminatorKind::Yield { .. }
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::InlineAsm { .. } | TerminatorKind::InlineAsm { .. }
@ -165,8 +165,8 @@ pub fn separate_const_switch(body: &mut Body<'_>) -> usize {
}); });
} }
TerminatorKind::Resume TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop

View File

@ -583,7 +583,7 @@ fn tuple_like_shim<I>(&mut self, dest: Place<'tcx>, src: Place<'tcx>, tys: I)
I: IntoIterator<Item = Ty<'tcx>>, I: IntoIterator<Item = Ty<'tcx>>,
{ {
self.block(vec![], TerminatorKind::Goto { target: self.block_index_offset(3) }, false); self.block(vec![], TerminatorKind::Goto { target: self.block_index_offset(3) }, false);
let unwind = self.block(vec![], TerminatorKind::Resume, true); let unwind = self.block(vec![], TerminatorKind::UnwindResume, true);
let target = self.block(vec![], TerminatorKind::Return, false); let target = self.block(vec![], TerminatorKind::Return, false);
let _final_cleanup_block = self.clone_fields(dest, src, target, unwind, tys); let _final_cleanup_block = self.clone_fields(dest, src, target, unwind, tys);
@ -597,7 +597,7 @@ fn generator_shim(
args: GeneratorArgs<'tcx>, args: GeneratorArgs<'tcx>,
) { ) {
self.block(vec![], TerminatorKind::Goto { target: self.block_index_offset(3) }, false); self.block(vec![], TerminatorKind::Goto { target: self.block_index_offset(3) }, false);
let unwind = self.block(vec![], TerminatorKind::Resume, true); let unwind = self.block(vec![], TerminatorKind::UnwindResume, true);
// This will get overwritten with a switch once we know the target blocks // This will get overwritten with a switch once we know the target blocks
let switch = self.block(vec![], TerminatorKind::Unreachable, false); let switch = self.block(vec![], TerminatorKind::Unreachable, false);
let unwind = self.clone_fields(dest, src, switch, unwind, args.upvar_tys()); let unwind = self.clone_fields(dest, src, switch, unwind, args.upvar_tys());
@ -854,7 +854,7 @@ fn build_call_shim<'tcx>(
); );
// BB #4 - resume // BB #4 - resume
block(&mut blocks, vec![], TerminatorKind::Resume, true); block(&mut blocks, vec![], TerminatorKind::UnwindResume, true);
} }
let mut body = let mut body =

View File

@ -776,7 +776,7 @@ fn visit_terminator(&mut self, terminator: &mir::Terminator<'tcx>, location: Loc
self.output.push(create_fn_mono_item(tcx, instance, source)); self.output.push(create_fn_mono_item(tcx, instance, source));
} }
} }
mir::TerminatorKind::Terminate { .. } => { mir::TerminatorKind::UnwindTerminate { .. } => {
let instance = Instance::mono( let instance = Instance::mono(
tcx, tcx,
tcx.require_lang_item(LangItem::PanicCannotUnwind, Some(source)), tcx.require_lang_item(LangItem::PanicCannotUnwind, Some(source)),
@ -787,7 +787,7 @@ fn visit_terminator(&mut self, terminator: &mir::Terminator<'tcx>, location: Loc
} }
mir::TerminatorKind::Goto { .. } mir::TerminatorKind::Goto { .. }
| mir::TerminatorKind::SwitchInt { .. } | mir::TerminatorKind::SwitchInt { .. }
| mir::TerminatorKind::Resume | mir::TerminatorKind::UnwindResume
| mir::TerminatorKind::Return | mir::TerminatorKind::Return
| mir::TerminatorKind::Unreachable => {} | mir::TerminatorKind::Unreachable => {}
mir::TerminatorKind::GeneratorDrop mir::TerminatorKind::GeneratorDrop

View File

@ -780,8 +780,8 @@ fn stable(&self, tables: &mut Tables<'tcx>) -> Self::T {
.collect(), .collect(),
otherwise: targets.otherwise().as_usize(), otherwise: targets.otherwise().as_usize(),
}, },
Resume => Terminator::Resume, UnwindResume => Terminator::Resume,
Terminate => Terminator::Abort, UnwindTerminate => Terminator::Abort,
Return => Terminator::Return, Return => Terminator::Return,
Unreachable => Terminator::Unreachable, Unreachable => Terminator::Unreachable,
Drop { place, target, unwind, replace: _ } => Terminator::Drop { Drop { place, target, unwind, replace: _ } => Terminator::Drop {

View File

@ -291,8 +291,8 @@ fn check_terminator<'tcx>(
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Terminate | TerminatorKind::UnwindTerminate
| TerminatorKind::Unreachable => Ok(()), | TerminatorKind::Unreachable => Ok(()),
TerminatorKind::Drop { place, .. } => { TerminatorKind::Drop { place, .. } => {
if !is_ty_const_destruct(tcx, place.ty(&body.local_decls, tcx).ty, body) { if !is_ty_const_destruct(tcx, place.ty(&body.local_decls, tcx).ty, body) {

View File

@ -1057,7 +1057,7 @@ fn for_operand(op: &mut Operand, f: &mut impl FnMut(&mut Place)) {
TerminatorKind::FalseEdge { .. } TerminatorKind::FalseEdge { .. }
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Abort | TerminatorKind::Abort
| TerminatorKind::Return | TerminatorKind::Return

View File

@ -160,7 +160,7 @@ fn moved_out_of_ref(db: &dyn HirDatabase, body: &MirBody) -> Vec<MovedOutOfRef>
TerminatorKind::FalseEdge { .. } TerminatorKind::FalseEdge { .. }
| TerminatorKind::FalseUnwind { .. } | TerminatorKind::FalseUnwind { .. }
| TerminatorKind::Goto { .. } | TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::GeneratorDrop | TerminatorKind::GeneratorDrop
| TerminatorKind::Abort | TerminatorKind::Abort
| TerminatorKind::Return | TerminatorKind::Return
@ -280,7 +280,7 @@ fn dfs(
let targets = match &terminator.kind { let targets = match &terminator.kind {
TerminatorKind::Goto { target } => vec![*target], TerminatorKind::Goto { target } => vec![*target],
TerminatorKind::SwitchInt { targets, .. } => targets.all_targets().to_vec(), TerminatorKind::SwitchInt { targets, .. } => targets.all_targets().to_vec(),
TerminatorKind::Resume TerminatorKind::UnwindResume
| TerminatorKind::Abort | TerminatorKind::Abort
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable => vec![], | TerminatorKind::Unreachable => vec![],
@ -371,7 +371,7 @@ fn mutability_of_locals(
}; };
match &terminator.kind { match &terminator.kind {
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Abort | TerminatorKind::Abort
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable

View File

@ -265,7 +265,7 @@ fn fill_body(&mut self, body: &mut MirBody) -> Result<(), MirLowerError> {
self.fill_operand(discr)?; self.fill_operand(discr)?;
} }
TerminatorKind::Goto { .. } TerminatorKind::Goto { .. }
| TerminatorKind::Resume | TerminatorKind::UnwindResume
| TerminatorKind::Abort | TerminatorKind::Abort
| TerminatorKind::Return | TerminatorKind::Return
| TerminatorKind::Unreachable | TerminatorKind::Unreachable