summaryrefslogtreecommitdiffstats
path: root/tests/ui/const-generics/generic_const_exprs/object-safety-err-where-bounds.rs
blob: 42c1cc507b5c976f4529730ee4f25c9c2deb657f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#![feature(generic_const_exprs)]
#![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() {}