]> git.lizzy.rs Git - rust.git/blob - tests/ui/nll/issue-55651.rs
Rollup merge of #106397 - compiler-errors:new-solver-impl-wc, r=lcnr
[rust.git] / tests / ui / nll / issue-55651.rs
1 // check-pass
2
3 use std::mem::ManuallyDrop;
4
5 struct A;
6 struct B;
7
8 union U {
9     a: ManuallyDrop<A>,
10     b: ManuallyDrop<B>,
11 }
12
13 fn main() {
14     unsafe {
15         {
16             let mut u = U { a: ManuallyDrop::new(A) };
17             let a = u.a;
18             u.a = ManuallyDrop::new(A);
19             let a = u.a; // OK
20         }
21         {
22             let mut u = U { a: ManuallyDrop::new(A) };
23             let a = u.a;
24             u.b = ManuallyDrop::new(B);
25             let a = u.a; // OK
26         }
27     }
28 }