diff options
| author | Fabian Wolff <fabian.wolff@alumni.ethz.ch> | 2021-10-03 21:06:49 +0200 |
|---|---|---|
| committer | Josh Stone <jistone@redhat.com> | 2021-10-13 11:18:21 -0700 |
| commit | 7dff1cd3890e10ad4c06217463fa888e16dba03c (patch) | |
| tree | 6c759437fbbdbcb8c3963b89081675aa9cd45e2b | |
| parent | e15cb6f9697e26d1a7b939ec927d64001de06d09 (diff) | |
| download | rust-7dff1cd3890e10ad4c06217463fa888e16dba03c.tar.gz rust-7dff1cd3890e10ad4c06217463fa888e16dba03c.zip | |
Update comments
(cherry picked from commit 20489eaca2ad541a35059d38e2b064c46d3bcc9f)
| -rw-r--r-- | compiler/rustc_mir/src/transform/simplify_try.rs | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/compiler/rustc_mir/src/transform/simplify_try.rs b/compiler/rustc_mir/src/transform/simplify_try.rs index 99f3bf73f92..4277754724f 100644 --- a/compiler/rustc_mir/src/transform/simplify_try.rs +++ b/compiler/rustc_mir/src/transform/simplify_try.rs @@ -713,6 +713,8 @@ impl<'a, 'tcx> SimplifyBranchSameOptimizationFinder<'a, 'tcx> { ty::Adt(adt, _) if adt.is_enum() => adt, _ => return StatementEquality::NotEqual, }; + // We need to make sure that the switch value that targets the bb with + // SetDiscriminant is the same as the variant discriminant. let variant_discr = adt.discriminant_for_variant(self.tcx, *variant_index).val; if variant_discr != switch_value { trace!( @@ -750,20 +752,28 @@ impl<'a, 'tcx> SimplifyBranchSameOptimizationFinder<'a, 'tcx> { ( StatementKind::Assign(box (_, rhs)), StatementKind::SetDiscriminant { place, variant_index }, - ) - // we need to make sure that the switch value that targets the bb with SetDiscriminant (y), is the same as the variant index - if y_target_and_value.value.is_some() => { + ) if y_target_and_value.value.is_some() => { // choose basic block of x, as that has the assign - helper(rhs, place, variant_index, y_target_and_value.value.unwrap(), x_target_and_value.target) + helper( + rhs, + place, + variant_index, + y_target_and_value.value.unwrap(), + x_target_and_value.target, + ) } ( StatementKind::SetDiscriminant { place, variant_index }, StatementKind::Assign(box (_, rhs)), - ) - // we need to make sure that the switch value that targets the bb with SetDiscriminant (x), is the same as the variant index - if x_target_and_value.value.is_some() => { + ) if x_target_and_value.value.is_some() => { // choose basic block of y, as that has the assign - helper(rhs, place, variant_index, x_target_and_value.value.unwrap(), y_target_and_value.target) + helper( + rhs, + place, + variant_index, + x_target_and_value.value.unwrap(), + y_target_and_value.target, + ) } _ => { trace!("NO: statements `{:?}` and `{:?}` not considered equal", x, y); |
