]> git.proxmox.com Git - rustc.git/blob - src/test/ui/union/union-derive-rpass.rs
New upstream version 1.55.0+dfsg1
[rustc.git] / src / test / ui / union / union-derive-rpass.rs
1 // run-pass
2 // revisions: mirunsafeck thirunsafeck
3 // [thirunsafeck]compile-flags: -Z thir-unsafeck
4
5 #![allow(dead_code)]
6 #![allow(unused_variables)]
7
8 // Some traits can be derived for unions.
9
10 #[derive(
11 Copy,
12 Clone,
13 Eq,
14 )]
15 union U {
16 a: u8,
17 b: u16,
18 }
19
20 impl PartialEq for U { fn eq(&self, rhs: &Self) -> bool { true } }
21
22 #[derive(
23 Clone,
24 Copy,
25 Eq
26 )]
27 union W<T: Copy> {
28 a: T,
29 }
30
31 impl<T: Copy> PartialEq for W<T> { fn eq(&self, rhs: &Self) -> bool { true } }
32
33 fn main() {
34 let u = U { b: 0 };
35 let u1 = u;
36 let u2 = u.clone();
37 assert!(u1 == u2);
38
39 let w = W { a: 0 };
40 let w1 = w.clone();
41 assert!(w == w1);
42 }