]> git.lizzy.rs Git - rust.git/blob - src/test/ui/borrowck/borrowck-closures-unique.stderr
tests: prefer edition: directives to compile-flags:--edition.
[rust.git] / src / test / ui / borrowck / borrowck-closures-unique.stderr
1 error[E0500]: closure requires unique access to `x` but it is already borrowed
2   --> $DIR/borrowck-closures-unique.rs:34:14
3    |
4 LL |     let c1 = || get(x);
5    |              --     - previous borrow occurs due to use of `x` in closure
6    |              |
7    |              borrow occurs here
8 LL |     let c2 = || set(x); //~ ERROR closure requires unique access to `x`
9    |              ^^     - borrow occurs due to use of `x` in closure
10    |              |
11    |              closure construction occurs here
12 LL | }
13    | - borrow ends here
14
15 error[E0500]: closure requires unique access to `x` but it is already borrowed
16   --> $DIR/borrowck-closures-unique.rs:39:14
17    |
18 LL |     let c1 = || get(x);
19    |              --     - previous borrow occurs due to use of `x` in closure
20    |              |
21    |              borrow occurs here
22 LL |     let c2 = || { get(x); set(x); }; //~ ERROR closure requires unique access to `x`
23    |              ^^       - borrow occurs due to use of `x` in closure
24    |              |
25    |              closure construction occurs here
26 LL | }
27    | - borrow ends here
28
29 error[E0524]: two closures require unique access to `x` at the same time
30   --> $DIR/borrowck-closures-unique.rs:44:14
31    |
32 LL |     let c1 = || set(x);
33    |              --     - previous borrow occurs due to use of `x` in closure
34    |              |
35    |              first closure is constructed here
36 LL |     let c2 = || set(x); //~ ERROR two closures require unique access to `x` at the same time
37    |              ^^     - borrow occurs due to use of `x` in closure
38    |              |
39    |              second closure is constructed here
40 LL | }
41    | - borrow from first closure ends here
42
43 error[E0595]: closure cannot assign to immutable argument `x`
44   --> $DIR/borrowck-closures-unique.rs:48:14
45    |
46 LL |     let c1 = || x = panic!(); //~ ERROR closure cannot assign to immutable argument
47    |              ^^ cannot borrow mutably
48 help: consider removing the `&mut`, as it is an immutable binding to a mutable reference
49    |
50 LL |     x //~ ERROR closure cannot assign to immutable argument
51    |     ^
52
53 error: aborting due to 4 previous errors
54
55 Some errors occurred: E0500, E0524, E0595.
56 For more information about an error, try `rustc --explain E0500`.