]> git.lizzy.rs Git - rust.git/commitdiff
Merge redundant match arms
authorJonas Schievink <jonasschievink@gmail.com>
Sun, 5 Apr 2020 23:07:33 +0000 (01:07 +0200)
committerJonas Schievink <jonasschievink@gmail.com>
Sun, 5 Apr 2020 23:07:33 +0000 (01:07 +0200)
src/librustc_mir_build/lints.rs

index 38cae5793d764f2458f36a5146e95c549e9fec48..1b7a8e6d7291ffed8c98a55b97350b753bf8f684 100644 (file)
@@ -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