2 // This test verifies that temporaries created for `while`'s and `if`
3 // conditions are dropped after the condition is evaluated.
7 static mut DROPPED: isize = 0;
9 impl Drop for Temporary {
11 unsafe { DROPPED += 1; }
16 fn do_stuff(&self) -> bool {true}
19 fn borrow() -> Box<Temporary> { Box::new(Temporary) }
25 // This loop's condition
26 // should call `Temporary`'s
28 while borrow().do_stuff() {
30 unsafe { assert_eq!(DROPPED, i) }
36 // This if condition should
38 if borrow().do_stuff() {
39 unsafe { assert_eq!(DROPPED, i + 1) }