diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-02-11 10:14:50 +0100 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2020-02-11 10:14:50 +0100 |
| commit | ebbaf4611a9605412d2aa31c8ebaf0745557fff0 (patch) | |
| tree | f905db260db9c5e36d4e246f59b3402aee5786c6 | |
| parent | dc4242d9052a42cdf329c3a2430d02a3b3d415cb (diff) | |
| download | rust-ebbaf4611a9605412d2aa31c8ebaf0745557fff0.tar.gz rust-ebbaf4611a9605412d2aa31c8ebaf0745557fff0.zip | |
simplify_try: address some of eddyb's comments
| -rw-r--r-- | src/librustc_mir/transform/simplify_try.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/librustc_mir/transform/simplify_try.rs b/src/librustc_mir/transform/simplify_try.rs index bd661195a48..3f28f033047 100644 --- a/src/librustc_mir/transform/simplify_try.rs +++ b/src/librustc_mir/transform/simplify_try.rs @@ -52,6 +52,8 @@ impl<'tcx> MirPass<'tcx> for SimplifyArmIdentity { Some(x) => x, }; if local_tmp_s0 != local_tmp_s1 + // Avoid moving into ourselves. + || local_0 == local_1 // The field-and-variant information match up. || vf_s0 != vf_s1 // Source and target locals have the same type. @@ -64,6 +66,7 @@ impl<'tcx> MirPass<'tcx> for SimplifyArmIdentity { } // Right shape; transform! + s0.source_info = s2.source_info; match &mut s0.kind { StatementKind::Assign(box (place, rvalue)) => { *place = local_0.into(); |
