about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-10-26 19:34:14 +0000
committerbors <bors@rust-lang.org>2015-10-26 19:34:14 +0000
commit2c42c9881542a0f3a8b573a56cd1c12643d4be52 (patch)
tree2342e16a143560cfde6773b870afd834c22dc7e9
parent278cc2f15766402d26b4173d636f765018b68878 (diff)
parent2d5b8b0f2de07d33cbf53f6feefffb3a0d7242ca (diff)
downloadrust-2c42c9881542a0f3a8b573a56cd1c12643d4be52.tar.gz
rust-2c42c9881542a0f3a8b573a56cd1c12643d4be52.zip
Auto merge of #29384 - nikomatsakis:mir-not-stable-beta, r=alexcrichton
-rw-r--r--src/librustc_driver/driver.rs16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs
index c086737b640..69c4dcb0a19 100644
--- a/src/librustc_driver/driver.rs
+++ b/src/librustc_driver/driver.rs
@@ -46,6 +46,7 @@ use syntax::ast::{self, NodeIdAssigner};
 use syntax::attr;
 use syntax::attr::AttrMetaMethods;
 use syntax::diagnostics;
+use syntax::feature_gate::UnstableFeatures;
 use syntax::fold::Folder;
 use syntax::parse;
 use syntax::parse::token;
@@ -750,9 +751,18 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session,
         time(time_passes, "match checking", ||
             middle::check_match::check_crate(tcx));
 
-        let _mir_map =
-            time(time_passes, "MIR dump", ||
-                 mir::mir_map::build_mir_for_crate(tcx));
+        match tcx.sess.opts.unstable_features {
+            UnstableFeatures::Disallow => {
+                // use this as a shorthand for beta/stable, and skip
+                // MIR construction there until known regressions are
+                // addressed
+            }
+            UnstableFeatures::Allow | UnstableFeatures::Cheat => {
+                let _mir_map =
+                    time(time_passes, "MIR dump", ||
+                            mir::mir_map::build_mir_for_crate(tcx));
+            }
+        }
 
         time(time_passes, "liveness checking", ||
             middle::liveness::check_crate(tcx));