mirror of https://github.com/rust-lang/rust.git
Consistently merge simplifiable or-patterns
This commit is contained in:
parent
08d7379961
commit
d1d9aa3108
|
@ -1293,8 +1293,7 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
|
|||
// At least one of the candidates has been split into subcandidates.
|
||||
// We need to change the candidate list to include those.
|
||||
let mut new_candidates = Vec::new();
|
||||
|
||||
for candidate in candidates {
|
||||
for candidate in candidates.iter_mut() {
|
||||
candidate.visit_leaves(|leaf_candidate| new_candidates.push(leaf_candidate));
|
||||
}
|
||||
self.match_simplified_candidates(
|
||||
|
@ -1304,6 +1303,10 @@ impl<'a, 'tcx> Builder<'a, 'tcx> {
|
|||
otherwise_block,
|
||||
&mut *new_candidates,
|
||||
);
|
||||
|
||||
for candidate in candidates {
|
||||
self.merge_trivial_subcandidates(candidate);
|
||||
}
|
||||
} else {
|
||||
self.match_simplified_candidates(
|
||||
span,
|
||||
|
|
|
@ -26,18 +26,20 @@
|
|||
_3 = _1;
|
||||
_2 = move _3 as [u32; 4] (Transmute);
|
||||
StorageDead(_3);
|
||||
switchInt(_2[0 of 4]) -> [0: bb1, otherwise: bb6];
|
||||
switchInt(_2[0 of 4]) -> [0: bb1, otherwise: bb4];
|
||||
}
|
||||
|
||||
bb1: {
|
||||
switchInt(_2[1 of 4]) -> [0: bb2, otherwise: bb6];
|
||||
switchInt(_2[1 of 4]) -> [0: bb2, otherwise: bb4];
|
||||
}
|
||||
|
||||
bb2: {
|
||||
switchInt(_2[2 of 4]) -> [0: bb4, 4294901760: bb5, otherwise: bb6];
|
||||
switchInt(_2[2 of 4]) -> [0: bb3, 4294901760: bb3, otherwise: bb4];
|
||||
}
|
||||
|
||||
bb3: {
|
||||
StorageLive(_4);
|
||||
_4 = _2[3 of 4];
|
||||
StorageLive(_5);
|
||||
StorageLive(_6);
|
||||
_6 = _4;
|
||||
|
@ -46,27 +48,15 @@
|
|||
_0 = Option::<[u8; 4]>::Some(move _5);
|
||||
StorageDead(_5);
|
||||
StorageDead(_4);
|
||||
goto -> bb7;
|
||||
goto -> bb5;
|
||||
}
|
||||
|
||||
bb4: {
|
||||
StorageLive(_4);
|
||||
_4 = _2[3 of 4];
|
||||
goto -> bb3;
|
||||
_0 = Option::<[u8; 4]>::None;
|
||||
goto -> bb5;
|
||||
}
|
||||
|
||||
bb5: {
|
||||
StorageLive(_4);
|
||||
_4 = _2[3 of 4];
|
||||
goto -> bb3;
|
||||
}
|
||||
|
||||
bb6: {
|
||||
_0 = Option::<[u8; 4]>::None;
|
||||
goto -> bb7;
|
||||
}
|
||||
|
||||
bb7: {
|
||||
StorageDead(_2);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue