1
Fork 0

cleanup WithOptConstParam queries

This commit is contained in:
Bastian Kauschke 2020-10-04 23:20:00 +02:00
parent a835b483fe
commit 536674fb69
5 changed files with 38 additions and 30 deletions

View file

@ -482,11 +482,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
match instance {
ty::InstanceDef::Item(def) => {
if self.tcx.is_mir_available(def.did) {
if let Some((did, param_did)) = def.as_const_arg() {
Ok(self.tcx.optimized_mir_of_const_arg((did, param_did)))
} else {
Ok(self.tcx.optimized_mir(def.did))
}
Ok(self.tcx.optimized_mir_of_opt_const_arg(def))
} else {
throw_unsup!(NoMirFor(def.did))
}

View file

@ -332,11 +332,7 @@ fn mir_promoted(
// this point, before we steal the mir-const result.
// Also this means promotion can rely on all const checks having been done.
let _ = tcx.mir_const_qualif_opt_const_arg(def);
let _ = if let Some(param_did) = def.const_param_did {
tcx.mir_abstract_const_of_const_arg((def.did, param_did))
} else {
tcx.mir_abstract_const(def.did.to_def_id())
};
let _ = tcx.mir_abstract_const_of_opt_const_arg(def.to_global());
let mut body = tcx.mir_const(def).steal();
let mut required_consts = Vec::new();