#![feature(const_generics, const_evaluatable_checked)]
#![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>();
}
