summary refs log tree commit diff
path: root/src/test/ui/const-generics/const_evaluatable_checked/object-safety-err-where-bounds.rs
blob: 5fbd4a5fa2e6434dee7d0d115bcbc6fd587ff789 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#![feature(const_generics, const_evaluatable_checked)]
#![allow(incomplete_features)]
#![deny(where_clauses_object_safety)]


const fn bar<T: ?Sized>() -> usize { 7 }

trait Foo {
    fn test(&self) where [u8; bar::<Self>()]: Sized;
    //~^ ERROR the trait `Foo` cannot be made into an object
    //~| WARN this was previously accepted by the compiler but is being phased out
}

impl Foo for () {
    fn test(&self) where [u8; bar::<Self>()]: Sized {}
}

fn use_dyn(v: &dyn Foo) {
    v.test();
}

fn main() {}