mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-28 01:34:21 +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() | ```
39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
//@ run-rustfix
|
|
pub struct LipogramCorpora {
|
|
selections: Vec<(char, Option<String>)>,
|
|
}
|
|
|
|
impl LipogramCorpora {
|
|
pub fn validate_all(&mut self) -> Result<(), char> {
|
|
for selection in &self.selections {
|
|
if selection.1.is_some() {
|
|
if <Option<String> as Clone>::clone(&selection.1.clone()).unwrap().contains(selection.0) {
|
|
//~^ ERROR cannot move out of `selection.1`
|
|
return Err(selection.0);
|
|
}
|
|
}
|
|
}
|
|
Ok(())
|
|
}
|
|
}
|
|
|
|
pub struct LipogramCorpora2 {
|
|
selections: Vec<(char, Result<String, String>)>,
|
|
}
|
|
|
|
impl LipogramCorpora2 {
|
|
pub fn validate_all(&mut self) -> Result<(), char> {
|
|
for selection in &self.selections {
|
|
if selection.1.is_ok() {
|
|
if <Result<String, String> as Clone>::clone(&selection.1.clone()).unwrap().contains(selection.0) {
|
|
//~^ ERROR cannot move out of `selection.1`
|
|
return Err(selection.0);
|
|
}
|
|
}
|
|
}
|
|
Ok(())
|
|
}
|
|
}
|
|
|
|
fn main() {}
|