diff options
Diffstat (limited to 'src/test/ui/borrowck/borrowck-lend-flow-if.rs')
-rw-r--r-- | src/test/ui/borrowck/borrowck-lend-flow-if.rs | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/src/test/ui/borrowck/borrowck-lend-flow-if.rs b/src/test/ui/borrowck/borrowck-lend-flow-if.rs deleted file mode 100644 index 19a0dd0c6..000000000 --- a/src/test/ui/borrowck/borrowck-lend-flow-if.rs +++ /dev/null @@ -1,51 +0,0 @@ -// Note: the borrowck analysis is currently flow-insensitive. -// Therefore, some of these errors are marked as spurious and could be -// corrected by a simple change to the analysis. The others are -// either genuine or would require more advanced changes. The latter -// cases are noted. - - - -fn borrow(_v: &isize) {} -fn borrow_mut(_v: &mut isize) {} -fn cond() -> bool { panic!() } -fn for_func<F>(_f: F) where F: FnOnce() -> bool { panic!() } -fn produce<T>() -> T { panic!(); } - -fn inc(v: &mut Box<isize>) { - *v = Box::new(**v + 1); -} - -fn pre_freeze_cond() { - // In this instance, the freeze is conditional and starts before - // the mut borrow. - - let u = Box::new(0); - let mut v: Box<_> = Box::new(3); - let mut _w = &u; - if cond() { - _w = &v; - } - borrow_mut(&mut *v); //~ ERROR cannot borrow - _w.use_ref(); -} - -fn pre_freeze_else() { - // In this instance, the freeze and mut borrow are on separate sides - // of the if. - - let u = Box::new(0); - let mut v: Box<_> = Box::new(3); - let mut _w = &u; - if cond() { - _w = &v; - } else { - borrow_mut(&mut *v); - } - _w.use_ref(); -} - -fn main() {} - -trait Fake { fn use_mut(&mut self) { } fn use_ref(&self) { } } -impl<T> Fake for T { } |