// run-pass #![feature(generic_const_exprs)] #![allow(incomplete_features)] const fn test_me(a: usize, b: usize) -> usize { if a < b { std::mem::size_of::() } else { usize::MAX } } fn test_simple() -> [u8; std::mem::size_of::()] where [u8; std::mem::size_of::()]: Sized, { [0; std::mem::size_of::()] } fn test_with_args() -> [u8; test_me::(N, N + 1) + N] where [u8; test_me::(N, N + 1) + N]: Sized, { [0; test_me::(N, N + 1) + N] } fn main() { assert_eq!([0; 8], test_simple::()); assert_eq!([0; 12], test_with_args::()); }