diff --git a/src/interpreter/mod.rs b/src/interpreter/mod.rs index 3a4d875921a7..a67142e7335d 100644 --- a/src/interpreter/mod.rs +++ b/src/interpreter/mod.rs @@ -1406,7 +1406,7 @@ fn read_value(&mut self, ptr: Pointer, ty: Ty<'tcx>) -> EvalResult<'tcx, Value> if self.type_is_sized(ty) { PrimVal::from_ptr(p) } else { - // FIXME: extract the offset to the tail field for `Box<(i64, i32, [u8])>` + trace!("reading fat pointer extra of type {}", ty); let extra = ptr.offset(self.memory.pointer_size() as isize); let extra = match self.tcx.struct_tail(ty).sty { ty::TyTrait(..) => PrimVal::from_ptr(self.memory.read_ptr(extra)?), @@ -1513,7 +1513,7 @@ fn unsize_into( //let dst = adt::MaybeSizedValue::sized(dst); let src_ptr = match src { Value::ByRef(ptr) => ptr, - _ => panic!("expected pointer, got {:?}", src), + _ => bug!("expected pointer, got {:?}", src), }; let iter = src_fields.zip(dst_fields).enumerate();