]> git.lizzy.rs Git - rust.git/commitdiff
mir: Run drop elaboration on constant MIR
authorNick Fitzgerald <fitzgen@gmail.com>
Fri, 27 Apr 2018 13:36:46 +0000 (06:36 -0700)
committerNick Fitzgerald <fitzgen@gmail.com>
Fri, 27 Apr 2018 14:03:13 +0000 (07:03 -0700)
Seems to Just Work since miri merged.

src/librustc_mir/transform/elaborate_drops.rs

index f63a5ef301a6815bd1769c64c779a9e37eeea8db..8b771fcf4936b22cb3e463fbdcb88b4c93ea7c68 100644 (file)
@@ -15,7 +15,6 @@
 use dataflow::{drop_flag_effects_for_location, on_lookup_result_bits};
 use dataflow::MoveDataParamEnv;
 use dataflow::{self, do_dataflow, DebugFormatted};
-use rustc::hir;
 use rustc::ty::{self, TyCtxt};
 use rustc::mir::*;
 use rustc::middle::const_val::ConstVal;
@@ -42,14 +41,7 @@ fn run_pass<'a, 'tcx>(&self,
     {
         debug!("elaborate_drops({:?} @ {:?})", src, mir.span);
 
-        // Don't run on constant MIR, because trans might not be able to
-        // evaluate the modified MIR.
-        // FIXME(eddyb) Remove check after miri is merged.
         let id = tcx.hir.as_local_node_id(src.def_id).unwrap();
-        match (tcx.hir.body_owner_kind(id), src.promoted) {
-            (hir::BodyOwnerKind::Fn, None) => {},
-            _ => return
-        }
         let param_env = tcx.param_env(src.def_id).with_reveal_all();
         let move_data = MoveData::gather_moves(mir, tcx).unwrap();
         let elaborate_patch = {