//@ compile-flags: -Znext-solver | |
//@ check-pass | |
#![feature(ptr_metadata)] | |
use std::ptr::{DynMetadata, Pointee}; | |
trait Trait<U> {} | |
struct MyDst<T: ?Sized>(T); | |
fn meta_is<T: Pointee<Metadata = U> + ?Sized, U>() {} | |
fn works<T>() { | |
meta_is::<T, ()>(); | |
meta_is::<[T], usize>(); | |
meta_is::<str, usize>(); | |
meta_is::<dyn Trait<T>, DynMetadata<dyn Trait<T>>>(); | |
meta_is::<MyDst<T>, ()>(); | |
meta_is::<((((([u8],),),),),), usize>(); | |
} | |
fn main() {} |