| //@ build-pass | |
| #![allow(incomplete_features)] | |
| #![feature(generic_const_exprs)] | |
| pub trait Foo { | |
| const SIZE: usize; | |
| fn to_bytes(&self) -> [u8; Self::SIZE]; | |
| } | |
| pub fn bar<G: Foo>(a: &G) -> u8 | |
| where | |
| [(); G::SIZE]: Sized, | |
| { | |
| deeper_bar(a) | |
| } | |
| fn deeper_bar<G: Foo>(a: &G) -> u8 | |
| where | |
| [(); G::SIZE]: Sized, | |
| { | |
| a.to_bytes()[0] | |
| } | |
| fn main() {} |