2021-08-27 11:04:57 -05:00
|
|
|
#![feature(generic_const_exprs)]
|
2020-12-02 07:33:26 -06:00
|
|
|
#![allow(incomplete_features)]
|
|
|
|
|
|
|
|
// `N + 1` also depends on `T` here even if it doesn't use it.
|
|
|
|
fn q<T, const N: usize>(_: T) -> [u8; N + 1] {
|
|
|
|
todo!()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn supplier<T>() -> T {
|
|
|
|
todo!()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn catch_me<const N: usize>() where [u8; N + 1]: Default {
|
|
|
|
let mut x = supplier();
|
|
|
|
x = q::<_, N>(x); //~ ERROR mismatched types
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
catch_me::<3>();
|
|
|
|
}
|