22 lines
392 B
Rust
22 lines
392 B
Rust
// run-pass
|
|
#![feature(generic_const_exprs)]
|
|
#![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() {
|
|
use_dyn::<3>(&());
|
|
}
|