// build-pass | |
#![feature(generic_const_exprs)] | |
#![allow(incomplete_features)] | |
trait Foo { | |
type Output; | |
fn foo() -> Self::Output; | |
} | |
impl Foo for [u8; 3] { | |
type Output = [u8; 1 + 2]; | |
fn foo() -> [u8; 3] { | |
[1u8; 3] | |
} | |
} | |
fn bug<const N: usize>() | |
where | |
[u8; N]: Foo, | |
<[u8; N] as Foo>::Output: AsRef<[u8]>, | |
{ | |
<[u8; N]>::foo().as_ref(); | |
} | |
fn main() { | |
bug::<3>(); | |
} |