| //@ run-pass | |
| #![feature(ptr_metadata)] | |
| use std::alloc::Layout; | |
| use std::ptr::Pointee; | |
| trait Foo { | |
| type Bar; | |
| } | |
| impl Foo for () { | |
| type Bar = (); | |
| } | |
| struct Wrapper1<T: Foo>(#[allow(dead_code)] <T as Foo>::Bar); | |
| struct Wrapper2<T: Foo>(#[allow(dead_code)] <Wrapper1<T> as Pointee>::Metadata); | |
| fn main() { | |
| let _: Wrapper2<()> = Wrapper2(()); | |
| let _ = Layout::new::<Wrapper2<()>>(); | |
| } |