¿La variable movida sigue tomando prestado después de llamar a 'drop'?
fn main() {
let mut x: Vec<&i32> = vec![];
let a = 1;
x.push(&a);
drop(x);
// x.len(); // error[E0382]: use of moved value: `x`
} // `a` dropped here while still borrowed
El compilador sabedrop()
gotasx
(como se desprende del error en el código comentado) pero aún cree que la variable está tomando prestado dea
! ¡Esto es injusto!
¿Debería considerarse esto como uno de los numerosos engaños deRust-Lang / Rust # 6393 (que ahora es rastreado porrust-lang / rfcs # 811?) Pero la discusión allí parece centrarse en hacer&mut self
y&self
coexisten en un solo bloque.