48 lines
999 B
Rust
48 lines
999 B
Rust
|
//@ run-rustfix
|
||
|
#![allow(unused_variables, dead_code)]
|
||
|
#[derive(Clone)]
|
||
|
struct Struct;
|
||
|
#[derive(Clone)]
|
||
|
struct Struct2;
|
||
|
// We use a second one here because otherwise when applying suggestions we'd end up with two
|
||
|
// `#[derive(Clone)]` annotations.
|
||
|
|
||
|
fn test1() {
|
||
|
let mut val = Some(Struct);
|
||
|
while let Some(ref foo) = val { //~ ERROR use of moved value
|
||
|
if true {
|
||
|
val = None;
|
||
|
} else {
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
fn test2() {
|
||
|
let mut foo = Some(Struct);
|
||
|
let _x = foo.clone().unwrap();
|
||
|
if true {
|
||
|
foo = Some(Struct);
|
||
|
} else {
|
||
|
}
|
||
|
let _y = foo; //~ ERROR use of moved value: `foo`
|
||
|
}
|
||
|
|
||
|
fn test3() {
|
||
|
let mut foo = Some(Struct2);
|
||
|
let _x = foo.clone().unwrap();
|
||
|
if true {
|
||
|
foo = Some(Struct2);
|
||
|
} else if true {
|
||
|
foo = Some(Struct2);
|
||
|
} else if true {
|
||
|
foo = Some(Struct2);
|
||
|
} else if true {
|
||
|
foo = Some(Struct2);
|
||
|
} else {
|
||
|
}
|
||
|
let _y = foo; //~ ERROR use of moved value: `foo`
|
||
|
}
|
||
|
|
||
|
fn main() {}
|