Rust language reviewer and contributor.
Member of:
rustdoc team (team leader)
docs.rs team
dev-tools team
clippy-contributors team
Organizer of the monthly Paris rust meetupHuawei engineer
## What is a linter?
## How is a rust linter actually working?
## Why does it need to be a rust compiler extension?
## Limitations
* Can only work on crates compiled with the same rustc version
* rustc API is not stable
* Tied to a specific rustc version
* Annoying to wrap in a cargo command
## Compiler passes (simplified)
* AST
* HIR
* MIR
* Codegen
## Lint passes
Early vs Late
## `rustc-tools`
Provides many helpers for setting up lints and cargo integration (and other things...)
```toml
[dependencies]
rustc-tools = "0.3"
```
## Setup
`rust-toolchain`
```toml
[toolchain]
channel = "nightly-2023-10-06"
components = ["rustc-dev", "rustfmt", "llvm-tools-preview"]
```