1 error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Ast)
2 --> $DIR/get_default.rs:33:17
5 | --- immutable borrow occurs here
7 LL | map.set(String::new()); // Ideally, this would not error.
8 | ^^^ mutable borrow occurs here
11 | - immutable borrow ends here
13 error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Ast)
14 --> $DIR/get_default.rs:45:17
16 LL | match map.get() {
17 | --- immutable borrow occurs here
19 LL | map.set(String::new()); // Both AST and MIR error here
20 | ^^^ mutable borrow occurs here
23 | - immutable borrow ends here
25 error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Ast)
26 --> $DIR/get_default.rs:51:17
28 LL | match map.get() {
29 | --- immutable borrow occurs here
31 LL | map.set(String::new()); // Ideally, just AST would error here
32 | ^^^ mutable borrow occurs here
35 | - immutable borrow ends here
37 error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Mir)
38 --> $DIR/get_default.rs:33:17
40 LL | fn ok(map: &mut Map) -> &String {
41 | - let's call the lifetime of this reference `'1`
43 LL | match map.get() {
44 | --- immutable borrow occurs here
47 | - returning this value requires that `*map` is borrowed for `'1`
49 LL | map.set(String::new()); // Ideally, this would not error.
50 | ^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
52 error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Mir)
53 --> $DIR/get_default.rs:45:17
55 LL | fn err(map: &mut Map) -> &String {
56 | - let's call the lifetime of this reference `'1`
58 LL | match map.get() {
59 | --- immutable borrow occurs here
61 LL | map.set(String::new()); // Both AST and MIR error here
62 | ^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
65 | - returning this value requires that `*map` is borrowed for `'1`
67 error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Mir)
68 --> $DIR/get_default.rs:51:17
70 LL | fn err(map: &mut Map) -> &String {
71 | - let's call the lifetime of this reference `'1`
73 LL | match map.get() {
74 | --- immutable borrow occurs here
77 | - returning this value requires that `*map` is borrowed for `'1`
79 LL | map.set(String::new()); // Ideally, just AST would error here
80 | ^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
82 error: aborting due to 6 previous errors
84 For more information about this error, try `rustc --explain E0502`.