about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_mir_build/lints.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/librustc_mir_build/lints.rs b/src/librustc_mir_build/lints.rs
index 38cae5793d7..1b7a8e6d729 100644
--- a/src/librustc_mir_build/lints.rs
+++ b/src/librustc_mir_build/lints.rs
@@ -47,21 +47,18 @@ fn check_fn_for_unconditional_recursion<'tcx>(
             // Converging successors without unwind paths.
             let terminator = body[bb].terminator();
             let relevant_successors = match &terminator.kind {
-                TerminatorKind::Call { destination: Some((_, dest)), .. } => {
-                    Some(dest).into_iter().chain(&[])
-                }
-                TerminatorKind::Call { destination: None, .. } => None.into_iter().chain(&[]),
+                TerminatorKind::Call { destination: None, .. }
+                | TerminatorKind::Yield { .. }
+                | TerminatorKind::GeneratorDrop => None.into_iter().chain(&[]),
                 TerminatorKind::SwitchInt { targets, .. } => None.into_iter().chain(targets),
                 TerminatorKind::Goto { target }
                 | TerminatorKind::Drop { target, .. }
                 | TerminatorKind::DropAndReplace { target, .. }
-                | TerminatorKind::Assert { target, .. } => Some(target).into_iter().chain(&[]),
-                TerminatorKind::Yield { .. } | TerminatorKind::GeneratorDrop => {
-                    None.into_iter().chain(&[])
-                }
-                TerminatorKind::FalseEdges { real_target, .. }
-                | TerminatorKind::FalseUnwind { real_target, .. } => {
-                    Some(real_target).into_iter().chain(&[])
+                | TerminatorKind::Assert { target, .. }
+                | TerminatorKind::FalseEdges { real_target: target, .. }
+                | TerminatorKind::FalseUnwind { real_target: target, .. }
+                | TerminatorKind::Call { destination: Some((_, target)), .. } => {
+                    Some(target).into_iter().chain(&[])
                 }
                 TerminatorKind::Resume
                 | TerminatorKind::Abort