2 // This test verifies that temporaries created for `while`'s and `if`
3 // conditions are dropped after the condition is evaluated.
5 #![feature(box_syntax)]
9 static mut DROPPED: isize = 0;
11 impl Drop for Temporary {
13 unsafe { DROPPED += 1; }
18 fn do_stuff(&self) -> bool {true}
21 fn borrow() -> Box<Temporary> { box Temporary }
27 // This loop's condition
28 // should call `Temporary`'s
30 while borrow().do_stuff() {
32 unsafe { assert_eq!(DROPPED, i) }
38 // This if condition should
40 if borrow().do_stuff() {
41 unsafe { assert_eq!(DROPPED, i + 1) }