Peti ini digantikan oleh ekspand kargo , yang menambahkan dukungan untuk semua fitur yang hilang ketika kami mulai bekerja pada aspeksi kargo. Terima kasih atas umpan balik dan dukungan Anda.
Hanya ada dua cara untuk menjalani hidup Anda.
Salah satunya seolah -olah tidak ada yang menjadi keajaiban. Yang lain adalah seolah -olah semuanya adalah keajaiban. - Albert Einstein
Anda membutuhkan karat setiap malam dan rustfmt untuk memulai.
Anda dapat menginstalnya melalui Rustup:
rustup install nightly
rustup component add rustfmt
Semua set? Ayo retak!
cargo install cargo-inspect
Sebut saja di file karat apa pun:
cargo inspect main.rs
Jika Anda tidak menentukan file, peti saat ini akan dianalisis sebagai gantinya.
cargo inspect
Tergantung pada ukuran peti, ini mungkin memakan waktu cukup lama.
Harap bersabar.
Ini juga dapat membandingkan dua output file! Coba ini:
cargo inspect --diff examples/range.rs,examples/range_inclusive.rs --plain
USAGE:
cargo inspect [FLAGS] [OPTIONS] [INPUT_FILE]
FLAGS:
-h, --help
Prints help information
--list-themes
Should we list all pretty printer themes?
--plain
Don't highlight output
-V, --version
Prints version information
-v, --verbose
Print the original code as a comment above the desugared code
OPTIONS:
--theme <THEME>
Specify a theme override for the pretty printer
--diff <files>
Diff input files
--format <format>
Override for the format that gets outputted when the `unpretty` mode is set to `flowgraph` [default: svg]
--unpretty <unpretty>
rustc "unpretty" parameters
*Note*: For `--unpretty=flowgraph=[symbol]` you need to have `dot` on your PATH. [default: hir]
ARGS:
<INPUT_FILE>
Input file
Rust memungkinkan banyak gula sintaksis, yang membuatnya senang menulis. Namun, kadang -kadang sulit untuk melihat di belakang tirai dan melihat apa yang sebenarnya dilakukan kompiler dengan kode kami.
Mengutip @tshepang, "Senang mengetahui apa kenyamanan ini, untuk menghindari bingung dengan apa yang terjadi di bawah kap ... semakin sedikit pemikiran yang kita miliki tentang dunia, semakin baik."
Saya selalu tertarik pada bagaimana bahasa pemrograman bekerja di latar belakang, bagaimana kode saya dibuka untuk membuat compiler backend lebih mudah dipertahankan.
Tujuannya adalah untuk membuat kompiler lebih mudah didekati untuk manusia biasa.
Misteri! Eksplorasi! Penemuan!
Baca lebih lanjut tentang latar belakang cargo-inspect di blog saya.
If-let membuat desugared menjadi matchPertimbangkan cuplikan kode berikut:
fn main ( ) {
if let Some ( x ) = Some ( 1 ) {
// Do something with x
}
}Saat Anda mengkompilasinya, hal pertama yang dilakukan Rust adalah desugar itu. Untuk melihat seperti apa kodenya setelah langkah ini, jalankan
cargo inspect examples/if_let.rs
Ini menghasilkan output berikut:
Silakan temukan lebih banyak contoh di folder examples . Anda juga dapat berkontribusi lebih banyak.
Hal -hal terbaik di dunia berkumpul dari blok bangunan sederhana. Alat ini berdiri di pundak raksasa. Untuk mengerjakan keajaibannya, ia menjalankan perintah berikut:
rustc -Zinspect=hir , untuk mengambil hir.rustfmt , untuk memformat output.prettyprint , untuk sintaks-highlighting, yang hanya merupakan pembungkus di sekitar sintek dan peti kelelawar yang mengagumkan. Ini adalah proyek muda, yang memiliki kelemahan dan kelebihan.
Dengan demikian, menjadi kontributor hari ini!
Sampai sekarang, ini adalah alat yang sangat rapuh. Jika gagal, itu mungkin akan menghasilkan output yang mengerikan. Anda telah diperingatkan. Yang mengatakan, itu tidak akan memakan kode Anda, tentu saja. ?
Berlisensi di bawah salah satu dari
di pilihan Anda.
Kaca pembesar yang dirancang oleh rawpixel.com