title: cannot move out of dereference
body: <p>I'm learning Rust as well as the extra::json module. Here is my example (with extra unneeed type annotations):</p>
  
  <pre><code>let j:Result&lt;Json,JsonError&gt; = from_str("[{\"bar\":\"baz\", \"biz\":123}]");
  let l:List = match j {
    Ok(List(l)) =&gt; l,
    Ok(_) =&gt; fail!("Expected a list at the top level"),
    Err(e) =&gt; fail!(fmt!("Error: %?", e))
  };
  println(fmt!("item = %?", l.iter().advance(|i|{
    match i {
        &amp;Object(o) =&gt; {
            println(fmt!("Object is %?", o));
        },
        _ =&gt; {
            fail!("Should be a list of objects, no?");
        }
    }
    println(fmt!("i=%?", i));
    true
  })));
  </code></pre>
  
  <p>When I compile, I get this:</p>
  
  <pre><code>$ rust run json.rs
  json.rs:70:9: 70:18 error: cannot move out of dereference of &amp; pointer
  json.rs:70         &amp;Object(o) =&gt; {
                      ^~~~~~~~~
  note: in expansion of fmt!
  json.rs:68:10: 79:6 note: expansion site
  error: aborting due to previous error
  </code></pre>
  
  <p>I have <a href="https://github.com/ozten/learning_rust/blob/master/play/json.rs" rel="nofollow">other examples</a> of using match that don't hit this error.</p>
  
  <p>Thanks for your help!</p>