diff options
Diffstat (limited to 'src/test/ui/for-loop-while/cleanup-rvalue-during-if-and-while.rs')
| -rw-r--r-- | src/test/ui/for-loop-while/cleanup-rvalue-during-if-and-while.rs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/test/ui/for-loop-while/cleanup-rvalue-during-if-and-while.rs b/src/test/ui/for-loop-while/cleanup-rvalue-during-if-and-while.rs deleted file mode 100644 index afc77355ab0..00000000000 --- a/src/test/ui/for-loop-while/cleanup-rvalue-during-if-and-while.rs +++ /dev/null @@ -1,41 +0,0 @@ -// run-pass -// This test verifies that temporaries created for `while`'s and `if` -// conditions are dropped after the condition is evaluated. - -struct Temporary; - -static mut DROPPED: isize = 0; - -impl Drop for Temporary { - fn drop(&mut self) { - unsafe { DROPPED += 1; } - } -} - -impl Temporary { - fn do_stuff(&self) -> bool {true} -} - -fn borrow() -> Box<Temporary> { Box::new(Temporary) } - - -pub fn main() { - let mut i = 0; - - // This loop's condition - // should call `Temporary`'s - // `drop` 6 times. - while borrow().do_stuff() { - i += 1; - unsafe { assert_eq!(DROPPED, i) } - if i > 5 { - break; - } - } - - // This if condition should - // call it 1 time - if borrow().do_stuff() { - unsafe { assert_eq!(DROPPED, i + 1) } - } -} |
