### What it does Checks for `as` casts between raw pointers without changing its mutability, namely `*const T` to `*const U` and `*mut T` to `*mut U`. ### Why is this bad? Though `as` casts between raw pointers is not terrible, `pointer::cast` is safer because it cannot accidentally change the pointer's mutability nor cast the pointer to other types like `usize`. ### Example ``` let ptr: *const u32 = &42_u32; let mut_ptr: *mut u32 = &mut 42_u32; let _ = ptr as *const i32; let _ = mut_ptr as *mut i32; ``` Use instead: ``` let ptr: *const u32 = &42_u32; let mut_ptr: *mut u32 = &mut 42_u32; let _ = ptr.cast::(); let _ = mut_ptr.cast::(); ```