2014-02-10 12:44:21 +00:00
|
|
|
// Tests that two closures cannot simultaneously have mutable
|
|
|
|
// and immutable access to the variable. Issue #6801.
|
|
|
|
|
2015-01-08 10:54:35 +00:00
|
|
|
fn set(x: &mut isize) {
|
2014-02-10 12:44:21 +00:00
|
|
|
*x = 4;
|
|
|
|
}
|
|
|
|
|
2015-01-08 10:54:35 +00:00
|
|
|
fn a(x: &isize) {
|
2018-11-05 14:25:11 +00:00
|
|
|
let mut c1 = || set(&mut *x);
|
2014-02-10 12:44:21 +00:00
|
|
|
//~^ ERROR cannot borrow
|
2018-11-05 14:25:11 +00:00
|
|
|
let mut c2 = || set(&mut *x);
|
2014-07-22 09:43:19 +00:00
|
|
|
//~^ ERROR cannot borrow
|
2016-04-20 18:42:13 +00:00
|
|
|
//~| ERROR two closures require unique access to `x` at the same time
|
2018-11-05 14:25:11 +00:00
|
|
|
c2(); c1();
|
2014-02-10 12:44:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
}
|