// MIR for `vec_deref_to_slice` after PreCodegen fn vec_deref_to_slice(_1: &Vec) -> &[u8] { debug v => _1; let mut _0: &[u8]; scope 1 (inlined as Deref>::deref) { debug self => _1; let mut _4: *const u8; let mut _5: usize; scope 2 (inlined Vec::::as_ptr) { debug self => _1; let mut _2: &alloc::raw_vec::RawVec; scope 3 (inlined alloc::raw_vec::RawVec::::ptr) { debug self => _2; let mut _3: std::ptr::NonNull; scope 4 (inlined Unique::::as_ptr) { debug ((self: Unique).0: std::ptr::NonNull) => _3; debug ((self: Unique).1: std::marker::PhantomData) => const PhantomData::; scope 5 (inlined NonNull::::as_ptr) { debug self => _3; } } } } scope 6 (inlined std::slice::from_raw_parts::<'_, u8>) { debug data => _4; debug len => _5; let _6: *const [u8]; scope 7 (inlined core::ub_checks::check_language_ub) { scope 8 (inlined core::ub_checks::check_language_ub::runtime) { } } scope 9 (inlined std::mem::size_of::) { } scope 10 (inlined align_of::) { } scope 11 (inlined slice_from_raw_parts::) { debug data => _4; debug len => _5; scope 12 (inlined std::ptr::from_raw_parts::<[u8], u8>) { debug data_pointer => _4; debug metadata => _5; } } } } bb0: { StorageLive(_4); StorageLive(_2); _2 = &((*_1).0: alloc::raw_vec::RawVec); StorageLive(_3); _3 = ((((*_1).0: alloc::raw_vec::RawVec).0: std::ptr::Unique).0: std::ptr::NonNull); _4 = (_3.0: *const u8); StorageDead(_3); StorageDead(_2); StorageLive(_5); _5 = ((*_1).1: usize); _6 = *const [u8] from (_4, _5); StorageDead(_5); StorageDead(_4); _0 = &(*_6); return; } }