Skip to content

Clippy subtree update #143064

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 125 commits into from
Jun 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
e0c05a2
Include temporary feature freeze in book
blyxyas Mar 21, 2025
f71d14e
Include temporary feature freeze in templates
blyxyas Mar 21, 2025
ca3177c
Move back date 6 weeks
blyxyas Mar 23, 2025
dd8d923
Fix remark CI issues
blyxyas Apr 6, 2025
27d00a5
Fix typos in review
blyxyas Apr 6, 2025
0bac1ca
Add allow-invalid configuration option for disallowed_* to the docume…
alex-semenyuk May 19, 2025
d369dc2
Add GHA script for feature freeze
blyxyas May 28, 2025
6f0fae3
Minor fixes and date correction to book page
blyxyas May 28, 2025
5290b1e
fix: `collapsible_else_if` FP on conditionally compiled stmt
profetia May 28, 2025
8964f6e
Add lint for broken doc links
maxcnunes Nov 16, 2024
2037075
`Sugg`: do not parenthesize a double unary operator
samueltardieu Jun 5, 2025
982abc4
docs: make unbuffered_bytes docs more consistent
nekename Jun 8, 2025
dd0fa3d
Add jemalloc feature to Clippy
Kobzol Jun 10, 2025
4cb48c8
stabilize gai
BoxyUwU Jun 11, 2025
7cb7e28
Fix FP of `identity_op` when encountering `Default::default()`
relaxcn Jun 10, 2025
d03d226
avoid `&mut P<T>` in `visit_expr` etc methods
fee1-dead Jun 11, 2025
97a2d5b
intrinsics: rename min_align_of to align_of
RalfJung Jun 12, 2025
322e139
Fix false positive of `borrow_deref_ref`
samueltardieu Jun 4, 2025
0d21f08
Remove unneeded lifetime
samueltardieu Jun 12, 2025
88d2983
Unimplement unsized_locals
mejrs Jun 12, 2025
cbd683f
Merge commit '4ef75291b5dd6739212f1f61666d19d4e086690d' into clippy-s…
flip1995 Jun 13, 2025
7e25bb1
Move COERCE_CONTAINER_TO_ANY to nursery, as it has FPs
flip1995 Jun 13, 2025
3dbb497
Auto merge of #142451 - flip1995:clippy-subtree-update, r=Manishearth
bors Jun 13, 2025
fea8dd2
Lint more cases in `collapsible_else_if`
profetia May 31, 2025
ee80deb
Apply `collapsible_else_if` to Clippy itself
profetia Jun 13, 2025
506411d
Fix `collapsible_else_if` FP on conditionally compiled stmt (#14906)
samueltardieu Jun 13, 2025
535b0d5
fix: `exhaustive_structs` FP on structs with default valued field
profetia Jun 9, 2025
81f9f08
TypeVisiting binders no longer requires TypeFolding its interior
compiler-errors Jun 12, 2025
bf1a276
make it support more cases
relaxcn Jun 13, 2025
3d8d575
Reduce precedence of expressions that have an outer attr
dtolnay Jun 13, 2025
7d708a4
fix: `needless_doctest_main` panic when doctest is invalid
profetia Jun 14, 2025
de4f8e2
fix: `manual_ok_err` suggests wrongly with references
profetia Jun 14, 2025
2dfab75
fix ci/cd error
relaxcn Jun 14, 2025
252a6dd
Rollup merge of #141811 - mejrs:bye_locals, r=compiler-errors
matthiaskrgr Jun 14, 2025
086a7c9
Fix `needless_doctest_main` panic when doctest is invalid (#15052)
dswij Jun 14, 2025
49d0f86
Remove unneeded lifetime (#15040)
dswij Jun 14, 2025
97815d0
docs: make unbuffered_bytes docs more consistent (#15019)
dswij Jun 14, 2025
9f96120
Rollup merge of #134661 - dtolnay:prefixattr, r=fmease
fmease Jun 15, 2025
4d67a1c
Fix FP of `identity_op` when encountering `Default::default()` (#15028)
samueltardieu Jun 15, 2025
af9d568
Add lint for broken doc links (#13696)
Jarcho Jun 16, 2025
75762c4
docs: add link to span_lint in diagnostics.rs.
cbloodsworth Jun 16, 2025
b765acb
docs: add link to span_lint in diagnostics.rs. (#15065)
y21 Jun 16, 2025
c7ee095
clippy: add `MetaSized` conditions
davidtwco Mar 3, 2025
765015d
clippy: `{Meta,Pointee,}Sized` in non-minicore
davidtwco Mar 3, 2025
19c1c70
Add `allow-invalid` configuration option for `disallowed_*` to the do…
samueltardieu Jun 17, 2025
9ed1843
dogfood clippy::or_fun_call
klensy Jun 17, 2025
697b4f8
convert entire codebase to parsed inline attrs
jdonszelmann Mar 7, 2025
4b60d49
Rollup merge of #142371 - fee1-dead-contrib:push-xqlkumzurkus, r=petr…
jhpratt Jun 17, 2025
bc2ed2c
fix clippy
jdonszelmann Jun 10, 2025
76d583b
Auto merge of #138165 - jdonszelmann:inline, r=oli-obk
bors Jun 18, 2025
a01dd1e
Update/bless clippy tests.
m-ou-se Jun 4, 2025
77ef3d7
fix: `branches_sharing_code` suggests misleadingly when in assignment
profetia Jun 18, 2025
62a36e6
Rollup merge of #141610 - BoxyUwU:stabilize_generic_arg_infer, r=lcnr…
Kobzol Jun 18, 2025
acd8810
Prepare to split lints into multiple crates
Jarcho Apr 24, 2025
10780e9
Prepare to split `clippy_lints` (#14684)
Alexendoo Jun 19, 2025
6524bf7
Check MSRV before suggesting applying `const` to a function
samueltardieu Jun 19, 2025
d8e9953
Fix `exhaustive_structs` FP on structs with default valued field (#15…
Centri3 Jun 19, 2025
9c8f3e9
Fix typo
epompeii Jun 19, 2025
ade2682
Extract Translator struct
camsteffen Jun 19, 2025
498562d
Check MSRV before suggesting applying `const` to a function (#15080)
Jarcho Jun 19, 2025
4aa93a1
Fix `clippy::question_mark` on let-else with cfg
GoldsteinE Jun 19, 2025
db32d39
Fix typo (#15081)
samueltardieu Jun 19, 2025
73273f2
Auto merge of #140748 - m-ou-se:super-format-args3, r=jdonszelmann
bors Jun 19, 2025
ac8f504
Fix `non_copy_const` ICE
Jarcho Jun 19, 2025
59291a7
Fix `clippy::question_mark` on let-else with cfg (#15082)
samueltardieu Jun 19, 2025
62fd159
Fix `non_copy_const` ICE (#15083)
llogiq Jun 19, 2025
ee648ed
Avoid some unnecessary symbol interning.
nnethercote May 29, 2025
42614bf
Auto merge of #142286 - Kobzol:clippy-jemalloc, r=flip1995,blyxyas
bors Jun 20, 2025
95778b5
Fix suggestion-cases-error of `empty_line_after_outer_attr`
relaxcn Jun 16, 2025
8ec6f1a
Fix suggestion-cases-error of `empty_line_after_outer_attr` (#15078)
samueltardieu Jun 20, 2025
0fdd0b9
Add `integer_const()` and `is_zero_integer_const()` utility functions
samueltardieu Feb 25, 2025
f25fb1a
Use `.is_multiple_of()` in Clippy tests sources
samueltardieu Feb 25, 2025
6ffff5f
New lint: `manual_is_multiple_of`
samueltardieu Feb 25, 2025
2c1c746
New lint: `manual_is_multiple_of` (#14292)
blyxyas Jun 20, 2025
3745a3f
Even more optimizing documentation lints? (3/2)
blyxyas Jun 10, 2025
65402ab
clippy: replace path uses by diagnostic items
samueltardieu Jun 20, 2025
5f759a9
Rollup merge of #142650 - camsteffen:refactor-translator, r=petrochenkov
tgross35 Jun 20, 2025
f337ae6
Rollup merge of #142767 - nnethercote:symbol-cleanups, r=petrochenkov
Kobzol Jun 20, 2025
ea72620
lint Option::get_or_insert and Result::map_or too
klensy Jun 17, 2025
6064822
Fix `branches_sharing_code` suggests misleadingly when in assignment …
Jarcho Jun 20, 2025
0601337
Fix `manual_ok_err` suggests wrongly with references (#15053)
Jarcho Jun 20, 2025
9855524
[PERF] Don't spawn so many compilers (3/2) (19m -> 250k) (#15030)
y21 Jun 20, 2025
37cb834
`Sugg`: do not parenthesize a double unary operator (#14983)
Jarcho Jun 20, 2025
35026c7
Fix false positive of `borrow_deref_ref` (#14967)
y21 Jun 20, 2025
f53cd2b
Auto merge of #142794 - tgross35:rollup-iae7okj, r=tgross35
bors Jun 20, 2025
1e30fa2
Fix typo in tests/ui/missing_const_for_fn/const_trait.rs
smoelius Jun 20, 2025
4ead403
Fix typo in tests/ui/missing_const_for_fn/const_trait.rs (#15090)
y21 Jun 20, 2025
e50ef68
fix: `wildcard_enum_match_arm` suggests wrongly with raw identifiers
profetia Jun 21, 2025
e0cb4ce
Check the MSRV for `unnecessary_debug_formatting`
donkomura Jun 21, 2025
f027fc8
Rollup merge of #142787 - samueltardieu:diag-items-for-clippy, r=Mani…
matthiaskrgr Jun 21, 2025
7c828e6
or_fun_call: lint more methods (#15071)
samueltardieu Jun 21, 2025
07cc166
Add MSRV test for `unnecessary_debug_formatting` with `OsStr` (#15001)
samueltardieu Jun 21, 2025
c0dd2d5
Emit lint about redundant closure on the closure node itself
samueltardieu May 12, 2025
6330f91
Emit lint about redundant closure on the closure node itself (#14791)
y21 Jun 21, 2025
a421ffb
Fix `wildcard_enum_match_arm` suggests wrongly with raw identifiers (…
samueltardieu Jun 21, 2025
db539d0
Add missing space when expanding a struct-like variant
samueltardieu Jun 21, 2025
76118ec
Add missing space when expanding a struct-like variant (#15096)
y21 Jun 21, 2025
953bf2b
All HIR attributes are outer
dtolnay Jun 20, 2025
b92cccb
Port `#[must_use]` to new attribute parsing infrastructure
JonathanBrouwer Jun 22, 2025
1d764e0
Port `#[no_mangle]` to new attribute parsing infrastructure
JonathanBrouwer Jun 22, 2025
05b74d5
update to literal-escaper 0.0.4 for better API without `unreachable` …
hkBst Mar 7, 2025
2e63c7c
Changelog for Clippy 1.88
alex-semenyuk Jun 21, 2025
ad6e19a
Changelog for Clippy 1.88 🏄 (#15095)
flip1995 Jun 24, 2025
ae6ab44
fix clippy
jdonszelmann Jun 21, 2025
c11bc75
changelog: link to the correct PR
ada4a Jun 24, 2025
4a4d672
Auto merge of #140999 - hkBst:update-escaper, r=nnethercote
bors Jun 25, 2025
708ffd5
Auto merge of #142997 - workingjubilee:rollup-6lxec87, r=workingjubilee
bors Jun 25, 2025
7546381
changelog: link to the correct PR (#15125)
flip1995 Jun 25, 2025
95f0991
Add beta-nominated to changelog for 1.88
alex-semenyuk Jun 25, 2025
40554ef
Add beta-accepted to CHANGELOG for 1.88 (#15130)
flip1995 Jun 26, 2025
b88d162
Add link to the feature freeze tracking issue to the book
flip1995 Jun 26, 2025
4116a72
Ping notriddle when a clippy lint in `clippy_lints/doc` is modified
samueltardieu Jun 26, 2025
8050e59
Update book and templates with feature freeze (#14456)
flip1995 Jun 26, 2025
90364dd
Merge remote-tracking branch 'upstream/master' into rustup
flip1995 Jun 26, 2025
9b41d8f
Bump nightly version -> 2025-06-26
flip1995 Jun 26, 2025
32fcff8
Bump Clippy version -> 0.1.90
flip1995 Jun 26, 2025
c950602
Rustup (#15148)
flip1995 Jun 26, 2025
cd15aeb
Ping notriddle when a clippy lint in `clippy_lints/doc` is modified (…
flip1995 Jun 26, 2025
22c0226
Lint docs: Sort versions, so that stable comes first
flip1995 Jun 26, 2025
c5dbd1d
Lint docs: Sort versions, so that stable comes first (#15149)
samueltardieu Jun 26, 2025
80e1528
Merge commit 'c5dbd1de07e0407b9687619a868384d6de06253f' into clippy-s…
flip1995 Jun 27, 2025
1b5420a
Update Cargo.lock
flip1995 Jun 27, 2025
f13d785
broken_links: Fix rustdoc API usage
flip1995 Jun 27, 2025
4b3f31d
Use `.is_multiple_of()` in bootstrap
samueltardieu Jun 26, 2025
d9a4fd5
rustc_codegen_gcc: Fix clippy::manual_is_multiple_of
flip1995 Jun 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 10 additions & 4 deletions Cargo.lock
Original file line number Diff line number Diff line change
Expand Up @@ -537,7 +537,7 @@ checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675"

[[package]]
name = "clippy"
version = "0.1.89"
version = "0.1.90"
dependencies = [
"anstream",
"askama",
Expand All @@ -547,6 +547,7 @@ dependencies = [
"clippy_lints_internal",
"clippy_utils",
"color-print",
"declare_clippy_lint",
"filetime",
"futures",
"if_chain",
Expand All @@ -569,7 +570,7 @@ dependencies = [

[[package]]
name = "clippy_config"
version = "0.1.89"
version = "0.1.90"
dependencies = [
"clippy_utils",
"itertools",
Expand All @@ -592,12 +593,13 @@ dependencies = [

[[package]]
name = "clippy_lints"
version = "0.1.89"
version = "0.1.90"
dependencies = [
"arrayvec",
"cargo_metadata 0.18.1",
"clippy_config",
"clippy_utils",
"declare_clippy_lint",
"itertools",
"quine-mc_cluskey",
"regex-syntax 0.8.5",
Expand All @@ -622,7 +624,7 @@ dependencies = [

[[package]]
name = "clippy_utils"
version = "0.1.89"
version = "0.1.90"
dependencies = [
"arrayvec",
"itertools",
Expand Down Expand Up @@ -931,6 +933,10 @@ dependencies = [
"winapi",
]

[[package]]
name = "declare_clippy_lint"
version = "0.1.90"

[[package]]
name = "derive-where"
version = "1.4.0"
Expand Down
5 changes: 3 additions & 2 deletions compiler/rustc_codegen_gcc/src/intrinsic/simd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(
let (len, _) = args[1].layout.ty.simd_size_and_type(bx.tcx());

let expected_int_bits = (len.max(8) - 1).next_power_of_two();
let expected_bytes = len / 8 + ((len % 8 > 0) as u64);
let expected_bytes = len / 8 + ((!len.is_multiple_of(8)) as u64);

let mask_ty = args[0].layout.ty;
let mut mask = match *mask_ty.kind() {
Expand Down Expand Up @@ -676,7 +676,8 @@ pub fn generic_simd_intrinsic<'a, 'gcc, 'tcx>(
let elem_type = vector_type.get_element_type();

let expected_int_bits = in_len.max(8);
let expected_bytes = expected_int_bits / 8 + ((expected_int_bits % 8 > 0) as u64);
let expected_bytes =
expected_int_bits / 8 + ((!expected_int_bits.is_multiple_of(8)) as u64);

// FIXME(antoyo): that's not going to work for masks bigger than 128 bits.
let result_type = bx.type_ix(expected_int_bits);
Expand Down
4 changes: 3 additions & 1 deletion src/bootstrap/src/utils/render_tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,9 @@ impl<'a> Renderer<'a> {
}

fn render_test_outcome_terse(&mut self, outcome: Outcome<'_>, test: &TestOutcome) {
if self.terse_tests_in_line != 0 && self.terse_tests_in_line % TERSE_TESTS_PER_LINE == 0 {
if self.terse_tests_in_line != 0
&& self.terse_tests_in_line.is_multiple_of(TERSE_TESTS_PER_LINE)
{
if let Some(total) = self.tests_count {
let total = total.to_string();
let executed = format!("{:>width$}", self.executed_tests - 1, width = total.len());
Expand Down
4 changes: 3 additions & 1 deletion src/tools/clippy/.github/ISSUE_TEMPLATE/new_lint.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
name: New lint suggestion
description: Suggest a new Clippy lint.
description: |
Suggest a new Clippy lint (currently not accepting new lints)
Check out the Clippy book for more information about the feature freeze.
labels: ["A-lint"]
body:
- type: markdown
Expand Down
4 changes: 4 additions & 0 deletions src/tools/clippy/.github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ order to get feedback.

Delete this line and everything above before opening your PR.

Note that we are currently not taking in new PRs that add new lints. We are in a
feature freeze. Check out the book for more information. If you open a
feature-adding pull request, its review will be delayed.

---

*Please write a short comment explaining your change (or "none" for internal only changes)*
Expand Down
25 changes: 25 additions & 0 deletions src/tools/clippy/.github/workflows/feature_freeze.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Feature freeze check

on:
pull_request:
paths:
- 'clippy_lints/src/declared_lints.rs'

jobs:
auto-comment:
runs-on: ubuntu-latest

steps:
- name: Check PR Changes
id: pr-changes
run: echo "::set-output name=changes::${{ toJson(github.event.pull_request.changed_files) }}"

- name: Create Comment
if: steps.pr-changes.outputs.changes != '[]'
run: |
# Use GitHub API to create a comment on the PR
PR_NUMBER=${{ github.event.pull_request.number }}
COMMENT="**Seems that you are trying to add a new lint!**\nWe are currently in a [feature freeze](https://doc.rust-lang.org/nightly/clippy/development/feature_freeze.html), so we are delaying all lint-adding PRs to August 1st and focusing on bugfixes.\nThanks a lot for your contribution, and sorry for the inconvenience.\nWith ❤ from the Clippy team"
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
COMMENT_URL="https://api.github.com/repos/${{ github.repository }}/issues/${PR_NUMBER}/comments"
curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X POST $COMMENT_URL -d "{\"body\":\"$COMMENT\"}"
91 changes: 90 additions & 1 deletion src/tools/clippy/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,94 @@ document.

## Unreleased / Beta / In Rust Nightly

[1e5237f4...master](https://github.com/rust-lang/rust-clippy/compare/1e5237f4...master)
[03a5b6b9...master](https://github.com/rust-lang/rust-clippy/compare/03a5b6b9...master)

## Rust 1.88

Current stable, released 2025-06-26

[View all 126 merged pull requests](https://github.com/rust-lang/rust-clippy/pulls?q=merged%3A2025-03-21T10%3A30%3A57Z..2025-05-01T08%3A03%3A26Z+base%3Amaster)

### New Lints

* Added [`swap_with_temporary`] to `complexity` [#14046](https://github.com/rust-lang/rust-clippy/pull/14046)
* Added [`redundant_test_prefix`] to `restriction` [#13710](https://github.com/rust-lang/rust-clippy/pull/13710)
* Added [`manual_dangling_ptr`] to `style` [#14107](https://github.com/rust-lang/rust-clippy/pull/14107)
* Added [`char_indices_as_byte_indices`] to `correctness` [#13435](https://github.com/rust-lang/rust-clippy/pull/13435)
* Added [`manual_abs_diff`] to `complexity` [#14482](https://github.com/rust-lang/rust-clippy/pull/14482)
* Added [`ignore_without_reason`] to `pedantic` [#13931](https://github.com/rust-lang/rust-clippy/pull/13931)

### Moves and Deprecations

* Moved [`uninlined_format_args`] to `style` (from `pedantic`)
[#14160](https://github.com/rust-lang/rust-clippy/pull/14160)
* [`match_on_vec_items`] deprecated in favor of [`indexing_slicing`]
[#14217](https://github.com/rust-lang/rust-clippy/pull/14217)
* Removed superseded lints: `transmute_float_to_int`, `transmute_int_to_char`,
`transmute_int_to_float`, `transmute_num_to_bytes` (now in rustc)
[#14703](https://github.com/rust-lang/rust-clippy/pull/14703)

### Enhancements

* Configuration renamed from `lint-inconsistent-struct-field-initializers`
to `check-inconsistent-struct-field-initializers`
[#14280](https://github.com/rust-lang/rust-clippy/pull/14280)
* Paths in `disallowed_*` configurations are now validated
[#14397](https://github.com/rust-lang/rust-clippy/pull/14397)
* [`borrow_as_ptr`] now lints implicit casts as well
[#14408](https://github.com/rust-lang/rust-clippy/pull/14408)
* [`iter_kv_map`] now recognizes references on maps
[#14596](https://github.com/rust-lang/rust-clippy/pull/14596)
* [`empty_enum_variants_with_brackets`] no longer lints reachable enums or enums used
as functions within same crate [#12971](https://github.com/rust-lang/rust-clippy/pull/12971)
* [`needless_lifetimes`] now checks for lifetime uses in closures
[#14608](https://github.com/rust-lang/rust-clippy/pull/14608)
* [`wildcard_imports`] now lints on `pub use` when `warn_on_all_wildcard_imports` is enabled
[#14182](https://github.com/rust-lang/rust-clippy/pull/14182)
* [`collapsible_if`] now recognizes the `let_chains` feature
[#14481](https://github.com/rust-lang/rust-clippy/pull/14481)
* [`match_single_binding`] now allows macros in scrutinee and patterns
[#14635](https://github.com/rust-lang/rust-clippy/pull/14635)
* [`needless_borrow`] does not contradict the compiler's
`dangerous_implicit_autorefs` lint even though the references
are not mandatory
[#14810](https://github.com/rust-lang/rust-clippy/pull/14810)

### False Positive Fixes

* [`double_ended_iterator_last`] and [`needless_collect`] fixed FP when iter has side effects
[#14490](https://github.com/rust-lang/rust-clippy/pull/14490)
* [`mut_from_ref`] fixed FP where lifetimes nested in types were not considered
[#14471](https://github.com/rust-lang/rust-clippy/pull/14471)
* [`redundant_clone`] fixed FP in overlapping lifetime
[#14237](https://github.com/rust-lang/rust-clippy/pull/14237)
* [`map_entry`] fixed FP where lint would trigger without insert calls present
[#14568](https://github.com/rust-lang/rust-clippy/pull/14568)
* [`iter_cloned_collect`] fixed FP with custom `From`/`IntoIterator` impl
[#14473](https://github.com/rust-lang/rust-clippy/pull/14473)
* [`shadow_unrelated`] fixed FP in destructuring assignments
[#14381](https://github.com/rust-lang/rust-clippy/pull/14381)
* [`redundant_clone`] fixed FP on enum cast
[#14395](https://github.com/rust-lang/rust-clippy/pull/14395)
* [`collapsible_if`] fixed FP on block stmt before expr
[#14730](https://github.com/rust-lang/rust-clippy/pull/14730)

### ICE Fixes

* [`missing_const_for_fn`] fix ICE with `-Z validate-mir` compilation option
[#14776](https://github.com/rust-lang/rust-clippy/pull/14776)

### Documentation Improvements

* [`missing_asserts_for_indexing`] improved documentation and examples
[#14108](https://github.com/rust-lang/rust-clippy/pull/14108)

### Others

* We're testing with edition 2024 now
[#14602](https://github.com/rust-lang/rust-clippy/pull/14602)
* Don't warn about unloaded crates in `clippy.toml` disallowed paths
[#14733](https://github.com/rust-lang/rust-clippy/pull/14733)

## Rust 1.87

Expand Down Expand Up @@ -5729,6 +5816,7 @@ Released 2018-09-13
[`disallowed_type`]: https://rust-lang.github.io/rust-clippy/master/index.html#disallowed_type
[`disallowed_types`]: https://rust-lang.github.io/rust-clippy/master/index.html#disallowed_types
[`diverging_sub_expression`]: https://rust-lang.github.io/rust-clippy/master/index.html#diverging_sub_expression
[`doc_broken_link`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_broken_link
[`doc_comment_double_space_linebreaks`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_comment_double_space_linebreaks
[`doc_include_without_cfg`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_include_without_cfg
[`doc_lazy_continuation`]: https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation
Expand Down Expand Up @@ -5967,6 +6055,7 @@ Released 2018-09-13
[`manual_is_ascii_check`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check
[`manual_is_finite`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_finite
[`manual_is_infinite`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_infinite
[`manual_is_multiple_of`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of
[`manual_is_power_of_two`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_power_of_two
[`manual_is_variant_and`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_variant_and
[`manual_let_else`]: https://rust-lang.github.io/rust-clippy/master/index.html#manual_let_else
Expand Down
3 changes: 2 additions & 1 deletion src/tools/clippy/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "clippy"
version = "0.1.89"
version = "0.1.90"
description = "A bunch of helpful lints to avoid common pitfalls in Rust"
repository = "https://github.com/rust-lang/rust-clippy"
readme = "README.md"
Expand All @@ -24,6 +24,7 @@ path = "src/driver.rs"
clippy_config = { path = "clippy_config" }
clippy_lints = { path = "clippy_lints" }
clippy_utils = { path = "clippy_utils" }
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 }
Expand Down
4 changes: 4 additions & 0 deletions src/tools/clippy/book/src/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Clippy

[### IMPORTANT NOTE FOR CONTRIBUTORS ================](development/feature_freeze.md)

----

[![License: MIT OR Apache-2.0](https://img.shields.io/crates/l/clippy.svg)](https://github.com/rust-lang/rust-clippy#license)

A collection of lints to catch common mistakes and improve your
Expand Down
1 change: 1 addition & 0 deletions src/tools/clippy/book/src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- [GitLab CI](continuous_integration/gitlab.md)
- [Travis CI](continuous_integration/travis.md)
- [Development](development/README.md)
- [IMPORTANT: FEATURE FREEZE](development/feature_freeze.md)
- [Basics](development/basics.md)
- [Adding Lints](development/adding_lints.md)
- [Defining Lints](development/defining_lints.md)
Expand Down
3 changes: 3 additions & 0 deletions src/tools/clippy/book/src/development/adding_lints.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
# Adding a new lint

[### IMPORTANT NOTE FOR CONTRIBUTORS ================](feature_freeze.md)


You are probably here because you want to add a new lint to Clippy. If this is
the first time you're contributing to Clippy, this document guides you through
creating an example lint from scratch.
Expand Down
55 changes: 55 additions & 0 deletions src/tools/clippy/book/src/development/feature_freeze.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# IMPORTANT: FEATURE FREEZE

This is a temporary notice.

From the 26th of June until the 18th of September we will perform a feature freeze. Only bugfix PRs will be reviewed
except already open ones. Every feature-adding PR opened in between those dates will be moved into a
milestone to be reviewed separately at another time.

We do this because of the long backlog of bugs that need to be addressed
in order to continue being the state-of-the-art linter that Clippy has become known for being.

## For contributors

If you are a contributor or are planning to become one, **please do not open a lint-adding PR**, we have lots of open
bugs of all levels of difficulty that you can address instead!

We currently have about 800 lints, each one posing a maintainability challenge that needs to account to every possible
use case of the whole ecosystem. Bugs are natural in every software, but the Clippy team considers that Clippy needs a
refinement period.

If you open a PR at this time, we will not review it but push it into a milestone until the refinement period ends,
adding additional load into our reviewing schedules.

## I want to help, what can I do

Thanks a lot to everyone who wants to help Clippy become better software in this feature freeze period!
If you'd like to help, making a bugfix, making sure that it works, and opening a PR is a great step!

To find things to fix, go to the [tracking issue][tracking_issue], find an issue that you like, go there and claim that
issue with `@rustbot claim`.

As a general metric and always taking into account your skill and knowledge level, you can use this guide:

- 🟥 [ICEs][search_ice], these are compiler errors that causes Clippy to panic and crash. Usually involves high-level
debugging, sometimes interacting directly with the upstream compiler. Difficult to fix but a great challenge that
improves a lot developer workflows!

- 🟧 [Suggestion causes bug][sugg_causes_bug], Clippy suggested code that changed logic in some silent way.
Unacceptable, as this may have disastrous consequences. Easier to fix than ICEs

- 🟨 [Suggestion causes error][sugg_causes_error], Clippy suggested code snippet that caused a compiler error
when applied. We need to make sure that Clippy doesn't suggest using a variable twice at the same time or similar
easy-to-happen occurrences.

- 🟩 [False positives][false_positive], a lint should not have fired, the easiest of them all, as this is "just"
identifying the root of a false positive and making an exception for those cases.

Note that false negatives do not have priority unless the case is very clear, as they are a feature-request in a
trench coat.

[search_ice]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc+state%3Aopen+label%3A%22I-ICE%22
[sugg_causes_bug]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc%20state%3Aopen%20label%3AI-suggestion-causes-bug
[sugg_causes_error]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc%20state%3Aopen%20label%3AI-suggestion-causes-error%20
[false_positive]: https://github.com/rust-lang/rust-clippy/issues?q=sort%3Aupdated-desc%20state%3Aopen%20label%3AI-false-positive
[tracking_issue]: https://github.com/rust-lang/rust-clippy/issues/15086
Loading
Loading