Lint categories
sui-clippy groups rules into categories (same names as rust-clippy). Each category has a default level (allow, warn, or deny) used when neither sui-clippy.toml nor the CLI overrides a lint.
| Category | Role | Default |
|---|---|---|
correctness | Likely bugs or useless code | deny |
suspicious | Very likely unintended | warn |
style | Idiomatic / readable Move | warn |
complexity | Simpler equivalent forms | warn |
perf | Cheaper patterns | warn |
pedantic | Stricter / noisier | allow |
nursery | New or experimental | allow |
restriction | Opinionated bans | allow |
cargo | Move.toml / packaging | allow |
sui | Sui object / PTB patterns | allow |
security | Security heuristics (expect noise) | allow |
Full index
- In this book: Lint index (generated) — Markdown table (anchors
#lint_id). - Searchable page: hosted lint list on GitHub Pages (built by
.github/workflows/pages.yml). Files live underbook/src/lints/and are produced bycargo run -p sui-clippy-docgenbeforemdbook build. UX is modeled on Clippy’s hosted lint list.
Rules not in the generated table
Some diagnostics are produced at run time and are not declared as static LintDef entries:
move_compiler— only when--typedis used and the binary is built with--features move_compiler.sui_move_lint— when--with-sui-lintis set and the spawnedsui move build --lintfails.
Regenerating docs
Whenever you add or change a lint’s metadata:
cargo run -p sui-clippy-docgen
Then rebuild the book (mdbook build inside book/) if you ship HTML.