mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-26 16:54:01 +00:00
10c2fbec24
``` error[E0507]: cannot move out of `*x` which is behind a shared reference --> $DIR/borrowck-fn-in-const-a.rs:6:16 | LL | return *x | ^^ move occurs because `*x` has type `String`, which does not implement the `Copy` trait | help: consider cloning the value if the performance cost is acceptable | LL - return *x LL + return x.clone() | ```
28 lines
630 B
Rust
28 lines
630 B
Rust
//@ run-rustfix
|
|
#![allow(dead_code)]
|
|
|
|
struct Foo {
|
|
v: Vec<u32>,
|
|
h: std::collections::HashMap<i32, i32>,
|
|
}
|
|
|
|
impl Foo {
|
|
fn bar(&self) {
|
|
for _ in &self.v.clone() { //~ ERROR cannot move out of `self.v` which is behind a shared reference
|
|
}
|
|
for _ in &self.h.clone() { //~ ERROR cannot move out of `self.h` which is behind a shared reference
|
|
}
|
|
}
|
|
}
|
|
|
|
const LOADERS: &Vec<&'static u8> = &Vec::new();
|
|
|
|
pub fn break_code() -> Option<&'static u8> {
|
|
for loader in &LOADERS.clone() { //~ ERROR cannot move out of a shared reference
|
|
return Some(loader);
|
|
}
|
|
None
|
|
}
|
|
|
|
fn main() {}
|