about summary refs log tree commit diff
path: root/src/librustc_mir/transform
diff options
context:
space:
mode:
authorNiko Matsakis <niko@alum.mit.edu>2017-05-01 12:47:00 -0400
committerNiko Matsakis <niko@alum.mit.edu>2017-05-02 16:21:55 -0400
commitc253df5249b5f3c7d6f85e1ed28afbf0adc1390b (patch)
tree514b990a3d896f6b2592e94daf7c8d4b1985f390 /src/librustc_mir/transform
parent69c8f9dd254982b3bf0908839bb7dc173b6cbaaa (diff)
downloadrust-c253df5249b5f3c7d6f85e1ed28afbf0adc1390b.tar.gz
rust-c253df5249b5f3c7d6f85e1ed28afbf0adc1390b.zip
remove `Pass` and (temporarily) drop `Inline`
Diffstat (limited to 'src/librustc_mir/transform')
-rw-r--r--src/librustc_mir/transform/inline.rs7
-rw-r--r--src/librustc_mir/transform/mod.rs8
2 files changed, 8 insertions, 7 deletions
diff --git a/src/librustc_mir/transform/inline.rs b/src/librustc_mir/transform/inline.rs
index e10a91c6ec2..2323b55951d 100644
--- a/src/librustc_mir/transform/inline.rs
+++ b/src/librustc_mir/transform/inline.rs
@@ -18,7 +18,7 @@ use rustc_data_structures::graph;
 
 use rustc::dep_graph::DepNode;
 use rustc::mir::*;
-use rustc::mir::transform::{MirCtxt, MirSource, Pass, PassId};
+use rustc::mir::transform::{MirCtxt, MirSource, PassId};
 use rustc::mir::visit::*;
 use rustc::traits;
 use rustc::ty::{self, Ty, TyCtxt};
@@ -45,6 +45,11 @@ const UNKNOWN_SIZE_COST: usize = 10;
 
 pub struct Inline;
 
+pub trait Pass {
+    fn run_pass<'a, 'tcx: 'a>(&self, mir_cx: &MirCtxt<'a, 'tcx>)
+                              -> Multi<PassId, &'tcx Steal<Mir<'tcx>>>;
+}
+
 impl Pass for Inline {
     fn run_pass<'a, 'tcx: 'a>(&self, mir_cx: &MirCtxt<'a, 'tcx>)
                               -> Multi<PassId, &'tcx Steal<Mir<'tcx>>> {
diff --git a/src/librustc_mir/transform/mod.rs b/src/librustc_mir/transform/mod.rs
index 81af7c23960..feef7a197c5 100644
--- a/src/librustc_mir/transform/mod.rs
+++ b/src/librustc_mir/transform/mod.rs
@@ -70,15 +70,11 @@ fn mir_pass<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
 
     let mir = pass.run_pass(&mir_ctxt);
 
-    let key = &(suite, pass_num, def_id);
     for hook in passes.hooks() {
-        for (&(_, _, k), v) in mir.iter(key) {
-            let v = &v.borrow();
-            hook.on_mir_pass(&mir_ctxt, Some((k, v)));
-        }
+        hook.on_mir_pass(&mir_ctxt, Some((def_id, &mir)));
     }
 
-    mir
+    Multi::from(tcx.alloc_steal_mir(mir))
 }
 
 struct MirCtxtImpl<'a, 'tcx: 'a> {