rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
This commit is contained in:
parent
a2374e65aa
commit
c94410c145
72 changed files with 430 additions and 449 deletions
|
@ -1089,7 +1089,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
|
||||
pub fn eval_mir_constant(
|
||||
&self,
|
||||
val: &mir::ConstantKind<'tcx>,
|
||||
val: &mir::Const<'tcx>,
|
||||
span: Option<Span>,
|
||||
layout: Option<TyAndLayout<'tcx>>,
|
||||
) -> InterpResult<'tcx, OpTy<'tcx, M::Provenance>> {
|
||||
|
|
|
@ -686,7 +686,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
|
||||
Constant(constant) => {
|
||||
let c =
|
||||
self.subst_from_current_frame_and_normalize_erasing_regions(constant.literal)?;
|
||||
self.subst_from_current_frame_and_normalize_erasing_regions(constant.const_)?;
|
||||
|
||||
// This can still fail:
|
||||
// * During ConstProp, with `TooGeneric` or since the `required_consts` were not all
|
||||
|
|
|
@ -346,8 +346,8 @@ where
|
|||
};
|
||||
|
||||
// Check the qualifs of the value of `const` items.
|
||||
let uneval = match constant.literal {
|
||||
ConstantKind::Ty(ct)
|
||||
let uneval = match constant.const_ {
|
||||
Const::Ty(ct)
|
||||
if matches!(
|
||||
ct.kind(),
|
||||
ty::ConstKind::Param(_) | ty::ConstKind::Error(_) | ty::ConstKind::Value(_)
|
||||
|
@ -355,11 +355,11 @@ where
|
|||
{
|
||||
None
|
||||
}
|
||||
ConstantKind::Ty(c) => {
|
||||
Const::Ty(c) => {
|
||||
bug!("expected ConstKind::Param or ConstKind::Value here, found {:?}", c)
|
||||
}
|
||||
ConstantKind::Unevaluated(uv, _) => Some(uv),
|
||||
ConstantKind::Val(..) => None,
|
||||
Const::Unevaluated(uv, _) => Some(uv),
|
||||
Const::Val(..) => None,
|
||||
};
|
||||
|
||||
if let Some(mir::UnevaluatedConst { def, args: _, promoted }) = uneval {
|
||||
|
@ -383,5 +383,5 @@ where
|
|||
}
|
||||
|
||||
// Otherwise use the qualifs of the type.
|
||||
Q::in_any_value_of_ty(cx, constant.literal.ty())
|
||||
Q::in_any_value_of_ty(cx, constant.const_.ty())
|
||||
}
|
||||
|
|
|
@ -372,7 +372,7 @@ impl<'tcx> Validator<'_, 'tcx> {
|
|||
StatementKind::Assign(box (
|
||||
_,
|
||||
Rvalue::Use(Operand::Constant(c)),
|
||||
)) => c.literal.try_eval_target_usize(self.tcx, self.param_env),
|
||||
)) => c.const_.try_eval_target_usize(self.tcx, self.param_env),
|
||||
_ => None,
|
||||
}
|
||||
} else {
|
||||
|
@ -554,7 +554,7 @@ impl<'tcx> Validator<'_, 'tcx> {
|
|||
// Integer division: the RHS must be a non-zero const.
|
||||
let const_val = match rhs {
|
||||
Operand::Constant(c) => {
|
||||
c.literal.try_eval_bits(self.tcx, self.param_env)
|
||||
c.const_.try_eval_bits(self.tcx, self.param_env)
|
||||
}
|
||||
_ => None,
|
||||
};
|
||||
|
@ -766,10 +766,10 @@ impl<'a, 'tcx> Promoter<'a, 'tcx> {
|
|||
if self.keep_original {
|
||||
rhs.clone()
|
||||
} else {
|
||||
let unit = Rvalue::Use(Operand::Constant(Box::new(Constant {
|
||||
let unit = Rvalue::Use(Operand::Constant(Box::new(ConstOperand {
|
||||
span: statement.source_info.span,
|
||||
user_ty: None,
|
||||
literal: ConstantKind::zero_sized(self.tcx.types.unit),
|
||||
const_: Const::zero_sized(self.tcx.types.unit),
|
||||
})));
|
||||
mem::replace(rhs, unit)
|
||||
},
|
||||
|
@ -844,10 +844,10 @@ impl<'a, 'tcx> Promoter<'a, 'tcx> {
|
|||
let args = tcx.erase_regions(GenericArgs::identity_for_item(tcx, def));
|
||||
let uneval = mir::UnevaluatedConst { def, args, promoted: Some(promoted_id) };
|
||||
|
||||
Operand::Constant(Box::new(Constant {
|
||||
Operand::Constant(Box::new(ConstOperand {
|
||||
span,
|
||||
user_ty: None,
|
||||
literal: ConstantKind::Unevaluated(uneval, ty),
|
||||
const_: Const::Unevaluated(uneval, ty),
|
||||
}))
|
||||
};
|
||||
|
||||
|
@ -1041,8 +1041,8 @@ pub fn is_const_fn_in_array_repeat_expression<'tcx>(
|
|||
if let Some(Terminator { kind: TerminatorKind::Call { func, destination, .. }, .. }) =
|
||||
&block.terminator
|
||||
{
|
||||
if let Operand::Constant(box Constant { literal, .. }) = func {
|
||||
if let ty::FnDef(def_id, _) = *literal.ty().kind() {
|
||||
if let Operand::Constant(box ConstOperand { const_, .. }) = func {
|
||||
if let ty::FnDef(def_id, _) = *const_.ty().kind() {
|
||||
if destination == place {
|
||||
if ccx.tcx.is_const_fn(def_id) {
|
||||
return true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue