summaryrefslogtreecommitdiffstats
path: root/tests/ui/traits/new-solver/pointee.rs
blob: fa6ee2e2daf643727fe1f0264af0d777fad0f938 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// compile-flags: -Ztrait-solver=next
// check-pass
#![feature(ptr_metadata)]

use std::ptr::{DynMetadata, Pointee};

trait Trait<U> {}
struct MyDst<T: ?Sized>(T);

fn works<T>() {
    let _: <T as Pointee>::Metadata = ();
    let _: <[T] as Pointee>::Metadata = 1_usize;
    let _: <str as Pointee>::Metadata = 1_usize;
    let _: <dyn Trait<T> as Pointee>::Metadata = give::<DynMetadata<dyn Trait<T>>>();
    let _: <MyDst<T> as Pointee>::Metadata = ();
    let _: <((((([u8],),),),),) as Pointee>::Metadata = 1_usize;
}

fn give<U>() -> U {
    loop {}
}

fn main() {}