// run-fail // error-pattern:complex called // error-pattern:dropped // error-pattern:exit // ignore-emscripten no processes struct Droppable; impl Drop for Droppable { fn drop(&mut self) { eprintln!("dropped"); } } // return value of this function is copied into the return slot fn complex() -> u64 { eprintln!("complex called"); 42 } fn mir() -> u64 { let x = Droppable; return complex(); drop(x); } pub fn main() { assert_eq!(mir(), 42); panic!("exit"); }