title: Why does Rust allow modification of a mutable struct after moving it into a closure?
body: <p>What makes the following piece of code able to compile?</p>
  
  <pre><code>#[derive(Debug)]
  struct Abc {
      x: i32,
  }
  
  fn main() {
      let mut n = Abc { x: 20 };
      let c = &amp;move || {
          println!("{:?}", n);
      };
  
      (*c)();
      n.x = 12; //-&gt; But n is moved??
  }
  </code></pre>