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