interpret: remove incomplete protection against invalid where clauses
This commit is contained in:
parent
6742e2b185
commit
a7132bf387
7 changed files with 16 additions and 84 deletions
|
@ -303,8 +303,6 @@ const_eval_remainder_overflow =
|
|||
overflow in signed remainder (dividing MIN by -1)
|
||||
const_eval_scalar_size_mismatch =
|
||||
scalar size mismatch: expected {$target_size} bytes but got {$data_size} bytes instead
|
||||
const_eval_size_of_unsized =
|
||||
size_of called on unsized type `{$ty}`
|
||||
const_eval_size_overflow =
|
||||
overflow computing total size of `{$name}`
|
||||
|
||||
|
|
|
@ -862,7 +862,6 @@ impl<'tcx> ReportErrorExt for InvalidProgramInfo<'tcx> {
|
|||
InvalidProgramInfo::FnAbiAdjustForForeignAbi(_) => {
|
||||
rustc_middle::error::middle_adjust_for_foreign_abi_error
|
||||
}
|
||||
InvalidProgramInfo::SizeOfUnsizedType(_) => const_eval_size_of_unsized,
|
||||
InvalidProgramInfo::ConstPropNonsense => {
|
||||
panic!("We had const-prop nonsense, this should never be printed")
|
||||
}
|
||||
|
@ -890,9 +889,6 @@ impl<'tcx> ReportErrorExt for InvalidProgramInfo<'tcx> {
|
|||
builder.set_arg("arch", arch);
|
||||
builder.set_arg("abi", abi.name());
|
||||
}
|
||||
InvalidProgramInfo::SizeOfUnsizedType(ty) => {
|
||||
builder.set_arg("ty", ty);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -269,13 +269,10 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
let ty = self.subst_from_current_frame_and_normalize_erasing_regions(ty)?;
|
||||
let layout = self.layout_of(ty)?;
|
||||
if let mir::NullOp::SizeOf | mir::NullOp::AlignOf = null_op && layout.is_unsized() {
|
||||
// FIXME: This should be a span_bug, but const generics can run MIR
|
||||
// that is not properly type-checked yet (#97477).
|
||||
self.tcx.sess.delay_span_bug(
|
||||
span_bug!(
|
||||
self.frame().current_span(),
|
||||
format!("{null_op:?} MIR operator called for unsized type {ty}"),
|
||||
"{null_op:?} MIR operator called for unsized type {ty}",
|
||||
);
|
||||
throw_inval!(SizeOfUnsizedType(ty));
|
||||
}
|
||||
let val = match null_op {
|
||||
mir::NullOp::SizeOf => layout.size.bytes(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue