Wie kann ich die erweiterten makro-code, was meine kompilieren Fehler?
Habe ich einen compile-Fehler mit einem makro:
<mdo macros>:6:19: 6:50 error: cannot move out of captured outer variable in an `FnMut` closure
<mdo macros>:6 bind ( $ e , move | $ p | mdo ! { $ ( $ t ) * } ) ) ; (
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<mdo macros>:1:1: 14:36 note: in expansion of mdo!
<mdo macros>:6:27: 6:50 note: expansion site
<mdo macros>:1:1: 14:36 note: in expansion of mdo!
<mdo macros>:6:27: 6:50 note: expansion site
<mdo macros>: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
Leider das makro rekursiv ist, so ist es schwer, herauszufinden, was der compiler beschwert sich über, plus es scheint, wie die Zeilennummern sind für die erweiterte makro eher als mein code.
Wie kann ich die erweiterten makro? Gibt es ein flag kann ich pass auf rustc (oder noch besser, Fracht) zu dump diese aus?
(Dieses makro ist aus Rost-mdo, obwohl ich nicht denke, dass es darauf ankommt.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Genauere alternative zu
cargo rustc -- -Zunstable-options --pretty=expanded
ist die cargo-erweitern Kiste. Es bietet eine Cargo-subkommandocargo expand
die druckt das Ergebnis von makro-expansion. Es geht auch bei der erweiterten code durchrustfmt
, die in der Regel führt viel besser lesbaren code als die Standard-Ausgabe aus rustc.Installieren, durch ausführen von
cargo install cargo-expand
.Ja, können Sie ein spezielles flag zu
rustc
genannt--pretty=expanded
:Müssen Sie erlauben es jedoch zunächst durch die übergabe
-Z unstable-options
.Da Rost 1.1 übergeben Sie diese Argumente, um Fracht, wie diese:
cargo rustc -- -Z unstable-options --pretty=expanded
ist nun nur über Nacht.