1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// Ensures that we can use projections as union field's type. // check-pass #![crate_type = "lib"] pub trait Identity { type Identity; } impl<T> Identity for T { type Identity = Self; } pub type Foo = u8; pub union Bar { pub a: <Foo as Identity>::Identity, pub b: u8, }