don't lint on comparing `*const f32`s

This commit is contained in:
Oliver 'ker' Schneider 2016-06-25 18:59:37 +02:00
parent e25d732750
commit 8c5e617c9a
2 changed files with 8 additions and 4 deletions

View File

@ -523,8 +523,7 @@ pub fn span_lint_and_then<'a, T: LintContext, F>(cx: &'a T, lint: &'static Lint,
/// 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,
}
}
@ -533,8 +532,7 @@ pub fn walk_ptrs_ty(ty: ty::Ty) -> 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),
}
}

View File

@ -63,4 +63,10 @@ fn main() {
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
}