| //@ check-fail |
| |
| struct S; |
| |
| fn main() { |
| let mut manual1 = std::mem::ManuallyDrop::new(S); |
| let mut manual2 = std::mem::ManuallyDrop::new(S); |
| let mut manual3 = std::mem::ManuallyDrop::new(S); |
| |
| drop(std::mem::ManuallyDrop::new(S)); //~ ERROR calls to `std::mem::drop` |
| drop(manual1); //~ ERROR calls to `std::mem::drop` |
| drop({ manual3 }); //~ ERROR calls to `std::mem::drop` |
| |
| // These lines will drop `S` and should be okay. |
| unsafe { |
| std::mem::ManuallyDrop::drop(&mut std::mem::ManuallyDrop::new(S)); |
| std::mem::ManuallyDrop::drop(&mut manual2); |
| } |
| } |