about summary refs log tree commit diff
path: root/src/test/ui/const-generics/auxiliary/crayte.rs
blob: d9baab956c9f3365222f34d11860a544b5c88f0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// edition:2018
#![cfg_attr(full, feature(const_generics))]
#![cfg_attr(full, allow(incomplete_features))]

pub trait Foo<const N: usize> {}
struct Local;
impl<const N: usize> Foo<N> for Local {}

pub fn out_foo<const N: usize>() -> impl Foo<N> { Local }
pub fn in_foo<const N: usize>(_: impl Foo<N>) {}

pub async fn async_simple<const N: usize>(_: [u8; N]) {}
pub async fn async_out_foo<const N: usize>() -> impl Foo<N> { Local }
pub async fn async_in_foo<const N: usize>(_: impl Foo<N>) {}

pub trait Bar<const N: usize> {
    type Assoc: Foo<N>;
}