]> git.proxmox.com Git - rustc.git/blame - src/test/ui/union/union-with-drop-fields-lint.rs
New upstream version 1.39.0+dfsg1
[rustc.git] / src / test / ui / union / union-with-drop-fields-lint.rs
CommitLineData
9e0c209e
SL
1#![feature(untagged_unions)]
2#![allow(dead_code)]
3#![deny(unions_with_drop_fields)]
4
5union U {
6 a: u8, // OK
7}
8
9union W {
10 a: String, //~ ERROR union contains a field with possibly non-trivial drop code
11 b: String, // OK, only one field is reported
12}
13
14struct S(String);
15
16// `S` doesn't implement `Drop` trait, but still has non-trivial destructor
17union Y {
18 a: S, //~ ERROR union contains a field with possibly non-trivial drop code
19}
20
21// We don't know if `T` is trivially-destructable or not until trans
22union J<T> {
23 a: T, //~ ERROR union contains a field with possibly non-trivial drop code
24}
25
26union H<T: Copy> {
27 a: T, // OK, `T` is `Copy`, no destructor
28}
29
30fn main() {}