// compile-flags: -Ztrait-solver=next // check-pass #![feature(ptr_metadata)] use std::ptr::{DynMetadata, Pointee}; trait Trait {} struct MyDst(T); fn works() { let _: ::Metadata = (); let _: <[T] as Pointee>::Metadata = 1_usize; let _: ::Metadata = 1_usize; let _: as Pointee>::Metadata = give::>>(); let _: as Pointee>::Metadata = (); let _: <((((([u8],),),),),) as Pointee>::Metadata = 1_usize; } fn give() -> U { loop {} } fn main() {}