let rustfmt undo most of my edits :(
This commit is contained in:
parent
9dee5d582f
commit
3fd1af5fdb
@ -137,8 +137,7 @@ 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),
|
||||
|
@ -118,17 +118,15 @@ 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,16 +152,10 @@ 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)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -580,8 +580,7 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
|
||||
let layout = self.tcx.layout_of(ParamEnv::empty().and(ty)).unwrap();
|
||||
Ok((layout.size, layout.align.abi))
|
||||
}
|
||||
Some(GlobalAlloc::Memory(alloc)) =>
|
||||
{
|
||||
Some(GlobalAlloc::Memory(alloc)) => {
|
||||
// Need to duplicate the logic here, because the global allocations have
|
||||
// different associated types than the interpreter-local ones.
|
||||
Ok((alloc.size, alloc.align))
|
||||
|
@ -543,9 +543,7 @@ 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))?;
|
||||
|
@ -114,8 +114,7 @@ fn write_path(out: &mut String, path: &Vec<PathElem>) {
|
||||
ClosureVar(name) => write!(out, ".<closure-var({})>", name),
|
||||
TupleElem(idx) => write!(out, ".{}", idx),
|
||||
ArrayElem(idx) => write!(out, "[{}]", idx),
|
||||
Deref =>
|
||||
{
|
||||
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,
|
||||
@ -206,8 +205,7 @@ impl<'rt, 'mir, 'tcx, M: Machine<'mir, 'tcx>> ValidityVisitor<'rt, 'mir, 'tcx, M
|
||||
ty::Adt(def, ..) if def.is_enum() => {
|
||||
// we might be projecting *to* a variant, or to a field *in*a variant.
|
||||
match layout.variants {
|
||||
layout::Variants::Single { index } =>
|
||||
{
|
||||
layout::Variants::Single { index } => {
|
||||
// Inside a variant
|
||||
PathElem::Field(def.variants[index].fields[field].ident.name)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user