Skip to content

Commit

Permalink
auto merge of #10772 : alexcrichton/rust/issue-3053, r=alexcrichton
Browse files Browse the repository at this point in the history
Rebasing #10446 with a `pub fn main`
  • Loading branch information
bors committed Dec 3, 2013
2 parents fc3b7c1 + 7067561 commit 18084be
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions src/test/run-pass/borrowck-preserve-box-in-moved-value.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// exec-env:RUST_POISON_ON_FREE=1

// Test that we root `x` even though it is found in immutable memory,
// because it is moved.

#[feature(managed_boxes)];

fn free<T>(x: @T) {}

struct Foo {
f: @Bar
}

struct Bar {
g: int
}

fn lend(x: @Foo) -> int {
let y = &x.f.g;
free(x); // specifically here, if x is not rooted, it will be freed
*y
}

pub fn main() {
assert_eq!(lend(@Foo {f: @Bar {g: 22}}), 22);
}

0 comments on commit 18084be

Please sign in to comment.