// run-pass | |
#![feature(unsized_tuple_coercion)] | |
// Check that we do not change the offsets of ZST fields when unsizing | |
fn scalar_layout() { | |
let sized: &(u8, [(); 13]) = &(123, [(); 13]); | |
let unsize: &(u8, [()]) = sized; | |
assert_eq!(sized.1.as_ptr(), unsize.1.as_ptr()); | |
} | |
fn scalarpair_layout() { | |
let sized: &(u8, u16, [(); 13]) = &(123, 456, [(); 13]); | |
let unsize: &(u8, u16, [()]) = sized; | |
assert_eq!(sized.2.as_ptr(), unsize.2.as_ptr()); | |
} | |
pub fn main() { | |
scalar_layout(); | |
scalarpair_layout(); | |
} |