+++ /dev/null
-error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Ast)
- --> $DIR/get_default.rs:23:17
- |
-LL | match map.get() {
- | --- immutable borrow occurs here
-...
-LL | map.set(String::new()); // Ideally, this would not error.
- | ^^^ mutable borrow occurs here
-...
-LL | }
- | - immutable borrow ends here
-
-error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Ast)
- --> $DIR/get_default.rs:35:17
- |
-LL | match map.get() {
- | --- immutable borrow occurs here
-LL | Some(v) => {
-LL | map.set(String::new()); // Both AST and MIR error here
- | ^^^ mutable borrow occurs here
-...
-LL | }
- | - immutable borrow ends here
-
-error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Ast)
- --> $DIR/get_default.rs:41:17
- |
-LL | match map.get() {
- | --- immutable borrow occurs here
-...
-LL | map.set(String::new()); // Ideally, just AST would error here
- | ^^^ mutable borrow occurs here
-...
-LL | }
- | - immutable borrow ends here
-
-error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Mir)
- --> $DIR/get_default.rs:23:17
- |
-LL | fn ok(map: &mut Map) -> &String {
- | - let's call the lifetime of this reference `'1`
-LL | loop {
-LL | match map.get() {
- | --- immutable borrow occurs here
-LL | Some(v) => {
-LL | return v;
- | - returning this value requires that `*map` is borrowed for `'1`
-...
-LL | map.set(String::new()); // Ideally, this would not error.
- | ^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
-
-error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Mir)
- --> $DIR/get_default.rs:35:17
- |
-LL | fn err(map: &mut Map) -> &String {
- | - let's call the lifetime of this reference `'1`
-LL | loop {
-LL | match map.get() {
- | --- immutable borrow occurs here
-LL | Some(v) => {
-LL | map.set(String::new()); // Both AST and MIR error here
- | ^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
-...
-LL | return v;
- | - returning this value requires that `*map` is borrowed for `'1`
-
-error[E0502]: cannot borrow `*map` as mutable because it is also borrowed as immutable (Mir)
- --> $DIR/get_default.rs:41:17
- |
-LL | fn err(map: &mut Map) -> &String {
- | - let's call the lifetime of this reference `'1`
-LL | loop {
-LL | match map.get() {
- | --- immutable borrow occurs here
-...
-LL | return v;
- | - returning this value requires that `*map` is borrowed for `'1`
-...
-LL | map.set(String::new()); // Ideally, just AST would error here
- | ^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
-
-error: aborting due to 6 previous errors
-
-For more information about this error, try `rustc --explain E0502`.
+++ /dev/null
-error[E0502]: cannot borrow `my_struct.field` as mutable because it is also borrowed as immutable (Ast)
- --> $DIR/region-ends-after-if-condition.rs:19:9
- |
-LL | let value = &my_struct.field;
- | --------------- immutable borrow occurs here
-LL | if value.is_empty() {
-LL | my_struct.field.push_str("Hello, world!");
- | ^^^^^^^^^^^^^^^ mutable borrow occurs here
-...
-LL | }
- | - immutable borrow ends here
-
-error[E0502]: cannot borrow `my_struct.field` as mutable because it is also borrowed as immutable (Ast)
- --> $DIR/region-ends-after-if-condition.rs:29:9
- |
-LL | let value = &my_struct.field;
- | --------------- immutable borrow occurs here
-LL | if value.is_empty() {
-LL | my_struct.field.push_str("Hello, world!");
- | ^^^^^^^^^^^^^^^ mutable borrow occurs here
-...
-LL | }
- | - immutable borrow ends here
-
-error[E0502]: cannot borrow `my_struct.field` as mutable because it is also borrowed as immutable (Mir)
- --> $DIR/region-ends-after-if-condition.rs:29:9
- |
-LL | let value = &my_struct.field;
- | ---------------- immutable borrow occurs here
-LL | if value.is_empty() {
-LL | my_struct.field.push_str("Hello, world!");
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable borrow occurs here
-...
-LL | drop(value);
- | ----- immutable borrow later used here
-
-error: aborting due to 3 previous errors
-
-For more information about this error, try `rustc --explain E0502`.