1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// check-pass trait Gen<T> { 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()); }