rust/src/test/ui/suggestions/for-i-in-vec.rs
Esteban Küber a0bf7d2cd3 Avoid ICE caused by suggestion
When suggesting dereferencing something that can be iterable in a `for`
loop, erase lifetimes and use a fresh `ty::ParamEnv` to avoid 'region
constraints already solved' panic.

Fix  #87657.
2021-08-12 10:24:01 +00:00

28 lines
603 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 { //~ ERROR cannot move out of `self.v` which is behind a shared reference
}
for _ in self.h { //~ 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 { //~ ERROR cannot move out of a shared reference
return Some(loader);
}
None
}
fn main() {}