| # Example: Type checking through `rustc_driver` |
| |
| [`rustc_driver`] allows you to interact with Rust code at various stages of compilation. |
| |
| ## Getting the type of an expression |
| |
| To get the type of an expression, use the [`after_analysis`] callback to get a [`TyCtxt`]. |
| |
| ```rust |
| {{#include ../../examples/rustc-driver-interacting-with-the-ast.rs}} |
| ``` |
| [`after_analysis`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver/trait.Callbacks.html#method.after_analysis |
| [`rustc_driver`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_driver |
| [`TyCtxt`]: https://doc.rust-lang.org/nightly/nightly-rustc/rustc_middle/ty/context/struct.TyCtxt.html |