]> git.lizzy.rs Git - rust.git/blob - src/test/ui/union-fields.rs
Handle type aliases as well
[rust.git] / src / test / ui / union-fields.rs
1 // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 #![deny(dead_code)]
12
13 union U1 {
14     a: u8, // should not be reported
15     b: u8, // should not be reported
16     c: u8, // should be reported
17 }
18 union U2 {
19     a: u8, // should be reported
20     b: u8, // should not be reported
21     c: u8, // should not be reported
22 }
23 union NoDropLike { a: u8 } // should be reported as unused
24
25 union U {
26     a: u8, // should not be reported
27     b: u8, // should not be reported
28     c: u8, // should be reported
29 }
30 type A = U;
31
32 fn main() {
33     let u = U1 { a: 0 };
34     let _a = unsafe { u.b };
35
36     let u = U2 { c: 0 };
37     let _b = unsafe { u.b };
38
39     let _u = NoDropLike { a: 10 };
40     let u = A { a: 0 };
41     let _b = unsafe { u.b };
42 }