diff --git a/rust-version b/rust-version index cca795330b..15dc8792af 100644 --- a/rust-version +++ b/rust-version @@ -1 +1 @@ -96fe3c31c2ec385f3d3263346bcdde3d118cdaf6 +6244effd0372d5d88fc859d3bf17ce1efcc2c9ec diff --git a/tests/pass/pattern-types.rs b/tests/pass/pattern-types.rs new file mode 100644 index 0000000000..90fe0de546 --- /dev/null +++ b/tests/pass/pattern-types.rs @@ -0,0 +1,18 @@ +#![feature(pattern_types, pattern_type_macro, sized_hierarchy)] +#![allow(dead_code)] + +use std::marker::PointeeSized; +use std::mem::transmute; + +pub struct NonNull { + pointer: std::pat::pattern_type!(*const T is !null), +} + +trait Trait {} +impl Trait for () {} + +fn main() { + unsafe { + let _: NonNull = NonNull { pointer: transmute(&mut () as *mut dyn Trait) }; + } +}