From efa2252cfcabe6aec34861d06fa10d0c174b8556 Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Mon, 14 May 2012 08:23:11 -0700 Subject: [PATCH] add a test that current fails b/c we do not preserve boxes --- src/test/run-pass/borrowck-preserve-box.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/test/run-pass/borrowck-preserve-box.rs diff --git a/src/test/run-pass/borrowck-preserve-box.rs b/src/test/run-pass/borrowck-preserve-box.rs new file mode 100644 index 000000000000..2d85e051e05a --- /dev/null +++ b/src/test/run-pass/borrowck-preserve-box.rs @@ -0,0 +1,22 @@ +// compile-flags:--borrowck=err +// exec-env:RUST_POISON_ON_FREE=1 + +fn borrow(x: &int, f: fn(x: &int)) { + let before = *x; + f(x); + let after = *x; + assert before == after; +} + +fn main() { + let mut x = @3; + borrow(x) {|b_x| + assert *b_x == 3; + assert ptr::addr_of(*x) == ptr::addr_of(*b_x); + x = @22; + + #debug["ptr::addr_of(*b_x) = %x", ptr::addr_of(*b_x) as uint]; + assert *b_x == 3; + assert ptr::addr_of(*x) != ptr::addr_of(*b_x); + } +} \ No newline at end of file