Skip to content

Commit efcfb5a

Browse files
committed
Cleanup a bit
1 parent 2d1a7fb commit efcfb5a

File tree

1 file changed

+13
-17
lines changed
  • compiler/rustc_mir_build/src/build/matches

1 file changed

+13
-17
lines changed

compiler/rustc_mir_build/src/build/matches/mod.rs

+13-17
Original file line numberDiff line numberDiff line change
@@ -1293,7 +1293,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
12931293
//
12941294
// only generates a single switch.
12951295
let match_pair = candidate.match_pairs.pop().unwrap();
1296-
self.create_or_subcandidates(candidate, &match_pair);
1296+
self.create_or_subcandidates(candidate, match_pair);
12971297
split_or_candidate = true;
12981298
}
12991299
}
@@ -1481,9 +1481,8 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
14811481
return;
14821482
}
14831483

1484-
let match_pairs = mem::take(&mut first_candidate.match_pairs);
1485-
let (first_match_pair, remaining_match_pairs) = match_pairs.split_first().unwrap();
1486-
1484+
let first_match_pair = first_candidate.match_pairs.remove(0);
1485+
let remaining_match_pairs = mem::take(&mut first_candidate.match_pairs);
14871486
let remainder_start = self.cfg.start_new_block();
14881487
// Test the alternatives of this or-pattern.
14891488
self.test_or_pattern(first_candidate, start_block, remainder_start, first_match_pair);
@@ -1527,11 +1526,11 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
15271526
candidate: &mut Candidate<'pat, 'tcx>,
15281527
start_block: BasicBlock,
15291528
otherwise_block: BasicBlock,
1530-
match_pair: &MatchPair<'pat, 'tcx>,
1529+
match_pair: MatchPair<'pat, 'tcx>,
15311530
) {
1531+
let or_span = match_pair.pattern.span;
15321532
self.create_or_subcandidates(candidate, match_pair);
15331533
let mut or_candidate_refs: Vec<_> = candidate.subcandidates.iter_mut().collect();
1534-
let or_span = match_pair.pattern.span;
15351534
self.match_candidates(
15361535
or_span,
15371536
or_span,
@@ -1548,14 +1547,14 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
15481547
fn create_or_subcandidates<'pat>(
15491548
&mut self,
15501549
candidate: &mut Candidate<'pat, 'tcx>,
1551-
match_pair: &MatchPair<'pat, 'tcx>,
1550+
match_pair: MatchPair<'pat, 'tcx>,
15521551
) {
1553-
let TestCase::Or { ref pats } = &match_pair.test_case else { bug!() };
1552+
let TestCase::Or { pats } = match_pair.test_case else { bug!() };
15541553
debug!("expanding or-pattern: candidate={:#?}\npats={:#?}", candidate, pats);
15551554
candidate.or_span = Some(match_pair.pattern.span);
15561555
candidate.subcandidates = pats
1557-
.iter()
1558-
.cloned()
1556+
.into_vec()
1557+
.into_iter()
15591558
.map(|flat_pat| Candidate::from_flat_pat(flat_pat, candidate.has_guard))
15601559
.collect();
15611560
}
@@ -1569,13 +1568,10 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
15691568
return;
15701569
}
15711570

1572-
let mut can_merge = true;
1573-
for subcandidate in &mut candidate.subcandidates {
1574-
// FIXME(or_patterns; matthewjasper) Try to be more aggressive here.
1575-
can_merge &=
1576-
subcandidate.subcandidates.is_empty() && subcandidate.extra_data.is_empty();
1577-
}
1578-
1571+
// FIXME(or_patterns; matthewjasper) Try to be more aggressive here.
1572+
let can_merge = candidate.subcandidates.iter().all(|subcandidate| {
1573+
subcandidate.subcandidates.is_empty() && subcandidate.extra_data.is_empty()
1574+
});
15791575
if can_merge {
15801576
let any_matches = self.cfg.start_new_block();
15811577
let source_info = self.source_info(candidate.or_span.unwrap());

0 commit comments

Comments
 (0)