| fn foo() { | |
| let foos = vec![String::new()]; | |
| let bars = vec![""]; | |
| let mut baz = vec![]; | |
| let mut qux = vec![]; | |
| for foo in foos { for bar in &bars { if foo == *bar { | |
| //~^ NOTE this reinitialization might get skipped | |
| //~| NOTE move occurs because `foo` has type `String` | |
| //~| NOTE inside of this loop | |
| //~| NOTE | |
| //~| NOTE | |
| baz.push(foo); | |
| //~^ NOTE value moved here | |
| //~| HELP consider cloning the value | |
| continue; | |
| //~^ NOTE verify that your loop breaking logic is correct | |
| //~| NOTE this `continue` advances the loop at $DIR/nested-loop-moved-value-wrong-continue.rs:6:23 | |
| } } | |
| qux.push(foo); | |
| //~^ ERROR use of moved value | |
| //~| NOTE value used here | |
| } | |
| } | |
| fn main() { | |
| let foos = vec![String::new()]; | |
| let bars = vec![""]; | |
| let mut baz = vec![]; | |
| let mut qux = vec![]; | |
| for foo in foos { | |
| //~^ NOTE this reinitialization might get skipped | |
| //~| NOTE move occurs because `foo` has type `String` | |
| //~| NOTE | |
| for bar in &bars { | |
| //~^ NOTE inside of this loop | |
| //~| NOTE | |
| if foo == *bar { | |
| baz.push(foo); | |
| //~^ NOTE value moved here | |
| //~| HELP consider cloning the value | |
| continue; | |
| //~^ NOTE verify that your loop breaking logic is correct | |
| //~| NOTE this `continue` advances the loop at line 34 | |
| } | |
| } | |
| qux.push(foo); | |
| //~^ ERROR use of moved value | |
| //~| NOTE value used here | |
| } | |
| } |