"не волшебство"

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

лятор знаетdrop() каплиx (как видно из ошибки в закомментированном коде), но все еще думает, что переменная заимствует изa! Это нечестно!

Должно ли это рассматриваться как один из многочисленных обманщиковржавчины языки / ржавчины # 6393 (который сейчас отслеживаетсяржавчины языки / РЛК # 811?) Но обсуждение там, кажется, сосредоточено на&mut self а также&self сосуществовать в одном блоке.

Ответы на вопрос(2)

Ваш ответ на вопрос