summary refs log tree commit diff
path: root/src/test/ui/const-generics/const_evaluatable_checked/object-safety-ok-infer-err.rs
blob: 9a95908d59d0d1a56d681dea43558f7be52e11f7 (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)]

trait Foo<const N: usize> {
    fn test(&self) -> [u8; N + 1];
}

impl<const N: usize> Foo<N> for () {
    fn test(&self) -> [u8; N + 1] {
        [0; N + 1]
    }
}

fn use_dyn<const N: usize>(v: &dyn Foo<N>) where [u8; N + 1]: Sized {
    assert_eq!(v.test(), [0; N + 1]);
}

fn main() {
    // FIXME(const_evaluatable_checked): Improve the error message here.
    use_dyn(&());
    //~^ ERROR type annotations needed
}