Fully use miri in trans

This commit is contained in:
Oliver Schneider 2018-01-16 09:31:48 +01:00
parent b2b101befc
commit b33e4e784e
No known key found for this signature in database
GPG key ID: A69F8D225B3AD7D9
78 changed files with 1935 additions and 2186 deletions

View file

@ -2500,7 +2500,11 @@ impl Clean<Type> for hir::Ty {
let def_id = cx.tcx.hir.body_owner_def_id(n);
let param_env = cx.tcx.param_env(def_id);
let substs = Substs::identity_for_item(cx.tcx, def_id);
let n = cx.tcx.const_eval(param_env.and((def_id, substs))).unwrap_or_else(|_| {
let cid = GlobalId {
instance: ty::Instance::new(def_id, substs),
promoted: None
};
let n = cx.tcx.const_eval(param_env.and(cid)).unwrap_or_else(|_| {
cx.tcx.mk_const(ty::Const {
val: ConstVal::Unevaluated(def_id, substs),
ty: cx.tcx.types.usize
@ -2633,7 +2637,11 @@ impl<'tcx> Clean<Type> for Ty<'tcx> {
let mut n = cx.tcx.lift(&n).unwrap();
if let ConstVal::Unevaluated(def_id, substs) = n.val {
let param_env = cx.tcx.param_env(def_id);
if let Ok(new_n) = cx.tcx.const_eval(param_env.and((def_id, substs))) {
let cid = GlobalId {
instance: ty::Instance::new(def_id, substs),
promoted: None
};
if let Ok(new_n) = cx.tcx.const_eval(param_env.and(cid)) {
n = new_n;
}
};