about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Woerister <michaelwoerister@posteo>2017-08-16 15:13:55 +0200
committerMichael Woerister <michaelwoerister@posteo>2017-08-16 15:46:34 +0200
commit14d62c650faeca7df7a2c702b20820ef52924e89 (patch)
treeab27626ca02b3dff314a21a7875f3af08c5e72f8
parent85eadf84f3945dc431643ea43d34f15193fdafb4 (diff)
downloadrust-14d62c650faeca7df7a2c702b20820ef52924e89.tar.gz
rust-14d62c650faeca7df7a2c702b20820ef52924e89.zip
Run MIR passes on promoted temporaries again.
-rw-r--r--src/librustc_mir/transform/mod.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/librustc_mir/transform/mod.rs b/src/librustc_mir/transform/mod.rs
index e3e4265a7db..6b211fc530e 100644
--- a/src/librustc_mir/transform/mod.rs
+++ b/src/librustc_mir/transform/mod.rs
@@ -148,6 +148,14 @@ fn run_suite<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
 
         pass.run_pass(tcx, source, mir);
 
+        for (index, promoted_mir) in mir.promoted.iter_enumerated_mut() {
+            let promoted_source = MirSource::Promoted(source.item_id(), index);
+            pass.run_pass(tcx, promoted_source, promoted_mir);
+
+            // Let's make sure we don't miss any nested instances
+            assert!(promoted_mir.promoted.is_empty());
+        }
+
         for hook in tcx.mir_passes.hooks() {
             hook.on_mir_pass(tcx, suite, pass_num, &pass.name(), source, &mir, true);
         }