// check-pass trait Gen { fn gen(x: Self) -> T; } struct A; impl Gen<[(); 0]> for A { fn gen(x: Self) -> [(); 0] { [] } } fn array() -> impl Gen<[(); 0]> { A } fn main() { let [] = Gen::gen(array()); }