Add test case for unsizing with niche
This commit is contained in:
parent
3003d05a8b
commit
b982f3a988
30
tests/ui/layout/issue-112048-unsizing-niche.rs
Normal file
30
tests/ui/layout/issue-112048-unsizing-niche.rs
Normal file
@ -0,0 +1,30 @@
|
||||
// run-pass
|
||||
|
||||
// Check that unsizing does not change which field is considered for niche layout.
|
||||
|
||||
#![feature(offset_of)]
|
||||
#![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)
|
||||
);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user