| error: borrow of moved value | |
| --> $DIR/ref-pattern-binding.rs:10:9 | |
| | | |
| LL | let _moved @ ref _from = String::from("foo"); | |
| | ^^^^^^ --------- value borrowed here after move | |
| | | | |
| | value moved into `_moved` here | |
| | move occurs because `_moved` has type `String`, which does not implement the `Copy` trait | |
| | | |
| help: borrow this binding in the pattern to avoid moving the value | |
| | | |
| LL | let ref _moved @ ref _from = String::from("foo"); | |
| | +++ | |
| error: cannot move out of value because it is borrowed | |
| --> $DIR/ref-pattern-binding.rs:11:9 | |
| | | |
| LL | let ref _moved @ _from = String::from("foo"); | |
| | ^^^^^^^^^^ ----- value is moved into `_from` here | |
| | | | |
| | value is borrowed by `_moved` here | |
| error: cannot move out of value because it is borrowed | |
| --> $DIR/ref-pattern-binding.rs:15:9 | |
| | | |
| LL | let ref _moved @ S { f } = S { f: String::from("foo") }; | |
| | ^^^^^^^^^^ - value is moved into `f` here | |
| | | | |
| | value is borrowed by `_moved` here | |
| error: borrow of moved value | |
| --> $DIR/ref-pattern-binding.rs:18:9 | |
| | | |
| LL | let _moved @ S { ref f } = S { f: String::from("foo") }; | |
| | ^^^^^^ ----- value borrowed here after move | |
| | | | |
| | value moved into `_moved` here | |
| | move occurs because `_moved` has type `S`, which does not implement the `Copy` trait | |
| | | |
| help: borrow this binding in the pattern to avoid moving the value | |
| | | |
| LL | let ref _moved @ S { ref f } = S { f: String::from("foo") }; | |
| | +++ | |
| error[E0382]: use of moved value | |
| --> $DIR/ref-pattern-binding.rs:9:9 | |
| | | |
| LL | let _moved @ _from = String::from("foo"); | |
| | ^^^^^^ ----- ------------------- move occurs because value has type `String`, which does not implement the `Copy` trait | |
| | | | | |
| | | value moved here | |
| | value used here after move | |
| | | |
| help: borrow this binding in the pattern to avoid moving the value | |
| | | |
| LL | let ref _moved @ ref _from = String::from("foo"); | |
| | +++ +++ | |
| error[E0382]: borrow of moved value | |
| --> $DIR/ref-pattern-binding.rs:11:9 | |
| | | |
| LL | let ref _moved @ _from = String::from("foo"); | |
| | ^^^^^^^^^^ ----- ------------------- move occurs because value has type `String`, which does not implement the `Copy` trait | |
| | | | | |
| | | value moved here | |
| | value borrowed here after move | |
| | | |
| help: borrow this binding in the pattern to avoid moving the value | |
| | | |
| LL | let ref _moved @ ref _from = String::from("foo"); | |
| | +++ | |
| error[E0382]: use of partially moved value | |
| --> $DIR/ref-pattern-binding.rs:14:9 | |
| | | |
| LL | let _moved @ S { f } = S { f: String::from("foo") }; | |
| | ^^^^^^ - value partially moved here | |
| | | | |
| | value used here after partial move | |
| | | |
| = note: partial move occurs because value has type `String`, which does not implement the `Copy` trait | |
| help: borrow this binding in the pattern to avoid moving the value | |
| | | |
| LL | let ref _moved @ S { ref f } = S { f: String::from("foo") }; | |
| | +++ +++ | |
| error[E0382]: borrow of partially moved value | |
| --> $DIR/ref-pattern-binding.rs:15:9 | |
| | | |
| LL | let ref _moved @ S { f } = S { f: String::from("foo") }; | |
| | ^^^^^^^^^^ - value partially moved here | |
| | | | |
| | value borrowed here after partial move | |
| | | |
| = note: partial move occurs because value has type `String`, which does not implement the `Copy` trait | |
| help: borrow this binding in the pattern to avoid moving the value | |
| | | |
| LL | let ref _moved @ S { ref f } = S { f: String::from("foo") }; | |
| | +++ | |
| error: aborting due to 8 previous errors | |
| For more information about this error, try `rustc --explain E0382`. |