Index(ref operand) => {
let elem_size = match base_ty.sty {
- ty::TyArray(elem_ty, _) => self.type_size(elem_ty),
+ ty::TyArray(elem_ty, _) |
ty::TySlice(elem_ty) => self.type_size(elem_ty),
_ => panic!("indexing expected an array or slice, got {:?}", base_ty),
};
let vtable = selection.map(|predicate| {
fulfill_cx.register_predicate_obligation(&infcx, predicate);
});
- let vtable = infer::drain_fulfillment_cx_or_panic(
+ infer::drain_fulfillment_cx_or_panic(
DUMMY_SP, &infcx, &mut fulfill_cx, &vtable
- );
-
- vtable
+ )
}
/// Trait method, which has to be resolved to an impl method.
}
}
-fn pointee_type<'tcx>(ptr_ty: ty::Ty<'tcx>) -> Option<ty::Ty<'tcx>> {
+fn pointee_type(ptr_ty: ty::Ty) -> Option<ty::Ty> {
match ptr_ty.sty {
ty::TyRef(_, ty::TypeAndMut { ty, .. }) |
ty::TyRawPtr(ty::TypeAndMut { ty, .. }) |
impl Repr {
pub fn size(&self) -> usize {
match *self {
- Repr::Primitive { size } => size,
+ Repr::Primitive { size } |
Repr::Aggregate { size, .. } => size,
Repr::Array { elem_size, length } => elem_size * length,
}
fn clear_relocations(&mut self, ptr: Pointer, size: usize) -> EvalResult<()> {
// Find all relocations overlapping the given range.
let keys: Vec<_> = try!(self.relocations(ptr, size)).map(|(&k, _)| k).collect();
- if keys.len() == 0 { return Ok(()); }
+ if keys.is_empty() { return Ok(()); }
// Find the start and end of the given range and its outermost relocations.
let start = ptr.offset;