| //@ test-mir-pass: ElaborateDrops | |
| //@ needs-unwind | |
| #![feature(rustc_attrs, liballoc_internals)] | |
| // EMIT_MIR box_partial_move.maybe_move.ElaborateDrops.diff | |
| fn maybe_move(cond: bool, thing: Box<String>) -> Option<String> { | |
| // CHECK-LABEL: fn maybe_move( | |
| // CHECK: let mut [[PTR:_[0-9]+]]: *const std::string::String; | |
| // CHECK: [[PTR]] = copy ((_2.0: std::ptr::Unique<std::string::String>).0: std::ptr::NonNull<std::string::String>) as *const std::string::String (Transmute); | |
| // CHECK: drop((*[[PTR]])) | |
| if cond { Some(*thing) } else { None } | |
| } | |
| fn main() { | |
| maybe_move(false, Box::new("hello".to_string())); | |
| } |