//@ edition:2018
//@ check-pass

async fn foo<const N: usize>(arg: [u8; N]) -> usize { arg.len() }

async fn bar<const N: usize>() -> [u8; N] {
    [0; N]
}

trait Trait<const N: usize> {
    fn fynn(&self) -> usize;
}
impl<const N: usize> Trait<N> for [u8; N] {
    fn fynn(&self) -> usize {
        N
    }
}
async fn baz<const N: usize>() -> impl Trait<N> {
    [0; N]
}

async fn biz<const N: usize>(v: impl Trait<N>) -> usize {
    v.fynn()
}

async fn user<const N: usize>() {
    let _ = foo::<N>(bar().await).await;
    let _ = biz(baz::<N>().await).await;
}

fn main() { }
