| // 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"); | |
| } |