Clippy
Clippy is a tool for catching common mistakes in Rust code and improving it. An expansive list of lints and the justification can be found in their documentation.
Setup
Simply add the following to the .bazelrc file in the root of your workspace:
build --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
build --output_groups=+clippy_checks
This will enable clippy on all Rust targets.
Note that targets tagged with no-clippy will not perform clippy checks.
To use a local clippy.toml, add the following flag to your .bazelrc. Note that due to
the upstream implementation of clippy, this file must be named either .clippy.toml or
clippy.toml. Using a custom config file requires Rust 1.34.0 or newer.
build --@rules_rust//rust/settings:clippy.toml=//:clippy.toml
Rules
- rust_clippy — Rule that runs
clippy-driveragainst a Rust target and fails the build on lint findings. Attach one per target for explicit gating. - rust_clippy_aspect — Aspect form of the above. Attach in
.bazelrc(as shown in Setup) to run clippy across every Rust target in the build. - rust_clippy_test — Test rule that reports clippy findings as test failures, useful in CI where a failing test is more visible than a failing build.