A variável movida ainda está sendo emprestada após chamar `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

O compilador sabedrop() gotasx (como é evidente no erro no código comentado), mas ainda acha que a variável está tomando emprestado dea! Isso é injusto!

Caso isso seja considerado um dos inúmeros enganadores deferrugem-ferrugem / ferrugem # 6393 (que agora é rastreado porferrugem-lang / rfcs # 811?) Mas a discussão parece estar centrada em fazer&mut self e&self coexistir em um único bloco.

questionAnswers(2)

yourAnswerToTheQuestion