#![feature(strict_provenance)] #![deny(lossy_provenance_casts)] fn main() { let x: u8 = 37; let addr: usize = &x as *const u8 as usize; //~^ ERROR under strict provenance it is considered bad style to cast pointer `*const u8` to integer `usize` let addr_32bit = &x as *const u8 as u32; //~^ ERROR under strict provenance it is considered bad style to cast pointer `*const u8` to integer `u32` // don't add unnecessary parens in the suggestion let ptr = &x as *const u8; let ptr_addr = ptr as usize; //~^ ERROR under strict provenance it is considered bad style to cast pointer `*const u8` to integer `usize` let ptr_addr_32bit = ptr as u32; //~^ ERROR under strict provenance it is considered bad style to cast pointer `*const u8` to integer `u32` }