diff options
Diffstat (limited to 'src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs')
-rw-r--r-- | src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs b/src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs deleted file mode 100644 index b0bb9a035..000000000 --- a/src/test/ui/borrowck/borrowck-bad-nested-calls-free.rs +++ /dev/null @@ -1,35 +0,0 @@ -// Test that we detect nested calls that could free pointers evaluated -// for earlier arguments. - - - -fn rewrite(v: &mut Box<usize>) -> usize { - *v = Box::new(22); - **v -} - -fn add(v: &usize, w: usize) -> usize { - *v + w -} - -fn implicit() { - let mut a: Box<_> = Box::new(1); - - // Note the danger here: - // - // the pointer for the first argument has already been - // evaluated, but it gets freed when evaluating the second - // argument! - add( - &*a, - rewrite(&mut a)); //~ ERROR cannot borrow -} - -fn explicit() { - let mut a: Box<_> = Box::new(1); - add( - &*a, - rewrite(&mut a)); //~ ERROR cannot borrow -} - -fn main() {} |