// compile-flags: -Z print-type-sizes --crate-type=lib // build-pass // ignore-pass // At one point, zero-sized fields such as those in this file were causing // incorrect output from `-Z print-type-sizes`. struct S1 { x: u32, y: u32, tag: (), } struct Void(); struct Empty {} struct S5 { tagw: TagW, w: u32, unit: (), x: u32, void: Void, y: u32, empty: Empty, z: u32, tagz: TagZ, } pub fn test() { let _s1: S1 = S1 { x: 0, y: 0, tag: () }; let _s5: S5<(), Empty> = S5 { tagw: (), w: 1, unit: (), x: 2, void: Void(), y: 3, empty: Empty {}, z: 4, tagz: Empty {}, }; }