Skip to content

Commit b96202b

Browse files
committed
Update for changes in rustc.
1 parent 244ae8e commit b96202b

File tree

3 files changed

+10
-10
lines changed

3 files changed

+10
-10
lines changed

Diff for: src/interpreter/mod.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
771771
match (field_index, &self.tcx.struct_tail(ty).sty) {
772772
(1, &ty::TyStr) |
773773
(1, &ty::TySlice(_)) => Ok(self.tcx.types.usize),
774-
(1, &ty::TyTrait(_)) |
774+
(1, &ty::TyDynamic(..)) |
775775
(0, _) => Ok(self.tcx.mk_imm_ptr(self.tcx.types.u8)),
776776
_ => bug!("invalid fat pointee type: {}", ty),
777777
}
@@ -1009,7 +1009,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
10091009
trace!("deref to {} on {:?}", pointee_type, val);
10101010

10111011
match self.tcx.struct_tail(pointee_type).sty {
1012-
ty::TyTrait(_) => {
1012+
ty::TyDynamic(..) => {
10131013
let (ptr, vtable) = val.expect_ptr_vtable_pair(&self.memory)?;
10141014
(ptr, LvalueExtra::Vtable(vtable))
10151015
},
@@ -1462,7 +1462,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
14621462
trace!("reading fat pointer extra of type {}", ty);
14631463
let extra = ptr.offset(self.memory.pointer_size());
14641464
let extra = match self.tcx.struct_tail(ty).sty {
1465-
ty::TyTrait(..) => PrimVal::from_ptr(self.memory.read_ptr(extra)?),
1465+
ty::TyDynamic(..) => PrimVal::from_ptr(self.memory.read_ptr(extra)?),
14661466
ty::TySlice(..) |
14671467
ty::TyStr => PrimVal::from_uint(self.memory.read_usize(extra)?),
14681468
_ => bug!("unsized primval ptr read from {:?}", ty),
@@ -1529,14 +1529,14 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
15291529
let ptr = PrimVal::from_ptr(ptr);
15301530
self.write_value(Value::ByValPair(ptr, len), dest, dest_ty)?;
15311531
}
1532-
(&ty::TyTrait(_), &ty::TyTrait(_)) => {
1532+
(&ty::TyDynamic(..), &ty::TyDynamic(..)) => {
15331533
// For now, upcasts are limited to changes in marker
15341534
// traits, and hence never actually require an actual
15351535
// change to the vtable.
15361536
self.write_value(src, dest, dest_ty)?;
15371537
},
1538-
(_, &ty::TyTrait(ref data)) => {
1539-
let trait_ref = data.principal.with_self_ty(self.tcx, src_pointee_ty);
1538+
(_, &ty::TyDynamic(ref data, _)) => {
1539+
let trait_ref = data.principal().unwrap().with_self_ty(self.tcx, src_pointee_ty);
15401540
let trait_ref = self.tcx.erase_regions(&trait_ref);
15411541
let vtable = self.get_vtable(trait_ref)?;
15421542
let ptr = src.read_ptr(&self.memory)?;

Diff for: src/interpreter/terminator/intrinsics.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
182182
Value::ByValPair(ptr, extra) => Lvalue::Ptr {
183183
ptr: ptr.to_ptr(),
184184
extra: match self.tcx.struct_tail(ty).sty {
185-
ty::TyTrait(_) => LvalueExtra::Vtable(extra.to_ptr()),
185+
ty::TyDynamic(..) => LvalueExtra::Vtable(extra.to_ptr()),
186186
ty::TyStr | ty::TySlice(_) => LvalueExtra::Length(extra.try_as_uint()?),
187187
_ => bug!("invalid fat pointer type: {}", ptr_ty),
188188
},
@@ -465,7 +465,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
465465
Ok((size, align))
466466
}
467467
}
468-
ty::TyTrait(..) => {
468+
ty::TyDynamic(..) => {
469469
let (_, vtable) = value.expect_ptr_vtable_pair(&self.memory)?;
470470
// the second entry in the vtable is the dynamic size of the object.
471471
let size = self.memory.read_usize(vtable.offset(pointer_size))?;

Diff for: src/interpreter/terminator/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
550550
Value::ByValPair(prim_ptr, extra) => {
551551
let ptr = prim_ptr.to_ptr();
552552
let extra = match self.tcx.struct_tail(contents_ty).sty {
553-
ty::TyTrait(_) => LvalueExtra::Vtable(extra.to_ptr()),
553+
ty::TyDynamic(..) => LvalueExtra::Vtable(extra.to_ptr()),
554554
ty::TyStr | ty::TySlice(_) => LvalueExtra::Length(extra.try_as_uint()?),
555555
_ => bug!("invalid fat pointer type: {}", ty),
556556
};
@@ -640,7 +640,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
640640
};
641641
self.drop_fields(fields.iter().cloned().zip(offsets.iter().cloned()), lval, drop)?;
642642
},
643-
ty::TyTrait(_) => {
643+
ty::TyDynamic(..) => {
644644
let (ptr, vtable) = match lval {
645645
Lvalue::Ptr { ptr, extra: LvalueExtra::Vtable(vtable) } => (ptr, vtable),
646646
_ => bug!("expected an lvalue with a vtable"),

0 commit comments

Comments
 (0)