]>
Commit | Line | Data |
---|---|---|
b7449926 | 1 | // run-pass |
0bf4aa26 XL |
2 | #![allow(dead_code)] |
3 | #![allow(unused_variables)] | |
b7449926 | 4 | |
9e0c209e SL |
5 | // Some traits can be derived for unions. |
6 | ||
9e0c209e SL |
7 | #[derive( |
8 | Copy, | |
9 | Clone, | |
10 | Eq, | |
11 | )] | |
12 | union U { | |
13 | a: u8, | |
14 | b: u16, | |
15 | } | |
16 | ||
17 | impl PartialEq for U { fn eq(&self, rhs: &Self) -> bool { true } } | |
18 | ||
19 | #[derive( | |
20 | Clone, | |
21 | Copy, | |
22 | Eq | |
23 | )] | |
e74abb32 | 24 | union W<T: Copy> { |
9e0c209e SL |
25 | a: T, |
26 | } | |
27 | ||
e74abb32 | 28 | impl<T: Copy> PartialEq for W<T> { fn eq(&self, rhs: &Self) -> bool { true } } |
9e0c209e SL |
29 | |
30 | fn main() { | |
31 | let u = U { b: 0 }; | |
32 | let u1 = u; | |
33 | let u2 = u.clone(); | |
34 | assert!(u1 == u2); | |
35 | ||
36 | let w = W { a: 0 }; | |
37 | let w1 = w.clone(); | |
38 | assert!(w == w1); | |
39 | } |