Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
71e4ac9
fix: add check for image with embedded link
Francisco-Andre-Martins Mar 25, 2026
d7b434d
Improve needless update lint text
patchunwrap May 13, 2026
19578dd
`duration_suboptimal_units`: print the complete method name in the su…
ada4a May 12, 2026
9c08783
Fix #6817: Trigger float_cmp_const for assert_eq! with const floats
May 16, 2026
05b025b
Apply cargo dev fmt
May 16, 2026
164e6f7
Merge identical match arms
May 16, 2026
552053b
Do not trigger `clippy::exit` when expression comes from an external …
samueltardieu May 28, 2026
227cce4
The command to update the test results is `cargo uibless`
samueltardieu Jun 11, 2026
d35c889
Count length of the first paragraph by its text
notriddle Jun 12, 2026
7c52074
perf: avoid per-call type and path work in unnecessary_mut_passed
xmakro Jun 12, 2026
ee0e5a5
fix: type inference failure in mul_add.
Kokoro2336 May 9, 2026
518a89f
Rename `negated` to `is_negated_pat`.
theemathas Jun 23, 2026
a8bc1d7
Fix `unbalanced_ticks` when doc isn't contiguous
notriddle Jun 8, 2026
f08a46a
Add test case for split missing punctuation
notriddle Jun 8, 2026
490da02
Changelog for Clippy 1.97
alex-semenyuk Jun 27, 2026
4dd09d6
Extend branches_sharing_code to match arms with a shared tail
sylvestre Jun 28, 2026
b9a0911
arbitrary_source_item_ordering: add configurable trait impl ordering …
wasd243 Jul 3, 2026
04dafef
test(arbitrary_source_item_ordering): add comprehensive tests for `tr…
wasd243 Jul 5, 2026
6be69ec
Oh yeah, clippy too
scottmcm Jul 1, 2026
f6876f2
manual_filter: don't eat comments in the `and_then` suggestion
costajohnt Jul 7, 2026
62c9f92
allow mGCA const arguments to fall back to anon consts
khyperia Jul 8, 2026
79f4b6f
Rollup merge of #158666 - scottmcm:scalar-but-packed, r=workingjubilee
jhpratt Jul 9, 2026
5911c52
perf: Bail out of the disallowed_methods rule if the disallowed list …
connorshea Jul 9, 2026
a12bfc6
view-types: lower view types to HIR
scrabsha May 3, 2026
355b42a
Fix needless_collect suggests a suggestion that cannot be typed
AnHoang-alex Jul 9, 2026
0c209c1
Remove expect now that needless_collect is fixed
AnHoang-alex Jul 9, 2026
9a87d25
Attributes cleanup in tests [17/20]
samueltardieu May 21, 2026
85f9ced
Enable community reviews feature in triagebot
Urgau Jul 9, 2026
14f42a5
Merge commit '09382ed3c34e091d7705f96964e303b59978533c' into clippy-s…
flip1995 Jul 9, 2026
6f8e9ab
Enable community reviews feature in triagebot (#17390)
flip1995 Jul 9, 2026
c49f7dd
Set myself on vacation
samueltardieu Jul 9, 2026
9006d6c
Set myself on vacation (#17391)
samueltardieu Jul 9, 2026
9d78a79
book adding_lints.md: update link to msrvs
DanielEScherzer Jul 9, 2026
00e031c
Rollup merge of #157561 - notriddle:do-not-destroy-function-name, r=l…
jhpratt Jul 10, 2026
da8d7cb
Rollup merge of #158617 - khyperia:gca-syntax-flip, r=BoxyUwU
jhpratt Jul 10, 2026
3da892e
Rollup merge of #158739 - scrabsha:view-types/resolve-fields, r=oli-obk
jhpratt Jul 10, 2026
f00e53e
Remove `tokens` field from some AST nodes
nnethercote Jul 7, 2026
7267ddf
book adding_lints.md: update link to msrvs (#17394)
samueltardieu Jul 10, 2026
dcdde10
perf: Bail out of the `disallowed_methods` rule if the disallowed lis…
samueltardieu Jul 10, 2026
edce117
add new lints: `rest_pattern_accessible_field` and `unnecessary_rest_…
Erk- Jun 6, 2025
5b6af21
merge DefKind::InlineConst into AnonConst
khyperia Jul 10, 2026
523d841
Attributes cleanup in tests [17/20] (#17101)
ada4a Jul 10, 2026
66303a6
Attributes cleanup in tests [18/20]
samueltardieu May 21, 2026
5f34b6d
[Perf] Move `nonstandard_macro_braces` to pre-expansion
blyxyas Jul 9, 2026
884e9ab
Attributes cleanup in tests [18/20] (#17102)
ada4a Jul 10, 2026
e5251c9
Optimize `nonstandard_macro_braces` by 99.9683% [1.1b -> 351K] (#16808)
ada4a Jul 10, 2026
63f2678
test(`ref_binding_to_reference`): enable autofix
ada4a Jul 6, 2026
4ad3b14
`tests_outside_test_module`: put code in backticks in the lint message
ada4a Jul 6, 2026
9195a73
test(uninit_assumed_init): rename the test file to match lint name
ada4a Jul 10, 2026
ae491f3
`tests_outside_test_module`: put code in backticks in the lint messag…
samueltardieu Jul 10, 2026
8c03205
test(uninit_assumed_init): rename the test file to match lint name (#…
samueltardieu Jul 10, 2026
4e5744d
test(`ref_binding_to_reference`): enable autofix (#17371)
samueltardieu Jul 10, 2026
b6e111c
Auto merge of #159030 - flip1995:clippy-subtree-update, r=samueltardieu
bors Jul 10, 2026
3b04453
place FnDef behind a binder, instantiate w/ Dummy
Jun 17, 2026
63a5be9
Changelog for Clippy 1.97 🍹 (#17344)
flip1995 Jul 10, 2026
78d1003
Auto merge of #158942 - nnethercote:rm-ast-tokens-fields, r=petrochenkov
bors Jul 10, 2026
e3d1fea
Rollup merge of #158767 - khyperia:merge-inlineconst, r=BoxyUwU
jhpratt Jul 11, 2026
cab3dac
arbitrary_source_item_ordering: add configurable trait impl item orde…
samueltardieu Jul 11, 2026
732e6a3
Count length of the first paragraph by its text (#17215)
samueltardieu Jul 11, 2026
b2ff678
add new lints: `rest_pattern_accessible_field` and `unnecessary_rest_…
rustbot Jul 11, 2026
518f8ea
Add `definition_in_module_root` restriction lint
corygabrielsen May 19, 2026
6412d74
New lint: `definition_in_module_root` (#16965)
samueltardieu Jul 11, 2026
1ababc2
Add `as _` when the imported trait is not directly used
samueltardieu Jul 6, 2026
15edcdd
Enable `clippy::unused_trait_names` in dogfood
samueltardieu Jul 6, 2026
3bba7c4
Respect the configured MSRV in `implicit_saturating_sub`'s `if x != 0…
shulaoda Jul 11, 2026
3a514f7
`redundant_pattern_matching`: parenthesize guarded `matches!` suggestion
shulaoda Jul 11, 2026
75abcda
fix if_not_else firing on macro expanded conditions
Gri-ffin Jul 11, 2026
061b37a
Fix race in two Clippy UI tests.
Jul 11, 2026
430a22c
Fix race in two Clippy UI tests. (#17406)
samueltardieu Jul 11, 2026
33096b4
Shrink `ast::Expr`
nnethercote Jul 3, 2026
f37b6db
perf: find tab groups in doc comments without allocating
xmakro Jul 8, 2026
dd38e18
fix(non_zero_suggestions): don't lint signed div/rem as NonZero
Lfan-ke Jul 9, 2026
2f32ccf
fix: [`suboptimal_flops`] false negative with ambiguous float literal…
rustbot Jul 12, 2026
3f58335
The command to update the test results is `cargo uibless` (#17209)
ada4a Jul 12, 2026
8245e85
Update tools to rustc-demangle 1.2.8
teor2345 Jul 13, 2026
d728c37
ref_as_ptr: avoid invalid suggestions in const/static initializers
rabindra789 Jul 13, 2026
93c0223
partly disable unneeded_wildcard_pattern when rest_pattern_accessible…
Erk- Jul 13, 2026
ca697b3
Respect the configured MSRV in `implicit_saturating_sub`'s `if x != 0…
rustbot Jul 13, 2026
370a586
lints: `rest_pattern_accessible_fields`: fix typo `accesible` -> acce…
poliorcetics Jul 13, 2026
a3ba59a
Trigger `single_element_loop` if the block contains only a final expr…
lapla-cogito Feb 5, 2026
764f02f
Refactor `single_element_loop` to avoid `clippy::too_many_lines`
lapla-cogito Jul 13, 2026
8b6044b
Trigger `single_element_loop` if the block contains only a final expr…
Jarcho Jul 13, 2026
a1d390a
lints: `rest_pattern_accessible_fields`: fix typo `accesible` -> `acc…
Jarcho Jul 13, 2026
4814577
Partly disable `unneeded_wildcard_pattern` when `rest_pattern_accessi…
Jarcho Jul 13, 2026
fe2e36b
Rollup merge of #158632 - addiesh:superfisher, r=oli-obk
JonathanBrouwer Jul 13, 2026
3f3497b
Rollup merge of #159202 - teor2345:bump-rustc-demangle, r=Mark-Simula…
JonathanBrouwer Jul 13, 2026
aaf7ce7
fix(blocks_in_conditions): Don't lint if the block creates temporarie…
mengyou1024 Jul 14, 2026
107bf3f
Fix rustdoc with ModId refactors
camsteffen Jul 14, 2026
76efc6c
Fix clippy with ModId refactors
camsteffen Jul 14, 2026
5e03767
Auto merge of #158720 - nnethercote:Expr64, r=folkertdev
bors Jul 15, 2026
5f14555
Code simplification (collect has only one generic parameter)
AnHoang-alex Jul 15, 2026
eed04f6
clippy: avoid invalid `ref_as_ptr` suggestions in const/static initia…
llogiq Jul 15, 2026
9b5f92f
Rollup merge of #159197 - camsteffen:more-modid, r=petrochenkov
JonathanBrouwer Jul 15, 2026
ca36249
Rollup merge of #158302 - theemathas:neg-lit-lint, r=adwinwhite
JonathanBrouwer Jul 15, 2026
3ff2380
Add `block_scrutinee` lint
shivendra02467 Apr 15, 2026
4aadd11
Fix needless_collect suggests a suggestion that cannot be typed (#17383)
llogiq Jul 16, 2026
1244629
Improve an attribute check
nnethercote Jul 13, 2026
13bdce3
Remove `AttrItemKind`
nnethercote Jul 13, 2026
5d58075
Remove `sym::cfg_trace` and `sym::cfg_attr_trace`
nnethercote Jul 13, 2026
11671dc
Replace "early parsed" terminology
nnethercote Jul 14, 2026
a168c74
`manual_filter`: don't eat comments in the `and_then` suggestion (#17…
llogiq Jul 16, 2026
f72da8e
docs: restructure warning escalation section
raushan728 Jul 15, 2026
c3ec34d
fix(non_zero_suggestions): don't lint signed integer div/rem as NonZe…
llogiq Jul 17, 2026
fa9cfe7
Add `block_scrutinee` lint (#16855)
llogiq Jul 17, 2026
038a273
Require the use of `as _` for indirectly used traits in Clippy source…
llogiq Jul 17, 2026
21a39ad
feat: detect `== 0` on unsigned types as a `manual_clamp` lower bound
LesnyRumcajs Apr 3, 2026
9b14e55
feat: detect `== 0` on unsigned types as a `manual_clamp` lower bound…
rustbot Jul 18, 2026
b5369f9
Use `#[must_use]` determination from the compiler
samueltardieu Feb 24, 2026
8197719
Use better error message for `#[must_use]` types
samueltardieu Jun 3, 2026
bcf6667
Use `#[must_use]` determination from the compiler (#16633)
llogiq Jul 19, 2026
a1488fc
Attributes cleanup in tests [19/20]
samueltardieu May 21, 2026
02e9f20
fix(lint-page): add accessible labels to filters
eddiesr93 Jul 19, 2026
b9662e2
`cargo_common_metadata`: update link in documentation
DanielEScherzer Jul 19, 2026
b25c179
Split `endian_bytes` test into one file per lint.
Jarcho Jul 6, 2026
d04b314
Rewrite `EndianBytes` lint pass.
Jarcho Jul 6, 2026
248bb5f
Rewrite `min_ident_chars`.
Jarcho Jul 5, 2026
ea31765
Rewrite `min_ident_chars` (#17362)
llogiq Jul 20, 2026
1fb96b1
`cargo_common_metadata`: update link in documentation (#17435)
llogiq Jul 20, 2026
6109eeb
Attributes cleanup in tests [19/20] (#17103)
ada4a Jul 20, 2026
4d2c39f
Add assertion emptiness lint
joshka May 30, 2026
3f4c5f5
Fix `if_not_else` linting on macro expanded conditions (#17405)
llogiq Jul 20, 2026
c3e00c9
implement nonnull_unchecked_on_box_ptr lint
ArhanChaudhary Jul 3, 2026
120e493
Explain why the lint page accessibility test exists
eddiesr93 Jul 21, 2026
4b5b53b
Import extension traits for clippy and rustdoc
Jamesbarford Jul 21, 2026
b88f52c
Add `EULER_GAMMA` and `GOLDEN_RATIO` to `approx_constant`
sbernauer Jul 21, 2026
0e85332
unify the AST repr of type const and const RHS
khyperia Jul 22, 2026
eaaf49c
fix(lint-page): add accessible labels to filters (#17434)
llogiq Jul 22, 2026
f6262ef
Update `AttributeKind::CfgAttrTrace` variant usage in `clippy`
GuillaumeGomez Jul 22, 2026
b96e8a9
Make FieldDef smaller
panstromek Jun 16, 2026
bf3d924
Merge remote-tracking branch 'upstream/master' into rustup
flip1995 Jul 23, 2026
4a940e5
Bump nightly version -> 2026-07-23
flip1995 Jul 23, 2026
ef124f6
Rustup (#17447)
flip1995 Jul 23, 2026
4d9d3f8
Fix `four_forward_slashes` false positive on inner doc comments
zakrad Jul 23, 2026
4e15201
perf: find tab groups in doc comments without allocating (#17410)
llogiq Jul 24, 2026
bd9e81d
Add `EULER_GAMMA` and `GOLDEN_RATIO` to `approx_constant` (#17441)
llogiq Jul 24, 2026
8de4db8
Rollup merge of #159722 - GuillaumeGomez:cfg_attr-doc_cfg, r=petroche…
jhpratt Jul 24, 2026
cbd7919
fix(blocks_in_conditions): Don't lint if the block creates temporarie…
llogiq Jul 24, 2026
0547eab
Extend `branches_sharing_code` to match arms with a shared tail (#17313)
llogiq Jul 24, 2026
526ab45
Rewrite `EndianBytes` lint pass (#17363)
llogiq Jul 24, 2026
b757490
perf: avoid per-call type and path work in unnecessary_mut_passed (#1…
llogiq Jul 24, 2026
02dc855
Do not trigger `clippy::exit` when expression comes from an external …
llogiq Jul 24, 2026
7fd47ce
docs: document `build.warnings` as alternative to `-Dwarnings` (#17072)
llogiq Jul 24, 2026
69dd91a
Add dswij to rotation
dswij Jul 24, 2026
204aab3
Add dswij to rotation (#17450)
dswij Jul 24, 2026
a63d11b
New lint: `nonnull_unchecked_on_box_ptr` (#17336)
Jarcho Jul 24, 2026
54fbcbc
add next solver revision test for future_not_send
Gri-ffin Jul 25, 2026
07d8551
Attributes cleanup in tests [20/20]
samueltardieu May 21, 2026
0b54521
Apply safety comment to compound assignment statement
samueltardieu May 20, 2026
8454400
Attributes cleanup in tests [20/20] (#17104)
ada4a Jul 25, 2026
e9bd830
Flatten `nested_filter` module, and rename `None`.
mejrs Jul 25, 2026
c666859
Call `in_external_macro` after running other checks in various places.
Jarcho Jun 22, 2026
3fbf0b9
Apply safety comment to compound assignment statement (#17044)
llogiq Jul 25, 2026
9678099
Rejoin rotation
Manishearth Jul 26, 2026
79a6a81
feat: `min_ident_chars` lint short params even if follows trait naming
t-webber Jul 26, 2026
b91807e
Add assert_is_empty lint (#17149)
llogiq Jul 26, 2026
ea4e12b
Call `in_external_macro` after running other checks in various places…
dswij Jul 26, 2026
b493283
fix(multiple_unsafe_ops_per_block): false positives with non-accessed…
CommanderStorm Jul 26, 2026
a735ace
Rejoin rotation (#17459)
flip1995 Jul 26, 2026
e9146b2
Cleanup remaining attributes in Clippy test files
samueltardieu Jun 10, 2026
8581b9b
feat: `min_ident_chars` lint short idents even if follows trait namin…
samueltardieu Jul 26, 2026
a190160
Rollup merge of #159840 - Gri-ffin:lint-post-borrowck-typing-mode, r=…
JonathanBrouwer Jul 27, 2026
b4208e7
rustc_hir: refactor rustc_hir_id re-exports
mejrs Jul 27, 2026
ab5364f
Move `RustcVersion` import path to `rustc_hir::attrs`
mejrs Jul 27, 2026
e0a5c4a
unwrap_or_default: respect MSRV for raw-pointer Default impls
undefeatable-iitian Jul 24, 2026
fbadbe2
Unify duplicate assert_eq macro diagnostic name match into helper
Jul 27, 2026
f206525
Improve needless update lint text (#17004)
llogiq Jul 27, 2026
f8d5fdd
Apply rustfmt formatting
Jul 27, 2026
70f4d2f
`duration_suboptimal_units`: print the complete method name in the su…
llogiq Jul 27, 2026
12cac29
fix(multiple_unsafe_ops_per_block): false positive in with taking an …
samueltardieu Jul 27, 2026
7488a0d
Fix `four_forward_slashes` false positive on inner doc comments (#17448)
Jarcho Jul 27, 2026
4f6106c
Many "predicate"-to-"clause" renamings
nnethercote May 28, 2026
4162f20
Rollup merge of #160022 - mejrs:hir_too_globby, r=folkertdev
jhpratt Jul 28, 2026
8df1ed2
Rollup merge of #159990 - nnethercote:predicate-to-clause, r=oli-obk
JonathanBrouwer Jul 28, 2026
e462238
removed unused dependencies
KikiKian Jun 14, 2026
5a78cd3
Fix #6817: Trigger float_cmp_const for assert_eq! with const floats (…
llogiq Jul 29, 2026
414b30a
A few more "predicate"-to-"clause" renamings
ada4a Jul 29, 2026
6486d8f
chore: remove unused dependencies (#17236)
llogiq Jul 30, 2026
08eae15
fix(manual_div_ceil): avoid suggestions that change evaluation count
cuishuang Jul 28, 2026
3dfce9b
Don't lint no_effect_underscore_binding on proc-macro output
ArneshBanerjee Jul 30, 2026
cb524fc
Fix `no_effect_underscore_binding` false positive on proc-macro gener…
samueltardieu Jul 30, 2026
9f12d4a
fully deprecate the legacy integral modules
cyrgani Sep 22, 2025
ed64307
misc improvements
ada4a Jul 30, 2026
391e687
fix: don't do full-blown `res`
ada4a Jul 30, 2026
85e42b2
use `is_none_{expr,pattern}` in more places
ada4a Jul 30, 2026
af3ebdd
fix: add check for image with embedded link (#16773)
rustbot Jul 30, 2026
0f78852
Structurally prevent zero-count `BackendRepr::SimdVector`s
scottmcm Jul 29, 2026
e557c25
Clean up crate imports
Jamesbarford Jul 30, 2026
b075ea3
Rollup merge of #160220 - Jamesbarford:chore/shrink-region-ext-triats…
JonathanBrouwer Jul 31, 2026
704f87a
Remove `maybe_typeck_results` from `LateContext`.
Jarcho Jun 15, 2026
e5029db
refactor: use `is_none_{expr,pattern}` in more places (#17477)
Manishearth Jul 31, 2026
d5b79ae
Rollup merge of #160124 - scottmcm:simd-count, r=oli-obk
jhpratt Aug 1, 2026
9d00f61
Rollup merge of #157928 - Jarcho:eager_typeck, r=adwinwhite
jhpratt Aug 1, 2026
1f31f9b
fix: lint of &x.clone().
Kokoro2336 May 7, 2026
75d1ef7
introduce a new CastKind for ElaborateBoxDerefs
RalfJung Jul 29, 2026
a892c2b
Merge remote-tracking branch 'upstream/master' into rustup
flip1995 Aug 1, 2026
a46d681
Bump nightly version -> 2026-08-01
flip1995 Aug 1, 2026
3e151c5
Fix integration test binary extraction
flip1995 Aug 1, 2026
3382a95
Rustup (#17484)
flip1995 Aug 1, 2026
c97f7eb
Rewrite of the config parsing code
Jarcho Apr 21, 2025
d552c6c
Rollup merge of #160012 - RalfJung:deref-validity, r=oli-obk
JonathanBrouwer Aug 1, 2026
9117fa7
Rewrite config parsing for better span support (#13084)
Jarcho Aug 1, 2026
29a54a8
fix(manual_div_ceil): avoid suggestions that change evaluation count …
rustbot Aug 2, 2026
b8f6009
fix: lints for UFCS call in [`clone_on_copy`] (#16972)
llogiq Aug 3, 2026
0037015
Deny multiple EII impls on a single item
bjorn3 Jul 15, 2026
507e550
Cleanup attributes in Clippy source files
samueltardieu May 27, 2026
84c4bbf
New Clippy source test: lint-attributes-organization
samueltardieu May 27, 2026
94b0ea3
cleanup: bump toml to 1.1
durin42 Aug 3, 2026
3a2c0a9
Next steps for FnDef binder changes (instantiate most FnDef binders)
Jul 21, 2026
8c34b94
cleanup: bump toml to 1.1 (#17500)
Manishearth Aug 3, 2026
7c687ae
Derive the allocator used by tools from rustc's allocator
Zoxc Jul 30, 2026
832458e
Fix broken doc link
samueltardieu Aug 3, 2026
b77b725
Rollup merge of #159403 - addiesh:call-me-turbofishmael, r=oli-obk
JonathanBrouwer Aug 4, 2026
8d2ca2f
Rollup merge of #160372 - Zoxc:alloc-bin, r=Kobzol
JonathanBrouwer Aug 4, 2026
1bc997d
Rollup merge of #146882 - cyrgani:deprecate-legacy-int-mods, r=clarfo…
JonathanBrouwer Aug 4, 2026
67ede22
Remove rustc_middle dependency on rustc_hir_pretty
mejrs Aug 3, 2026
aa55cb2
Rollup merge of #160360 - mejrs:hir_pretty, r=nnethercote
JonathanBrouwer Aug 5, 2026
25d0f1a
approx_const.rs: fix typo (golden_ration -> golden_ratio)
HarrisonMc555 Aug 5, 2026
6b4d9fd
approx_const.rs: fix typo (golden_ration -> golden_ratio) (#17510)
samueltardieu Aug 6, 2026
807730f
Update comment as zulip channel has been renamed
samueltardieu Aug 6, 2026
fb7f039
New Clippy source test: lint-attributes-organization (#17050)
samueltardieu Aug 6, 2026
55fd3be
Update comment as zulip channel has been renamed (#17513)
samueltardieu Aug 7, 2026
3fbcabf
unwrap_or_default: respect MSRV for raw-pointer Default impls (#17452)
dswij Aug 7, 2026
cd3ecbb
Merge remote-tracking branch 'upstream/master' into rustup
flip1995 Aug 7, 2026
2c7a4e4
Bump nightly version -> 2026-08-07
flip1995 Aug 7, 2026
4cbf8bf
`redundant_pattern_matching`: parenthesize guarded `matches!` suggest…
dswij Aug 7, 2026
1a65e08
Rustup (#17514)
flip1995 Aug 7, 2026
49e2f89
Fix broken doc link (#17507)
flip1995 Aug 7, 2026
619c577
Merge commit '49e2f89a2605a9a340e04955fdbefa9803e6027a' into clippy-s…
flip1995 Aug 7, 2026
9e7db05
Update Cargo.lock
flip1995 Aug 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 5 additions & 15 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -669,16 +669,14 @@ dependencies = [
"clippy_utils",
"color-print",
"declare_clippy_lint",
"filetime",
"itertools",
"pulldown-cmark",
"regex",
"rustc_tools_util 0.4.2",
"serde",
"serde_json",
"tempfile",
"termize",
"toml 0.9.8",
"toml 1.1.0+spec-1.1.0",
"ui_test",
"walkdir",
]
Expand All @@ -687,10 +685,10 @@ dependencies = [
name = "clippy_config"
version = "0.1.99"
dependencies = [
"arrayvec",
"clippy_utils",
"itertools",
"serde",
"toml 0.7.8",
"toml 1.1.0+spec-1.1.0",
"walkdir",
]

Expand All @@ -717,15 +715,15 @@ dependencies = [
"clippy_utils",
"declare_clippy_lint",
"itertools",
"memchr",
"quine-mc_cluskey",
"regex-syntax",
"semver",
"serde",
"toml 0.9.8",
"toml 1.1.0+spec-1.1.0",
"unicode-normalization",
"unicode-script",
"url",
"walkdir",
]

[[package]]
Expand All @@ -736,7 +734,6 @@ dependencies = [
"clippy_utils",
"itertools",
"regex",
"rustc-semver",
]

[[package]]
Expand All @@ -746,7 +743,6 @@ dependencies = [
"arrayvec",
"itertools",
"rustc_apfloat",
"serde",
]

[[package]]
Expand Down Expand Up @@ -3572,12 +3568,6 @@ dependencies = [
"wasi 0.14.2+wasi-0.2.4",
]

[[package]]
name = "rustc-semver"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5be1bdc7edf596692617627bbfeaba522131b18e06ca4df2b6b689e3c5d5ce84"

[[package]]
name = "rustc-stable-hash"
version = "0.1.2"
Expand Down
2 changes: 1 addition & 1 deletion src/tools/clippy/.github/workflows/clippy_mq.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ jobs:
- name: Extract Binaries
run: |
DIR=$CARGO_TARGET_DIR/debug
find $DIR/deps/integration-* -executable ! -type d | xargs -I {} mv {} $DIR/integration
find $DIR/build/clippy/*/out/integration* -executable ! -type d | xargs -I {} mv {} $DIR/integration
find $DIR ! -executable -o -type d ! -path $DIR | xargs rm -rf

- name: Upload Binaries
Expand Down
123 changes: 122 additions & 1 deletion src/tools/clippy/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,120 @@ document.

## Unreleased / Beta / In Rust Nightly

[88f787...master](https://github.com/rust-lang/rust-clippy/compare/88f787...master)
[b147b68...master](https://github.com/rust-lang/rust-clippy/compare/b147b68...master)

## Rust 1.97

Current stable, released 2026-07-09

[View all 55 merged pull requests](https://github.com/rust-lang/rust-clippy/pulls?q=merged%3A2026-04-04T13%3A32%3A00Z..2026-05-13T17%3A35%3A43Z+base%3Amaster)

### New Lints

* Added [`manual_assert_eq`] to `pedantic`
[#16025](https://github.com/rust-lang/rust-clippy/pull/16025)
* Added [`manual_clear`] to `perf`
[#16617](https://github.com/rust-lang/rust-clippy/pull/16617)
* Added [`useless_borrows_in_formatting`] to `perf`
[#16523](https://github.com/rust-lang/rust-clippy/pull/16523)
* Added [`inline_trait_bounds`] to `restriction`
[#16486](https://github.com/rust-lang/rust-clippy/pull/16486)
* Added [`inline_modules`] to `restriction`
[#16732](https://github.com/rust-lang/rust-clippy/pull/16732)

### Moves and Deprecations

* Moved [`nonminimal_bool`] from `complexity` to `pedantic`
[#16761](https://github.com/rust-lang/rust-clippy/pull/16761)
* Moved [`overly_complex_bool_expr`] from `correctness` to `pedantic`
[#16761](https://github.com/rust-lang/rust-clippy/pull/16761)

### Enhancements

* [`unused_format_specs`] detect format width below the minimum output size for `#x`/`#o`/`#b`,
exponent, and pointer formats
[#16542](https://github.com/rust-lang/rust-clippy/pull/16542)
* [`zst_offset`] detect zero-sized `NonNull<T>` offset calculations
[#16888](https://github.com/rust-lang/rust-clippy/pull/16888)
* [`byte_char_slices`] enhance to cover arrays
[#16770](https://github.com/rust-lang/rust-clippy/pull/16770)
* [`manual_filter`] enhance to cover `and_then`
[#16456](https://github.com/rust-lang/rust-clippy/pull/16456)
* [`unneeded_wildcard_pattern`] add support for struct constructs
[#16733](https://github.com/rust-lang/rust-clippy/pull/16733)
* [`needless_late_init`] enhance to cover grouped assignments
[#16746](https://github.com/rust-lang/rust-clippy/pull/16746)
* [`needless_return_with_question_mark`] fix FN in async function bodies
[#16952](https://github.com/rust-lang/rust-clippy/pull/16952)
* [`needless_ifs`] fix FN when code contains a vertical tab (`\x0B`) whitespace
[#16845](https://github.com/rust-lang/rust-clippy/pull/16845)
* [`cloned_ref_to_slice_refs`] fix FN on `to_owned()`
[#16329](https://github.com/rust-lang/rust-clippy/pull/16329)
* [`for_kv_map`] fix FN when using `iter` and `iter_mut`
[#16830](https://github.com/rust-lang/rust-clippy/pull/16830)
* [`question_mark`] fix FN for manual unwrap with `if let` or `match`, when the scrutinee is behind
a reference, and when the binding is behind `ref` or `mut`
[#16769](https://github.com/rust-lang/rust-clippy/pull/16769)
* [`question_mark`] fix wrong suggestion when the match arm body is a destructuring assignment
[#16863](https://github.com/rust-lang/rust-clippy/pull/16863)
* [`expect_fun_call`] fix wrong suggestions for string slicing
[#16752](https://github.com/rust-lang/rust-clippy/pull/16752)
* [`println_empty_string`] fix wrong suggestion with non-parenthesis delimiters
[#16846](https://github.com/rust-lang/rust-clippy/pull/16846)
* [`int_plus_one`] parenthesize an `as` cast in the suggestion when the replacement operator is `<`
to avoid a parse error
[#16848](https://github.com/rust-lang/rust-clippy/pull/16848)
* [`bad_bit_mask`] truncate the constant to the target type before warning about impossible equality
[#16782](https://github.com/rust-lang/rust-clippy/pull/16782)
* [`manual_rotate`], [`map_with_unused_argument_over_ranges`], [`needless_bool`],
[`manual_is_power_of_two`], [`manual_div_ceil`], [`implicit_saturating_sub`], [`range_minus_one`],
[`range_plus_one`], [`manual_swap`], [`let_and_return`] fix wrongly unmangled macros
[#16443](https://github.com/rust-lang/rust-clippy/pull/16443)
* [`manual_noop_waker`] add an MSRV check
[#16850](https://github.com/rust-lang/rust-clippy/pull/16850)

### False Positive Fixes

* [`manual_option_zip`] fix FP when the outer param is used in a closure
[#16970](https://github.com/rust-lang/rust-clippy/pull/16970)
* [`non_canonical_clone_impl`] fix incompatibility with [`implicit_return`]
[#16949](https://github.com/rust-lang/rust-clippy/pull/16949)
* [`from_over_into`] don't lint when a blanket `From` impl would cause a coherence conflict
[#16881](https://github.com/rust-lang/rust-clippy/pull/16881)
* [`collapsible_match`] no longer suggests collapsing `pattern => { if test { body } }` into a match
guard when non-wildcard arms follow, as this changes the semantics of the match
[#16878](https://github.com/rust-lang/rust-clippy/pull/16878)
* [`unused_async`] fix FP for stubs with args
[#16832](https://github.com/rust-lang/rust-clippy/pull/16832)
* [`useless_conversion`] do not lint on `(a..b).into_iter()`, for compatibility with future range
syntax changes
[#16891](https://github.com/rust-lang/rust-clippy/pull/16891)
* [`bind_instead_of_map`] do not propose a rewrite when the only way to leave the closure is through
a divergent statement other than `return`
[#16867](https://github.com/rust-lang/rust-clippy/pull/16867)
* [`let_and_return`] do not trigger on the `let else` construct
[#16829](https://github.com/rust-lang/rust-clippy/pull/16829)
* [`fn_to_numeric_cast_any`] fix FP on a cast to a raw pointer
[#14109](https://github.com/rust-lang/rust-clippy/pull/14109)
* [`unnecessary_cast`] no longer suggests removing a cast that can cause a compilation error
[#16796](https://github.com/rust-lang/rust-clippy/pull/16796)
* [`unsafe_removed_from_name`] skip linting when renaming to `_`
[#16802](https://github.com/rust-lang/rust-clippy/pull/16802)

### ICE Fixes

* [`bad_bit_mask`] fix ICE for overloaded bit ops
[#16937](https://github.com/rust-lang/rust-clippy/pull/16937)

### Performance Improvements

* Fold all late lint passes into one statically-combined pass
[#17124](https://github.com/rust-lang/rust-clippy/pull/17124)

### New Lints

* Added [`assert_is_empty`] to `pedantic`
[#17114](https://github.com/rust-lang/rust-clippy/issues/17114)

## Rust 1.96

Expand Down Expand Up @@ -6639,6 +6752,7 @@ Released 2018-09-13
[`as_pointer_underscore`]: https://rust-lang.github.io/rust-clippy/master/index.html#as_pointer_underscore
[`as_ptr_cast_mut`]: https://rust-lang.github.io/rust-clippy/master/index.html#as_ptr_cast_mut
[`as_underscore`]: https://rust-lang.github.io/rust-clippy/master/index.html#as_underscore
[`assert_is_empty`]: https://rust-lang.github.io/rust-clippy/master/index.html#assert_is_empty
[`assertions_on_constants`]: https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_constants
[`assertions_on_result_states`]: https://rust-lang.github.io/rust-clippy/master/index.html#assertions_on_result_states
[`assign_op_pattern`]: https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
Expand All @@ -6655,6 +6769,7 @@ Released 2018-09-13
[`blanket_clippy_restriction_lints`]: https://rust-lang.github.io/rust-clippy/master/index.html#blanket_clippy_restriction_lints
[`block_in_if_condition_expr`]: https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_expr
[`block_in_if_condition_stmt`]: https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt
[`block_scrutinee`]: https://rust-lang.github.io/rust-clippy/master/index.html#block_scrutinee
[`blocks_in_conditions`]: https://rust-lang.github.io/rust-clippy/master/index.html#blocks_in_conditions
[`blocks_in_if_conditions`]: https://rust-lang.github.io/rust-clippy/master/index.html#blocks_in_if_conditions
[`bool_assert_comparison`]: https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison
Expand Down Expand Up @@ -6732,6 +6847,7 @@ Released 2018-09-13
[`default_numeric_fallback`]: https://rust-lang.github.io/rust-clippy/master/index.html#default_numeric_fallback
[`default_trait_access`]: https://rust-lang.github.io/rust-clippy/master/index.html#default_trait_access
[`default_union_representation`]: https://rust-lang.github.io/rust-clippy/master/index.html#default_union_representation
[`definition_in_module_root`]: https://rust-lang.github.io/rust-clippy/master/index.html#definition_in_module_root
[`deprecated_cfg_attr`]: https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr
[`deprecated_clippy_cfg_attr`]: https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_clippy_cfg_attr
[`deprecated_semver`]: https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_semver
Expand Down Expand Up @@ -7170,6 +7286,7 @@ Released 2018-09-13
[`non_std_lazy_statics`]: https://rust-lang.github.io/rust-clippy/master/index.html#non_std_lazy_statics
[`non_zero_suggestions`]: https://rust-lang.github.io/rust-clippy/master/index.html#non_zero_suggestions
[`nonminimal_bool`]: https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool
[`nonnull_unchecked_on_box_ptr`]: https://rust-lang.github.io/rust-clippy/master/index.html#nonnull_unchecked_on_box_ptr
[`nonsensical_open_options`]: https://rust-lang.github.io/rust-clippy/master/index.html#nonsensical_open_options
[`nonstandard_macro_braces`]: https://rust-lang.github.io/rust-clippy/master/index.html#nonstandard_macro_braces
[`not_unsafe_ptr_arg_deref`]: https://rust-lang.github.io/rust-clippy/master/index.html#not_unsafe_ptr_arg_deref
Expand Down Expand Up @@ -7286,6 +7403,7 @@ Released 2018-09-13
[`repr_packed_without_abi`]: https://rust-lang.github.io/rust-clippy/master/index.html#repr_packed_without_abi
[`reserve_after_initialization`]: https://rust-lang.github.io/rust-clippy/master/index.html#reserve_after_initialization
[`rest_pat_in_fully_bound_structs`]: https://rust-lang.github.io/rust-clippy/master/index.html#rest_pat_in_fully_bound_structs
[`rest_pattern_accessible_field`]: https://rust-lang.github.io/rust-clippy/master/index.html#rest_pattern_accessible_field
[`result_expect_used`]: https://rust-lang.github.io/rust-clippy/master/index.html#result_expect_used
[`result_filter_map`]: https://rust-lang.github.io/rust-clippy/master/index.html#result_filter_map
[`result_large_err`]: https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
Expand Down Expand Up @@ -7451,6 +7569,7 @@ Released 2018-09-13
[`unnecessary_operation`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation
[`unnecessary_option_map_or_else`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_option_map_or_else
[`unnecessary_owned_empty_strings`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_owned_empty_strings
[`unnecessary_rest_pattern`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_rest_pattern
[`unnecessary_result_map_or_else`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_result_map_or_else
[`unnecessary_safety_comment`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_safety_comment
[`unnecessary_safety_doc`]: https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_safety_doc
Expand Down Expand Up @@ -7607,6 +7726,7 @@ Released 2018-09-13
[`max-struct-bools`]: https://doc.rust-lang.org/clippy/lint_configuration.html#max-struct-bools
[`max-suggested-slice-pattern-length`]: https://doc.rust-lang.org/clippy/lint_configuration.html#max-suggested-slice-pattern-length
[`max-trait-bounds`]: https://doc.rust-lang.org/clippy/lint_configuration.html#max-trait-bounds
[`min-ident-chars-lint-trait-impl`]: https://doc.rust-lang.org/clippy/lint_configuration.html#min-ident-chars-lint-trait-impl
[`min-ident-chars-threshold`]: https://doc.rust-lang.org/clippy/lint_configuration.html#min-ident-chars-threshold
[`missing-docs-allow-unused`]: https://doc.rust-lang.org/clippy/lint_configuration.html#missing-docs-allow-unused
[`missing-docs-in-crate-items`]: https://doc.rust-lang.org/clippy/lint_configuration.html#missing-docs-in-crate-items
Expand All @@ -7628,6 +7748,7 @@ Released 2018-09-13
[`too-many-arguments-threshold`]: https://doc.rust-lang.org/clippy/lint_configuration.html#too-many-arguments-threshold
[`too-many-lines-threshold`]: https://doc.rust-lang.org/clippy/lint_configuration.html#too-many-lines-threshold
[`trait-assoc-item-kinds-order`]: https://doc.rust-lang.org/clippy/lint_configuration.html#trait-assoc-item-kinds-order
[`trait-impl-item-order`]: https://doc.rust-lang.org/clippy/lint_configuration.html#trait-impl-item-order
[`trivial-copy-size-limit`]: https://doc.rust-lang.org/clippy/lint_configuration.html#trivial-copy-size-limit
[`type-complexity-threshold`]: https://doc.rust-lang.org/clippy/lint_configuration.html#type-complexity-threshold
[`unnecessary-box-size`]: https://doc.rust-lang.org/clippy/lint_configuration.html#unnecessary-box-size
Expand Down
4 changes: 1 addition & 3 deletions src/tools/clippy/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ declare_clippy_lint = { path = "declare_clippy_lint" }
rustc_tools_util = { path = "rustc_tools_util", version = "0.4.2" }
clippy_lints_internal = { path = "clippy_lints_internal", optional = true }
tempfile = { version = "3.20", optional = true }
termize = "0.2"
color-print = "0.3.4"
anstream = "0.6.18"

Expand All @@ -39,13 +38,12 @@ regex = "1.5.5"
serde = { version = "1.0.145", features = ["derive"] }
serde_json = "1.0.122"
walkdir = "2.3"
filetime = "0.2.9"
itertools = "0.15"
pulldown-cmark = { version = "0.11", default-features = false, features = ["html"] }
askama = { version = "0.16.0", default-features = false, features = ["alloc", "config", "derive"] }

[dev-dependencies.toml]
version = "0.9.7"
version = "1.1"
default-features = false
# preserve_order keeps diagnostic output in file order
features = ["parse", "preserve_order"]
Expand Down
17 changes: 14 additions & 3 deletions src/tools/clippy/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,18 +140,27 @@ before_script:
script:
- cargo clippy
# if you want the build job to fail when encountering warnings, use
- cargo clippy -- -D warnings
- CARGO_BUILD_WARNINGS=deny cargo clippy
# in order to also check tests and non-default crate features, use
- cargo clippy --all-targets --all-features -- -D warnings
- CARGO_BUILD_WARNINGS=deny cargo clippy --all-targets --all-features
- cargo test
# etc.
```

Note that adding `-D warnings` will cause your build to fail if **any** warnings are found in your code.
Note that setting `CARGO_BUILD_WARNINGS=deny` will cause your build to fail if **any** warnings are found in your code.
That includes warnings found by rustc (e.g. `dead_code`, etc.). If you want to avoid this and only cause
an error for Clippy warnings, use `#![deny(clippy::all)]` in your code or `-D clippy::all` on the command
line. (You can swap `clippy::all` with the specific lint category you are targeting.)

Also note that before Cargo 1.97, the usual way to deny all warnings was by using `-D warnings`:

```shell
cargo clippy -- -D warnings
```

However, [`CARGO_BUILD_WARNINGS`] has the benefit of not invalidating build caches,
and is thus to be preferred going forward.

## Configuration

### Allowing/denying lints
Expand Down Expand Up @@ -286,3 +295,5 @@ option. Files in the project may not be
copied, modified, or distributed except according to those terms.

<!-- REUSE-IgnoreEnd -->

[`CARGO_BUILD_WARNINGS`]: https://doc.rust-lang.org/cargo/reference/config.html#buildwarnings
4 changes: 2 additions & 2 deletions src/tools/clippy/book/src/development/adding_lints.md
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,7 @@ pub struct ManualStrip {

impl ManualStrip {
pub fn new(conf: &'static Conf) -> Self {
Self { msrv: conf.msrv }
Self { msrv: conf.msrv.into() }
}
}
```
Expand Down Expand Up @@ -526,7 +526,7 @@ define_Conf! {
}
```

[`clippy_utils::msrvs`]: https://doc.rust-lang.org/nightly/nightly-rustc/clippy_config/msrvs/index.html
[`clippy_utils::msrvs`]: https://doc.rust-lang.org/nightly/nightly-rustc/clippy_utils/msrvs/index.html

Afterwards update the documentation for the book as described in [Adding configuration to a lint](#adding-configuration-to-a-lint).

Expand Down
Loading
Loading