4 #![feature(ptr_metadata)]
5 #![feature(type_alias_impl_trait)]
7 type Opaque = impl std::future::Future;
9 fn opaque() -> Opaque {
14 // type parameter T is known to be sized
16 // tail of ADT (which is a type param) is known to be sized
17 is_thin::<std::cell::Cell<T>>();
18 // opaque type is known to be sized
22 fn a2<T: Iterator>() {
23 // associated type is known to be sized
27 fn is_thin<T: std::ptr::Pointee<Metadata = ()>>() {}