From a11abc634385bbaac00718cf095e92a55b8ce272 Mon Sep 17 00:00:00 2001 From: Nadrieril Date: Fri, 16 Feb 2024 03:55:00 +0100 Subject: [PATCH] Simplify return block computation --- compiler/rustc_mir_build/src/build/matches/mod.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/compiler/rustc_mir_build/src/build/matches/mod.rs b/compiler/rustc_mir_build/src/build/matches/mod.rs index 97e45b74332..5a5daa949b0 100644 --- a/compiler/rustc_mir_build/src/build/matches/mod.rs +++ b/compiler/rustc_mir_build/src/build/matches/mod.rs @@ -1315,7 +1315,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { let mut next_prebinding = start_block; let mut reachable = true; - let mut last_reachable_candidate = None; + let mut return_block = None; for candidate in matched_candidates.iter_mut() { assert!(candidate.otherwise_block.is_none()); @@ -1327,19 +1327,17 @@ impl<'a, 'tcx> Builder<'a, 'tcx> { // pre-binding block for the next candidate. next_prebinding = self.cfg.start_new_block(); candidate.otherwise_block = Some(next_prebinding); + return_block = Some(next_prebinding); } else { reachable = false; + return_block = Some(self.cfg.start_new_block()); } - last_reachable_candidate = Some(candidate); } else { candidate.pre_binding_block = Some(self.cfg.start_new_block()); } } - last_reachable_candidate - .unwrap() - .otherwise_block - .unwrap_or_else(|| self.cfg.start_new_block()) + return_block.unwrap() } /// Tests a candidate where there are only or-patterns left to test, or