// Propagating const arguments through generics that use generics. #[repr(C)] pub struct Inner { pub bytes: [u8; N], } #[repr(C)] pub struct Outer { pub inner: Inner, // don't declare two different structs named `Inner_N` } #[no_mangle] pub extern "C" fn one() -> Outer<1> { Outer { inner: Inner { bytes: [0] } } } #[no_mangle] pub extern "C" fn two() -> Outer<2> { Outer { inner: Inner { bytes: [0, 0] } } }