interpret: less debug-printing of types
This commit is contained in:
parent
da08a3f40c
commit
bdbf545f42
@ -87,7 +87,7 @@ pub fn cast(
|
||||
let fn_ptr = self.fn_ptr(FnVal::Instance(instance));
|
||||
self.write_pointer(fn_ptr, dest)?;
|
||||
}
|
||||
_ => span_bug!(self.cur_span(), "reify fn pointer on {:?}", src.layout.ty),
|
||||
_ => span_bug!(self.cur_span(), "reify fn pointer on {}", src.layout.ty),
|
||||
}
|
||||
}
|
||||
|
||||
@ -98,7 +98,7 @@ pub fn cast(
|
||||
// No change to value
|
||||
self.write_immediate(*src, dest)?;
|
||||
}
|
||||
_ => span_bug!(self.cur_span(), "fn to unsafe fn cast on {:?}", cast_ty),
|
||||
_ => span_bug!(self.cur_span(), "fn to unsafe fn cast on {}", cast_ty),
|
||||
}
|
||||
}
|
||||
|
||||
@ -119,7 +119,7 @@ pub fn cast(
|
||||
let fn_ptr = self.fn_ptr(FnVal::Instance(instance));
|
||||
self.write_pointer(fn_ptr, dest)?;
|
||||
}
|
||||
_ => span_bug!(self.cur_span(), "closure fn pointer on {:?}", src.layout.ty),
|
||||
_ => span_bug!(self.cur_span(), "closure fn pointer on {}", src.layout.ty),
|
||||
}
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ pub fn float_to_float_or_int(
|
||||
Float(FloatTy::F32) => self.cast_from_float(src.to_scalar().to_f32()?, cast_ty),
|
||||
Float(FloatTy::F64) => self.cast_from_float(src.to_scalar().to_f64()?, cast_ty),
|
||||
_ => {
|
||||
bug!("Can't cast 'Float' type into {:?}", cast_ty);
|
||||
bug!("Can't cast 'Float' type into {}", cast_ty);
|
||||
}
|
||||
};
|
||||
Ok(ImmTy::from_scalar(val, layout))
|
||||
@ -218,7 +218,7 @@ pub fn ptr_to_ptr(
|
||||
Immediate::ScalarPair(data, _) => Ok(ImmTy::from_scalar(data, dest_layout)),
|
||||
Immediate::Scalar(..) => span_bug!(
|
||||
self.cur_span(),
|
||||
"{:?} input to a fat-to-thin cast ({:?} -> {:?})",
|
||||
"{:?} input to a fat-to-thin cast ({} -> {})",
|
||||
*src,
|
||||
src.layout.ty,
|
||||
cast_ty
|
||||
@ -302,7 +302,7 @@ fn cast_from_int_like(
|
||||
}
|
||||
|
||||
// Casts to bool are not permitted by rustc, no need to handle them here.
|
||||
_ => span_bug!(self.cur_span(), "invalid int to {:?} cast", cast_ty),
|
||||
_ => span_bug!(self.cur_span(), "invalid int to {} cast", cast_ty),
|
||||
})
|
||||
}
|
||||
|
||||
@ -335,7 +335,7 @@ fn cast_from_float<F>(&self, f: F, dest_ty: Ty<'tcx>) -> Scalar<M::Provenance>
|
||||
// float -> f64
|
||||
Float(FloatTy::F64) => Scalar::from_f64(f.convert(&mut false).value),
|
||||
// That's it.
|
||||
_ => span_bug!(self.cur_span(), "invalid float to {:?} cast", dest_ty),
|
||||
_ => span_bug!(self.cur_span(), "invalid float to {} cast", dest_ty),
|
||||
}
|
||||
}
|
||||
|
||||
@ -393,7 +393,7 @@ fn unsize_into_ptr(
|
||||
|
||||
span_bug!(
|
||||
self.cur_span(),
|
||||
"invalid pointer unsizing {:?} -> {:?}",
|
||||
"invalid pointer unsizing {} -> {}",
|
||||
src.layout.ty,
|
||||
cast_ty
|
||||
)
|
||||
@ -407,7 +407,7 @@ fn unsize_into(
|
||||
cast_ty: TyAndLayout<'tcx>,
|
||||
dest: &PlaceTy<'tcx, M::Provenance>,
|
||||
) -> InterpResult<'tcx> {
|
||||
trace!("Unsizing {:?} of type {} into {:?}", *src, src.layout.ty, cast_ty.ty);
|
||||
trace!("Unsizing {:?} of type {} into {}", *src, src.layout.ty, cast_ty.ty);
|
||||
match (&src.layout.ty.kind(), &cast_ty.ty.kind()) {
|
||||
(&ty::Ref(_, s, _), &ty::Ref(_, c, _) | &ty::RawPtr(TypeAndMut { ty: c, .. }))
|
||||
| (&ty::RawPtr(TypeAndMut { ty: s, .. }), &ty::RawPtr(TypeAndMut { ty: c, .. })) => {
|
||||
|
@ -416,7 +416,7 @@ pub(super) fn from_known_layout<'tcx>(
|
||||
if !mir_assign_valid_types(tcx.tcx, param_env, check_layout, known_layout) {
|
||||
span_bug!(
|
||||
tcx.span,
|
||||
"expected type differs from actual type.\nexpected: {:?}\nactual: {:?}",
|
||||
"expected type differs from actual type.\nexpected: {}\nactual: {}",
|
||||
known_layout.ty,
|
||||
check_layout.ty,
|
||||
);
|
||||
@ -712,7 +712,7 @@ pub(super) fn size_and_align_of(
|
||||
|
||||
ty::Foreign(_) => Ok(None),
|
||||
|
||||
_ => span_bug!(self.cur_span(), "size_and_align_of::<{:?}> not supported", layout.ty),
|
||||
_ => span_bug!(self.cur_span(), "size_and_align_of::<{}> not supported", layout.ty),
|
||||
}
|
||||
}
|
||||
#[inline]
|
||||
@ -982,7 +982,7 @@ fn is_very_trivially_sized(ty: Ty<'_>) -> bool {
|
||||
|
||||
ty::Bound(..)
|
||||
| ty::Infer(ty::FreshTy(_) | ty::FreshIntTy(_) | ty::FreshFloatTy(_)) => {
|
||||
bug!("`is_very_trivially_sized` applied to unexpected type: {:?}", ty)
|
||||
bug!("`is_very_trivially_sized` applied to unexpected type: {}", ty)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -514,11 +514,7 @@ pub fn read_immediate(
|
||||
Abi::Scalar(abi::Scalar::Initialized { .. })
|
||||
| Abi::ScalarPair(abi::Scalar::Initialized { .. }, abi::Scalar::Initialized { .. })
|
||||
) {
|
||||
span_bug!(
|
||||
self.cur_span(),
|
||||
"primitive read not possible for type: {:?}",
|
||||
op.layout().ty
|
||||
);
|
||||
span_bug!(self.cur_span(), "primitive read not possible for type: {}", op.layout().ty);
|
||||
}
|
||||
let imm = self.read_immediate_raw(op)?.right().unwrap();
|
||||
if matches!(*imm, Immediate::Uninit) {
|
||||
@ -669,7 +665,7 @@ pub fn eval_place_to_op(
|
||||
)?)?,
|
||||
op.layout,
|
||||
),
|
||||
"eval_place of a MIR place with type {:?} produced an interpreter operand with type {:?}",
|
||||
"eval_place of a MIR place with type {:?} produced an interpreter operand with type {}",
|
||||
mir_place.ty(&self.frame().body.local_decls, *self.tcx).ty,
|
||||
op.layout.ty,
|
||||
);
|
||||
|
@ -207,12 +207,9 @@ fn binary_int_op(
|
||||
if left_layout.ty != right_layout.ty {
|
||||
span_bug!(
|
||||
self.cur_span(),
|
||||
"invalid asymmetric binary op {:?}: {:?} ({:?}), {:?} ({:?})",
|
||||
bin_op,
|
||||
l,
|
||||
left_layout.ty,
|
||||
r,
|
||||
right_layout.ty,
|
||||
"invalid asymmetric binary op {bin_op:?}: {l:?} ({l_ty}), {r:?} ({r_ty})",
|
||||
l_ty = left_layout.ty,
|
||||
r_ty = right_layout.ty,
|
||||
)
|
||||
}
|
||||
|
||||
@ -309,7 +306,7 @@ fn binary_int_op(
|
||||
|
||||
_ => span_bug!(
|
||||
self.cur_span(),
|
||||
"invalid binary op {:?}: {:?}, {:?} (both {:?})",
|
||||
"invalid binary op {:?}: {:?}, {:?} (both {})",
|
||||
bin_op,
|
||||
l,
|
||||
r,
|
||||
@ -355,7 +352,7 @@ pub fn overflowing_binary_op(
|
||||
right: &ImmTy<'tcx, M::Provenance>,
|
||||
) -> InterpResult<'tcx, (ImmTy<'tcx, M::Provenance>, bool)> {
|
||||
trace!(
|
||||
"Running binary op {:?}: {:?} ({:?}), {:?} ({:?})",
|
||||
"Running binary op {:?}: {:?} ({}), {:?} ({})",
|
||||
bin_op,
|
||||
*left,
|
||||
left.layout.ty,
|
||||
@ -394,7 +391,7 @@ pub fn overflowing_binary_op(
|
||||
// the RHS type can be different, e.g. for shifts -- but it has to be integral, too
|
||||
assert!(
|
||||
right.layout.ty.is_integral(),
|
||||
"Unexpected types for BinOp: {:?} {:?} {:?}",
|
||||
"Unexpected types for BinOp: {} {:?} {}",
|
||||
left.layout.ty,
|
||||
bin_op,
|
||||
right.layout.ty
|
||||
@ -409,7 +406,7 @@ pub fn overflowing_binary_op(
|
||||
// (Even when both sides are pointers, their type might differ, see issue #91636)
|
||||
assert!(
|
||||
right.layout.ty.is_any_ptr() || right.layout.ty.is_integral(),
|
||||
"Unexpected types for BinOp: {:?} {:?} {:?}",
|
||||
"Unexpected types for BinOp: {} {:?} {}",
|
||||
left.layout.ty,
|
||||
bin_op,
|
||||
right.layout.ty
|
||||
@ -419,7 +416,7 @@ pub fn overflowing_binary_op(
|
||||
}
|
||||
_ => span_bug!(
|
||||
self.cur_span(),
|
||||
"Invalid MIR: bad LHS type for binop: {:?}",
|
||||
"Invalid MIR: bad LHS type for binop: {}",
|
||||
left.layout.ty
|
||||
),
|
||||
}
|
||||
@ -447,7 +444,7 @@ pub fn overflowing_unary_op(
|
||||
|
||||
let layout = val.layout;
|
||||
let val = val.to_scalar();
|
||||
trace!("Running unary op {:?}: {:?} ({:?})", un_op, val, layout.ty);
|
||||
trace!("Running unary op {:?}: {:?} ({})", un_op, val, layout.ty);
|
||||
|
||||
match layout.ty.kind() {
|
||||
ty::Bool => {
|
||||
|
@ -460,7 +460,7 @@ pub fn deref_pointer(
|
||||
trace!("deref to {} on {:?}", val.layout.ty, *val);
|
||||
|
||||
if val.layout.ty.is_box() {
|
||||
bug!("dereferencing {:?}", val.layout.ty);
|
||||
bug!("dereferencing {}", val.layout.ty);
|
||||
}
|
||||
|
||||
let mplace = self.ref_to_mplace(&val)?;
|
||||
@ -582,7 +582,7 @@ pub fn eval_place(
|
||||
)?)?,
|
||||
place.layout,
|
||||
),
|
||||
"eval_place of a MIR place with type {:?} produced an interpreter place with type {:?}",
|
||||
"eval_place of a MIR place with type {:?} produced an interpreter place with type {}",
|
||||
mir_place.ty(&self.frame().body.local_decls, *self.tcx).ty,
|
||||
place.layout.ty,
|
||||
);
|
||||
@ -835,7 +835,7 @@ fn copy_op_no_validate(
|
||||
if !allow_transmute && !layout_compat {
|
||||
span_bug!(
|
||||
self.cur_span(),
|
||||
"type mismatch when copying!\nsrc: {:?},\ndest: {:?}",
|
||||
"type mismatch when copying!\nsrc: {},\ndest: {}",
|
||||
src.layout().ty,
|
||||
dest.layout().ty,
|
||||
);
|
||||
|
@ -149,7 +149,7 @@ pub(super) fn eval_terminator(
|
||||
}
|
||||
_ => span_bug!(
|
||||
terminator.source_info.span,
|
||||
"invalid callee of type {:?}",
|
||||
"invalid callee of type {}",
|
||||
func.layout.ty
|
||||
),
|
||||
};
|
||||
@ -679,10 +679,7 @@ pub(crate) fn eval_fn_call(
|
||||
self.storage_live(local)?;
|
||||
// Must be a tuple
|
||||
let ty::Tuple(fields) = ty.kind() else {
|
||||
span_bug!(
|
||||
self.cur_span(),
|
||||
"non-tuple type for `spread_arg`: {ty:?}"
|
||||
)
|
||||
span_bug!(self.cur_span(), "non-tuple type for `spread_arg`: {ty}")
|
||||
};
|
||||
for (i, field_ty) in fields.iter().enumerate() {
|
||||
let dest = dest.project_deeper(
|
||||
@ -924,7 +921,7 @@ fn drop_in_place(
|
||||
target: mir::BasicBlock,
|
||||
unwind: mir::UnwindAction,
|
||||
) -> InterpResult<'tcx> {
|
||||
trace!("drop_in_place: {:?},\n {:?}, {:?}", *place, place.layout.ty, instance);
|
||||
trace!("drop_in_place: {:?},\n instance={:?}", place, instance);
|
||||
// We take the address of the object. This may well be unaligned, which is fine
|
||||
// for us here. However, unaligned accesses will probably make the actual drop
|
||||
// implementation fail -- a problem shared by rustc.
|
||||
|
Loading…
Reference in New Issue
Block a user