//@ run-pass | |
#![allow(dead_code)] | |
#![allow(unused_variables)] | |
// Some traits can be derived for unions. | |
#[derive( | |
Copy, | |
Clone, | |
Eq, | |
)] | |
union U { | |
a: u8, | |
b: u16, | |
} | |
impl PartialEq for U { fn eq(&self, rhs: &Self) -> bool { true } } | |
#[derive( | |
Clone, | |
Copy, | |
Eq | |
)] | |
union W<T: Copy> { | |
a: T, | |
} | |
impl<T: Copy> PartialEq for W<T> { fn eq(&self, rhs: &Self) -> bool { true } } | |
fn main() { | |
let u = U { b: 0 }; | |
let u1 = u; | |
let u2 = u.clone(); | |
assert!(u1 == u2); | |
let w = W { a: 0 }; | |
let w1 = w.clone(); | |
assert!(w == w1); | |
} |