/// Return the base type for references and raw pointers.
pub fn walk_ptrs_ty(ty: ty::Ty) -> ty::Ty {
match ty.sty {
- ty::TyRef(_, ref tm) |
- ty::TyRawPtr(ref tm) => walk_ptrs_ty(tm.ty),
+ ty::TyRef(_, ref tm) => walk_ptrs_ty(tm.ty),
_ => ty,
}
}
pub fn walk_ptrs_ty_depth(ty: ty::Ty) -> (ty::Ty, usize) {
fn inner(ty: ty::Ty, depth: usize) -> (ty::Ty, usize) {
match ty.sty {
- ty::TyRef(_, ref tm) |
- ty::TyRawPtr(ref tm) => inner(tm.ty, depth + 1),
+ ty::TyRef(_, ref tm) => inner(tm.ty, depth + 1),
_ => (ty, depth),
}
}
x > 0.0;
x <= 0.0;
x >= 0.0;
+
+ let xs : [f32; 1] = [0.0];
+ let a: *const f32 = xs.as_ptr();
+ let b: *const f32 = xs.as_ptr();
+
+ assert!(a == b); // no errors
}