// check-pass struct Generic<T>(T); impl<T> Generic<T> { const ARRAY: [T; 0] = []; const NEWTYPE_ARRAY: Generic<[T; 0]> = Generic([]); const ARRAY_FIELD: Generic<(i32, [T; 0])> = Generic((0, [])); } pub const fn array<T>() -> &'static T { &Generic::<T>::ARRAY[0] } pub const fn newtype_array<T>() -> &'static T { &Generic::<T>::NEWTYPE_ARRAY.0[0] } pub const fn array_field<T>() -> &'static T { &(Generic::<T>::ARRAY_FIELD.0).1[0] } fn main() {}