23 lines
474 B
Rust
23 lines
474 B
Rust
// edition:2018
|
|
|
|
#![feature(ptr_metadata)]
|
|
#![feature(type_alias_impl_trait)]
|
|
|
|
type Opaque = impl std::fmt::Debug + ?Sized;
|
|
|
|
fn opaque() -> &'static Opaque {
|
|
&[1] as &[i32]
|
|
}
|
|
|
|
fn a<T: ?Sized>() {
|
|
is_thin::<T>();
|
|
//~^ ERROR type mismatch resolving `<T as Pointee>::Metadata == ()`
|
|
|
|
is_thin::<Opaque>();
|
|
//~^ ERROR type mismatch resolving `<Opaque as Pointee>::Metadata == ()`
|
|
}
|
|
|
|
fn is_thin<T: std::ptr::Pointee<Metadata = ()> + ?Sized>() {}
|
|
|
|
fn main() {}
|