fix rustfmt fallout
This commit is contained in:
parent
c74353c7d2
commit
9dee5d582f
8 changed files with 48 additions and 40 deletions
|
|
@ -33,7 +33,7 @@ impl ErrorHandled {
|
|||
ErrorHandled::Reported => {}
|
||||
ErrorHandled::TooGeneric => bug!(
|
||||
"MIR interpretation failed without reporting an error \
|
||||
even though it was fully monomorphized"
|
||||
even though it was fully monomorphized"
|
||||
),
|
||||
}
|
||||
}
|
||||
|
|
@ -137,7 +137,8 @@ impl<'tcx> ConstEvalErr<'tcx> {
|
|||
) -> Result<DiagnosticBuilder<'tcx>, ErrorHandled> {
|
||||
let must_error = match self.error {
|
||||
InterpError::MachineStop(_) => bug!("CTFE does not stop"),
|
||||
err_inval!(Layout(LayoutError::Unknown(_))) | err_inval!(TooGeneric) => {
|
||||
err_inval!(Layout(LayoutError::Unknown(_)))
|
||||
| err_inval!(TooGeneric) => {
|
||||
return Err(ErrorHandled::TooGeneric);
|
||||
}
|
||||
err_inval!(TypeckError) => return Err(ErrorHandled::Reported),
|
||||
|
|
|
|||
|
|
@ -403,8 +403,8 @@ impl<'tcx> AllocMap<'tcx> {
|
|||
let next = self.next_id;
|
||||
self.next_id.0 = self.next_id.0.checked_add(1).expect(
|
||||
"You overflowed a u64 by incrementing by 1... \
|
||||
You've just earned yourself a free drink if we ever meet. \
|
||||
Seriously, how did you do that?!",
|
||||
You've just earned yourself a free drink if we ever meet. \
|
||||
Seriously, how did you do that?!",
|
||||
);
|
||||
next
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,15 +118,17 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
}
|
||||
// The rest is integer/pointer-"like", including fn ptr casts and casts from enums that
|
||||
// are represented as integers.
|
||||
_ => assert!(
|
||||
src.layout.ty.is_bool()
|
||||
|| src.layout.ty.is_char()
|
||||
|| src.layout.ty.is_enum()
|
||||
|| src.layout.ty.is_integral()
|
||||
|| src.layout.ty.is_any_ptr(),
|
||||
"Unexpected cast from type {:?}",
|
||||
src.layout.ty
|
||||
),
|
||||
_ => {
|
||||
assert!(
|
||||
src.layout.ty.is_bool()
|
||||
|| src.layout.ty.is_char()
|
||||
|| src.layout.ty.is_enum()
|
||||
|| src.layout.ty.is_integral()
|
||||
|| src.layout.ty.is_any_ptr(),
|
||||
"Unexpected cast from type {:?}",
|
||||
src.layout.ty
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Handle cast from a univariant (ZST) enum.
|
||||
|
|
|
|||
|
|
@ -152,10 +152,16 @@ impl<'tcx, Tag: Copy + 'static> LocalState<'tcx, Tag> {
|
|||
&mut self,
|
||||
) -> InterpResult<'tcx, Result<&mut LocalValue<Tag>, MemPlace<Tag>>> {
|
||||
match self.value {
|
||||
LocalValue::Dead => throw_unsup!(DeadLocal),
|
||||
LocalValue::Live(Operand::Indirect(mplace)) => Ok(Err(mplace)),
|
||||
LocalValue::Dead => {
|
||||
throw_unsup!(DeadLocal)
|
||||
}
|
||||
LocalValue::Live(Operand::Indirect(mplace)) => {
|
||||
Ok(Err(mplace))
|
||||
}
|
||||
ref mut local @ LocalValue::Live(Operand::Immediate(_))
|
||||
| ref mut local @ LocalValue::Uninitialized => Ok(Ok(local)),
|
||||
| ref mut local @ LocalValue::Uninitialized => {
|
||||
Ok(Ok(local))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -581,9 +581,9 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
|
|||
Ok((layout.size, layout.align.abi))
|
||||
}
|
||||
Some(GlobalAlloc::Memory(alloc)) =>
|
||||
// Need to duplicate the logic here, because the global allocations have
|
||||
// different associated types than the interpreter-local ones.
|
||||
{
|
||||
// Need to duplicate the logic here, because the global allocations have
|
||||
// different associated types than the interpreter-local ones.
|
||||
Ok((alloc.size, alloc.align))
|
||||
}
|
||||
Some(GlobalAlloc::Function(_)) => bug!("We already checked function pointers above"),
|
||||
|
|
|
|||
|
|
@ -543,7 +543,9 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
| ty::ConstKind::Placeholder(..) => {
|
||||
bug!("eval_const_to_op: Unexpected ConstKind {:?}", val)
|
||||
}
|
||||
ty::ConstKind::Value(val_val) => val_val,
|
||||
ty::ConstKind::Value(val_val) => {
|
||||
val_val
|
||||
}
|
||||
};
|
||||
// Other cases need layout.
|
||||
let layout = from_known_layout(layout, || self.layout_of(val.ty))?;
|
||||
|
|
@ -684,16 +686,14 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
let variant_index = variants_start
|
||||
.checked_add(variant_index_relative)
|
||||
.expect("oveflow computing absolute variant idx");
|
||||
assert!(
|
||||
(variant_index as usize)
|
||||
< rval
|
||||
.layout
|
||||
.ty
|
||||
.ty_adt_def()
|
||||
.expect("tagged layout for non adt")
|
||||
.variants
|
||||
.len()
|
||||
);
|
||||
let variants_len = rval
|
||||
.layout
|
||||
.ty
|
||||
.ty_adt_def()
|
||||
.expect("tagged layout for non adt")
|
||||
.variants
|
||||
.len();
|
||||
assert!((variant_index as usize) < variants_len);
|
||||
(u128::from(variant_index), VariantIdx::from_u32(variant_index))
|
||||
} else {
|
||||
(u128::from(dataful_variant.as_u32()), dataful_variant)
|
||||
|
|
|
|||
|
|
@ -432,12 +432,11 @@ where
|
|||
// happens at run-time so that's okay.
|
||||
let align = match self.size_and_align_of(base.meta, field_layout)? {
|
||||
Some((_, align)) => align,
|
||||
None if offset == Size::ZERO =>
|
||||
// An extern type at offset 0, we fall back to its static alignment.
|
||||
// FIXME: Once we have made decisions for how to handle size and alignment
|
||||
// of `extern type`, this should be adapted. It is just a temporary hack
|
||||
// to get some code to work that probably ought to work.
|
||||
{
|
||||
None if offset == Size::ZERO => {
|
||||
// An extern type at offset 0, we fall back to its static alignment.
|
||||
// FIXME: Once we have made decisions for how to handle size and alignment
|
||||
// of `extern type`, this should be adapted. It is just a temporary hack
|
||||
// to get some code to work that probably ought to work.
|
||||
field_layout.align.abi
|
||||
}
|
||||
None => bug!("Cannot compute offset for extern type field at non-0 offset"),
|
||||
|
|
|
|||
|
|
@ -115,11 +115,11 @@ fn write_path(out: &mut String, path: &Vec<PathElem>) {
|
|||
TupleElem(idx) => write!(out, ".{}", idx),
|
||||
ArrayElem(idx) => write!(out, "[{}]", idx),
|
||||
Deref =>
|
||||
// This does not match Rust syntax, but it is more readable for long paths -- and
|
||||
// some of the other items here also are not Rust syntax. Actually we can't
|
||||
// even use the usual syntax because we are just showing the projections,
|
||||
// not the root.
|
||||
{
|
||||
// This does not match Rust syntax, but it is more readable for long paths -- and
|
||||
// some of the other items here also are not Rust syntax. Actually we can't
|
||||
// even use the usual syntax because we are just showing the projections,
|
||||
// not the root.
|
||||
write!(out, ".<deref>")
|
||||
}
|
||||
Tag => write!(out, ".<enum-tag>"),
|
||||
|
|
@ -207,8 +207,8 @@ impl<'rt, 'mir, 'tcx, M: Machine<'mir, 'tcx>> ValidityVisitor<'rt, 'mir, 'tcx, M
|
|||
// we might be projecting *to* a variant, or to a field *in*a variant.
|
||||
match layout.variants {
|
||||
layout::Variants::Single { index } =>
|
||||
// Inside a variant
|
||||
{
|
||||
// Inside a variant
|
||||
PathElem::Field(def.variants[index].fields[field].ident.name)
|
||||
}
|
||||
_ => bug!(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue