Source code
Revision control
Copy as Markdown
Other Tools
# clippy
[clippy] is the tool for Rust static analysis.
## Run Locally
The mozlint integration of clippy can be run using mach:
```{eval-rst}
.. parsed-literal::
$ mach lint --linter clippy <file paths>
# Return warnings
$ mach lint --warnings --linter clippy <file paths>
```
:::{note}
clippy expects a path or a .rs file. It doesn't accept Cargo.toml
as it would break the mozlint workflow.
:::
To use Rust nightly, you can set the environment variable `RUSTUP_TOOLCHAIN` to `nightly`:
% parsed-literal:
%
% # Note that you need to have nightly installed with Rustup
% # A clobber might be necessary after switching toolchains
% $ RUSTUP_TOOLCHAIN=nightly ./mach lint --warning -l clippy .
## Configuration
To enable clippy on new directory, add the path to the include
section in the {searchfox}`clippy.yml <tools/lint/clippy.yml>` file.
To enable additional clippy rules beyond the defaults, add them to the
`warn` or `deny` lists in [clippy.yml](https://searchfox.org/mozilla-central/source/tools/lint/clippy.yml):
```yaml
warn:
- needless_return
deny:
- some_critical_lint
```
## Sources
- {searchfox}`Configuration (YAML) <tools/lint/clippy.yml>`
- {searchfox}`Source <tools/lint/clippy/__init__.py>`