### What it does Checks for casts of function pointers to something other than usize ### Why is this bad? Casting a function pointer to anything other than usize/isize is not portable across architectures, because you end up losing bits if the target type is too small or end up with a bunch of extra bits that waste space and add more instructions to the final binary than strictly necessary for the problem Casting to isize also doesn't make sense since there are no signed addresses. ### Example ``` fn fun() -> i32 { 1 } let _ = fun as i64; ``` Use instead: ``` let _ = fun as usize; ```