mirror of https://github.com/rust-lang/rust
23 lines
446 B
Rust
23 lines
446 B
Rust
union Test {
|
|
a: A, //~ ERROR field must implement `Copy` or be wrapped in `ManuallyDrop<...>` to be used in a union
|
|
b: B
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
struct A(i32);
|
|
impl Drop for A {
|
|
fn drop(&mut self) { println!("A"); }
|
|
}
|
|
|
|
#[derive(Debug)]
|
|
struct B(f32);
|
|
impl Drop for B {
|
|
fn drop(&mut self) { println!("B"); }
|
|
}
|
|
|
|
fn main() {
|
|
let mut test = Test { a: A(3) };
|
|
println!("{:?}", unsafe { test.b });
|
|
unsafe { test.b = B(0.5); }
|
|
}
|