Get rid of const eval_* and try_eval_* helpers
This commit is contained in:
parent
a2a1206811
commit
e83e4e8112
31 changed files with 119 additions and 172 deletions
|
@ -1957,7 +1957,8 @@ fn check_must_not_suspend_ty<'tcx>(
|
|||
let descr_pre = &format!("{}array{} of ", data.descr_pre, plural_suffix);
|
||||
check_must_not_suspend_ty(tcx, ty, hir_id, param_env, SuspendCheckData {
|
||||
descr_pre,
|
||||
plural_len: len.try_eval_target_usize(tcx, param_env).unwrap_or(0) as usize + 1,
|
||||
// FIXME(must_not_suspend): This is wrong. We should handle printing unevaluated consts.
|
||||
plural_len: len.try_to_target_usize(tcx).unwrap_or(0) as usize + 1,
|
||||
..data
|
||||
})
|
||||
}
|
||||
|
|
|
@ -58,8 +58,7 @@ impl<'tcx> crate::MirPass<'tcx> for ElaborateDrops {
|
|||
let param_env = tcx.param_env_reveal_all_normalized(def_id);
|
||||
// For types that do not need dropping, the behaviour is trivial. So we only need to track
|
||||
// init/uninit for types that do need dropping.
|
||||
let move_data =
|
||||
MoveData::gather_moves(body, tcx, param_env, |ty| ty.needs_drop(tcx, param_env));
|
||||
let move_data = MoveData::gather_moves(body, tcx, |ty| ty.needs_drop(tcx, param_env));
|
||||
let elaborate_patch = {
|
||||
let env = MoveDataParamEnv { move_data, param_env };
|
||||
|
||||
|
|
|
@ -602,7 +602,7 @@ impl<'mir, 'tcx> ConstPropagator<'mir, 'tcx> {
|
|||
Len(place) => {
|
||||
let len = if let ty::Array(_, n) = place.ty(self.local_decls(), self.tcx).ty.kind()
|
||||
{
|
||||
n.try_eval_target_usize(self.tcx, self.param_env)?
|
||||
n.try_to_target_usize(self.tcx)?
|
||||
} else {
|
||||
match self.get_const(place)? {
|
||||
Value::Immediate(src) => src.len(&self.ecx).discard_err()?,
|
||||
|
|
|
@ -329,7 +329,7 @@ impl<'tcx> Validator<'_, 'tcx> {
|
|||
// Determine the type of the thing we are indexing.
|
||||
&& let ty::Array(_, len) = place_base.ty(self.body, self.tcx).ty.kind()
|
||||
// It's an array; determine its length.
|
||||
&& let Some(len) = len.try_eval_target_usize(self.tcx, self.param_env)
|
||||
&& let Some(len) = len.try_to_target_usize(self.tcx)
|
||||
// If the index is in-bounds, go ahead.
|
||||
&& idx < len
|
||||
{
|
||||
|
@ -407,7 +407,7 @@ impl<'tcx> Validator<'_, 'tcx> {
|
|||
// mutably without consequences. However, only &mut []
|
||||
// is allowed right now.
|
||||
if let ty::Array(_, len) = ty.kind() {
|
||||
match len.try_eval_target_usize(self.tcx, self.param_env) {
|
||||
match len.try_to_target_usize(self.tcx) {
|
||||
Some(0) => {}
|
||||
_ => return Err(Unpromotable),
|
||||
}
|
||||
|
|
|
@ -19,8 +19,7 @@ pub(super) struct RemoveUninitDrops;
|
|||
impl<'tcx> crate::MirPass<'tcx> for RemoveUninitDrops {
|
||||
fn run_pass(&self, tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
|
||||
let param_env = tcx.param_env(body.source.def_id());
|
||||
let move_data =
|
||||
MoveData::gather_moves(body, tcx, param_env, |ty| ty.needs_drop(tcx, param_env));
|
||||
let move_data = MoveData::gather_moves(body, tcx, |ty| ty.needs_drop(tcx, param_env));
|
||||
|
||||
let mut maybe_inits = MaybeInitializedPlaces::new(tcx, body, &move_data)
|
||||
.into_engine(tcx, body)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue