blob: 90fe0de5469151831d4c80e6c3470d8a9f775604 [file] [log] [blame]
#![feature(pattern_types, pattern_type_macro, sized_hierarchy)]
#![allow(dead_code)]
use std::marker::PointeeSized;
use std::mem::transmute;
pub struct NonNull<T: PointeeSized> {
pointer: std::pat::pattern_type!(*const T is !null),
}
trait Trait {}
impl Trait for () {}
fn main() {
unsafe {
let _: NonNull<dyn Trait> = NonNull { pointer: transmute(&mut () as *mut dyn Trait) };
}
}