# 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}}
```