| # Unpretty | |
| The unpretty rules expose `rustc`'s [`-Zunpretty=<mode>`][unpretty] flag as a | |
| Bazel action. Given a Rust target, they emit an alternate textual representation | |
| of it — the fully macro-expanded source, the HIR, the MIR CFG, etc. — useful for | |
| inspecting what the compiler sees after macro expansion, lowering, or | |
| optimization. | |
| Because `-Zunpretty` is a nightly-only compiler flag, these rules require a | |
| nightly `rust_toolchain` to be registered. | |
| [unpretty]: https://doc.rust-lang.org/nightly/unstable-book/compiler-flags/unpretty.html | |
| ## Rules | |
| - [rust_unpretty](./rust_unpretty.md) — Rule form. Explicitly declare an unpretty | |
| target that emits the chosen representation for a specific crate. | |
| - [rust_unpretty_aspect](./rust_unpretty_aspect.md) — Aspect form. Attach at the | |
| command line (`--aspects=@rules_rust//rust:defs.bzl%rust_unpretty_aspect | |
| --output_groups=+rust_unpretty`) to emit the representation for every Rust | |
| target in the build without adding rule instances. |