//@ run-pass | |
// Check that unsizing does not change which field is considered for niche layout. | |
#![allow(dead_code)] | |
#[derive(Clone)] | |
struct WideptrField<T: ?Sized> { | |
first: usize, | |
second: usize, | |
niche: NicheAtEnd, | |
tail: T, | |
} | |
#[derive(Clone)] | |
#[repr(C)] | |
struct NicheAtEnd { | |
arr: [u8; 7], | |
b: bool, | |
} | |
type Tail = [bool; 8]; | |
fn main() { | |
assert_eq!( | |
core::mem::offset_of!(WideptrField<Tail>, niche), | |
core::mem::offset_of!(WideptrField<dyn Send>, niche) | |
); | |
} |