title: How do I see the expanded macro code that's causing my compile error?
body: <p>I have a compile error involving a macro:</p>
  
  <pre><code>&lt;mdo macros&gt;:6:19: 6:50 error: cannot move out of captured outer variable in an `FnMut` closure
  &lt;mdo macros&gt;:6 bind ( $ e , move | $ p | mdo ! { $ ( $ t ) * } ) ) ; (
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  &lt;mdo macros&gt;:1:1: 14:36 note: in expansion of mdo!
  &lt;mdo macros&gt;:6:27: 6:50 note: expansion site
  &lt;mdo macros&gt;:1:1: 14:36 note: in expansion of mdo!
  &lt;mdo macros&gt;:6:27: 6:50 note: expansion site
  &lt;mdo macros&gt;:1:1: 14:36 note: in expansion of mdo!
  src/parser.rs:30:42: 37:11 note: expansion site
  error: aborting due to previous error
  </code></pre>
  
  <p>Unfortunately, the macro is recursive so it's hard to figure out what the compiler is complaining about, plus it seems like the line numbers are for the expanded macro rather than my code.</p>
  
  <p>How can I see the expanded macro? Is there a flag I can pass to rustc (or even better, cargo) to dump this out?</p>
  
  <p>(This macro is from <a href="https://github.com/TeXitoi/rust-mdo">rust-mdo</a>, though I don't think it matters.)</p>