// exec-env:RUST_POISON_ON_FREE=1 | |
// Test argument patterns where we create refs to the inside of `~` | |
// boxes. Make sure that we don't free the box as we match the | |
// pattern. | |
fn getaddr(~ref x: ~uint) -> *uint { | |
let addr: *uint = &*x; | |
addr | |
} | |
fn checkval(~ref x: ~uint) -> uint { | |
*x | |
} | |
fn main() { | |
let obj = ~1; | |
let objptr: *uint = &*obj; | |
let xptr = getaddr(obj); | |
assert_eq!(objptr, xptr); | |
let obj = ~22; | |
assert_eq!(checkval(obj), 22); | |
} |