All notable changes to this project will be documented in this file. See Changelog Update if you want to update this document.
Current beta, release 2020-06-04
explicit_deref_methods
#5226implicit_saturating_sub
#5427macro_use_imports
#5230verbose_file_reads
#5272future_not_send
#5423redundant_pub_crate
#5319large_const_arrays
#5248result_map_or_into_option
#5415redundant_allocation
#5349fn_address_comparisons
#5294vtable_address_comparisons
#5294
- Deprecate
replace_consts
lint #5380 - Move
cognitive_complexity
to nursery #5428 - Move
useless_transmute
to nursery #5364 - Downgrade
inefficient_to_string
to pedantic #5412 - Downgrade
option_option
to pedantic #5401 - Downgrade
unreadable_literal
to pedantic #5419 - Downgrade
let_unit_value
to pedantic #5409 - Downgrade
trivially_copy_pass_by_ref
to pedantic #5410 - Downgrade
implicit_hasher
to pedantic #5411
- On nightly you can now use
cargo clippy --fix -Z unstable-options
to auto-fix lints that support this #5363 - Make
redundant_clone
also trigger on cases where the cloned value is not consumed. #5304 - Expand
integer_arithmetic
to also disallow bit-shifting #5430 option_as_ref_deref
now detects more deref cases #5425large_enum_variant
now report the sizes of the largest and second-largest variants #5466bool_comparison
now also checks for inequality comparisons that can be written more concisely #5365- Expand
clone_on_copy
to work in method call arguments as well #5441 redundant_pattern_matching
now also handleswhile let
#5483integer_arithmetic
now also lints references of integers #5329- Expand
float_cmp_const
to also work on arrays #5345 - Trigger
map_flatten
when map is called on anOption
#5473
many_single_char_names
#5468should_implement_trait
#5437unused_self
#5387redundant_clone
#5453precedence
#5445suspicious_op_assign_impl
#5424needless_lifetimes
#5293redundant_pattern
#5287inconsistent_digit_grouping
#5451
- Improved
question_mark
lint suggestion so that it doesn't add redundantas_ref()
#5481 - Improve the suggested placeholder in
option_map_unit_fn
#5292 - Improve suggestion for
match_single_binding
when triggered inside a closure #5350
- Fix documentation generation for configurable lints #5353
- Update documentation for
new_ret_no_self
#5448 - The documentation for
option_option
now suggest using a tri-state enum #5403 - Fix bit mask example in
verbose_bit_mask
documentation #5454 wildcard_imports
documentation now mentions thatuse ...::prelude::*
is not linted #5312
Current stable, released 2020-04-23
imprecise_flops
#4897suboptimal_flops
#4897wildcard_imports
#5029single_component_path_imports
#5058match_single_binding
#5061let_underscore_lock
#5101struct_excessive_bools
#5125fn_params_excessive_bools
#5125option_env_unwrap
#5148lossy_float_literal
#5202rest_pat_in_fully_bound_structs
#5258
- Move
unneeded_field_pattern
to pedantic group #5200
- Make
missing_errors_doc
lint also trigger onasync
functions #5181 - Add more constants to
approx_constant
#5193 - Extend
question_mark
lint #5266
- Improve suggestion when blocks of code are suggested #5134
misc_early
lints #5129missing_errors_doc
#5213- Fix ICE when evaluating
usize
s #5256
- Improve documentation of
iter_nth_zero
- Add documentation pages for stable releases #5171
- Clippy now completely runs on GitHub Actions #5190
Released 2020-03-12
filetype_is_file
#4543let_underscore_must_use
#4823modulo_arithmetic
#4867mem_replace_with_default
#4881mutable_key_type
#4885option_as_ref_deref
#4945wildcard_in_or_patterns
#4960iter_nth_zero
#4966invalid_atomic_ordering
#4999skip_while_next
#5067
- Move
transmute_float_to_int
from nursery to complexity group #5015 - Move
range_plus_one
to pedantic group #5057 - Move
debug_assert_with_mut_call
to nursery group #5106 - Deprecate
unused_label
#4930
- Lint vectored IO in
unused_io_amount
#5027 - Make
vec_box
configurable by adding a size threshold #5081 - Also lint constants in
cmp_nan
#4910 - Fix false negative in
expect_fun_call
#4915 - Fix false negative in
redundant_clone
#5017
map_clone
#4937replace_consts
#4977let_and_return
#5008eq_op
#5079possible_missing_comma
#5083debug_assert_with_mut_call
#5106- Don't trigger
let_underscore_must_use
in external macros #5082 - Don't trigger
empty_loop
inno_std
crates #5086
option_map_unwrap_or
#4634wildcard_enum_match_arm
#4934cognitive_complexity
#4935decimal_literal_representation
#4956unknown_clippy_lints
#4963explicit_into_iter_loop
#4978useless_attribute
#5022if_let_some_result
#5032
- Improve documentation of
empty_enum
,replace_consts
,redundant_clone
, anditerator_step_by_zero
Released 2020-01-30
- New Lints:
- Remove plugin interface, see Inside Rust Blog for details #4714
- Move
use_self
to nursery group #4863 - Deprecate
into_iter_on_array
#4788 - Expand
string_lit_as_bytes
to also trigger when literal has escapes #4808 - Fix false positive in
comparison_chain
#4842 - Fix false positive in
while_immutable_condition
#4730 - Fix false positive in
explicit_counter_loop
#4803 - Fix false positive in
must_use_candidate
#4794 - Fix false positive in
print_with_newline
andwrite_with_newline
#4769 - Fix false positive in
derive_hash_xor_eq
#4766 - Fix false positive in
missing_inline_in_public_items
#4870 - Fix false positive in
string_add
#4880 - Fix false positive in
float_arithmetic
#4851 - Fix false positive in
cast_sign_loss
#4883 - Fix false positive in
manual_swap
#4877 - Fix ICEs occurring while checking some block expressions #4772
- Fix ICE in
use_self
#4776 - Fix ICEs related to
const_generics
#4780 - Display help when running
clippy-driver
without arguments, instead of ICEing #4810 - Clippy has its own ICE message now #4588
- Show deprecated lints in the documentation again #4757
- Improve Documentation by adding positive examples to some lints #4832
Released 2019-12-19
- New Lints:
unneeded_wildcard_pattern
#4537needless_doctest_main
#4603suspicious_unary_op_formatting
#4615debug_assert_with_mut_call
#4680unused_self
#4619inefficient_to_string
#4683must_use_unit
#4560must_use_candidate
#4560double_must_use
#4560comparison_chain
#4569unsound_collection_transmute
#4592panic
#4657unreachable
#4657todo
#4657option_expect_used
#4657result_expect_used
#4657
- Move
redundant_clone
to perf group #4509 - Move
manual_mul_add
to nursery group #4736 - Expand
unit_cmp
to also work withassert_eq!
,debug_assert_eq!
,assert_ne!
anddebug_assert_ne!
#4613 - Expand
integer_arithmetic
to also detect mutating arithmetic like+=
#4585 - Fix false positive in
nonminimal_bool
#4568 - Fix false positive in
missing_safety_doc
#4611 - Fix false positive in
cast_sign_loss
#4614 - Fix false positive in
redundant_clone
#4509 - Fix false positive in
try_err
#4721 - Fix false positive in
toplevel_ref_arg
#4570 - Fix false positive in
multiple_inherent_impl
#4593 - Improve more suggestions and tests in preparation for the unstable
cargo fix --clippy
#4575 - Improve suggestion for
zero_ptr
#4599 - Improve suggestion for
explicit_counter_loop
#4691 - Improve suggestion for
mul_add
#4602 - Improve suggestion for
assertions_on_constants
#4635 - Fix ICE in
use_self
#4671 - Fix ICE when encountering const casts #4590
Released 2019-11-07
- New Lints:
- Deprecate
unused_collect
lint. This is fully covered by rustc's#[must_use]
oncollect
#4348 - Move
type_repetition_in_bounds
to pedantic group #4403 - Move
cast_lossless
to pedantic group #4539 temporary_cstring_as_ptr
now catches more cases #4425use_self
now works in constructors, too #4525cargo_common_metadata
now checks for license files #4518cognitive_complexity
now includes the measured complexity in the warning message #4469- Fix false positives in
block_in_if_*
lints #4458 - Fix false positive in
cast_lossless
#4473 - Fix false positive in
clone_on_copy
#4411 - Fix false positive in
deref_addrof
#4487 - Fix false positive in
too_many_lines
#4490 - Fix false positive in
new_ret_no_self
#4365 - Fix false positive in
manual_swap
#4478 - Fix false positive in
missing_const_for_fn
#4450 - Fix false positive in
extra_unused_lifetimes
#4477 - Fix false positive in
inherent_to_string
#4460 - Fix false positive in
map_entry
#4495 - Fix false positive in
unused_unit
#4445 - Fix false positive in
redundant_pattern
#4489 - Fix false positive in
wrong_self_convention
#4369 - Improve various suggestions and tests in preparation for the unstable
cargo fix --clippy
#4558 - Improve suggestions for
redundant_pattern_matching
#4352 - Improve suggestions for
explicit_write
#4544 - Improve suggestion for
or_fun_call
#4522 - Improve suggestion for
match_as_ref
#4446 - Improve suggestion for
unnecessary_fold_span
#4382 - Add suggestions for
unseparated_literal_suffix
#4401 - Add suggestions for
char_lit_as_u8
#4418
Released 2019-09-26
- New Lints:
- Move
{unnnecessary,panicking}_unwrap
out of nursery #4307 - Extend the
use_self
lint to suggest uses ofSelf::Variant
#4308 - Improve suggestion for needless return #4262
- Add auto-fixable suggestion for
let_unit
#4337 - Fix false positive in
pub_enum_variant_names
andenum_variant_names
#4345 - Fix false positive in
cast_ptr_alignment
#4257 - Fix false positive in
string_lit_as_bytes
#4233 - Fix false positive in
needless_lifetimes
#4266 - Fix false positive in
float_cmp
#4275 - Fix false positives in
needless_return
#4274 - Fix false negative in
match_same_arms
#4246 - Fix incorrect suggestion for
needless_bool
#4335 - Improve suggestion for
cast_ptr_alignment
#4257 - Improve suggestion for
single_char_literal
#4361 - Improve suggestion for
len_zero
#4314 - Fix ICE in
implicit_hasher
#4268 - Fix allow bug in
trivially_copy_pass_by_ref
#4250
Released 2019-08-15
- New Lints:
- Renamed Lint:
const_static_lifetime
is now calledredundant_static_lifetimes
. The lint now covers statics in addition to consts #4162 match_same_arms
now warns for all identical arms, instead of only the first one #4102needless_return
now works with void functions #4220- Fix false positive in
redundant_closure
#4190 - Fix false positive in
useless_attribute
#4107 - Fix incorrect suggestion for
float_cmp
#4214 - Add suggestions for
print_with_newline
andwrite_with_newline
#4136 - Improve suggestions for
option_map_unwrap_or_else
andresult_map_unwrap_or_else
#4164 - Improve suggestions for
non_ascii_literal
#4119 - Improve diagnostics for
let_and_return
#4137 - Improve diagnostics for
trivially_copy_pass_by_ref
#4071 - Add macro check for
unreadable_literal
#4099
Released 2019-07-04
- New lints:
find_map
,filter_map_next
#4039 - New lint:
path_buf_push_overwrite
#3954 - Move
path_buf_push_overwrite
to the nursery #4013 - Split
redundant_closure
intoredundant_closure
andredundant_closure_for_method_calls
#4110 - Allow allowing of
toplevel_ref_arg
lint #4007 - Fix false negative in
or_fun_call
pertaining to nested constructors #4084 - Fix false positive in
or_fun_call
pertaining to enum variant constructors #4018 - Fix false positive in
useless_let_if_seq
pertaining to interior mutability #4035 - Fix false positive in
redundant_closure
pertaining to non-function types #4008 - Fix false positive in
let_and_return
pertaining to attributes onlet
s #4024 - Fix false positive in
module_name_repetitions
lint pertaining to attributes #4006 - Fix false positive on
assertions_on_constants
pertaining todebug_assert!
#3989 - Improve suggestion in
map_clone
to suggest.copied()
where applicable #3970 #4043 - Improve suggestion for
search_is_some
#4049 - Improve suggestion applicability for
naive_bytecount
#3984 - Improve suggestion applicability for
while_let_loop
#3975 - Improve diagnostics for
too_many_arguments
#4053 - Improve diagnostics for
cast_lossless
#4021 - Deal with macro checks in desugarings better #4082
- Add macro check for
unnecessary_cast
#4026 - Remove
approx_constant
's documentation's "Known problems" section. #4027 - Fix ICE in
suspicious_else_formatting
#3960 - Fix ICE in
decimal_literal_representation
#3931
Released 2019-05-20
- New lint:
drop_bounds
to detectT: Drop
bounds - Split
redundant_closure
intoredundant_closure
andredundant_closure_for_method_calls
#4110 - Rename
cyclomatic_complexity
tocognitive_complexity
, start work on making lint more practical for Rust code - Move
get_unwrap
to the restriction category - Improve suggestions for
iter_cloned_collect
- Improve suggestions for
cast_lossless
to suggest suffixed literals - Fix false positives in
print_with_newline
andwrite_with_newline
pertaining to raw strings - Fix false positive in
needless_range_loop
pertaining to structs without a.iter()
- Fix false positive in
bool_comparison
pertaining to non-bool types - Fix false positive in
redundant_closure
pertaining to differences in borrows - Fix false positive in
option_map_unwrap_or
on non-copy types - Fix false positives in
missing_const_for_fn
pertaining to macros and trait method impls - Fix false positive in
needless_pass_by_value
pertaining to procedural macros - Fix false positive in
needless_continue
pertaining to loop labels - Fix false positive for
boxed_local
pertaining to arguments moved into closures - Fix false positive for
use_self
in nested functions - Fix suggestion for
expect_fun_call
(rust-lang#3846) - Fix suggestion for
explicit_counter_loop
to deal with parenthesizing range variables - Fix suggestion for
single_char_pattern
to correctly escape single quotes - Avoid triggering
redundant_closure
in macros - ICE fixes: #3805, #3772, #3741
Released 2019-04-10
- New lint:
assertions_on_constants
to detect for exampleassert!(true)
- New lint:
dbg_macro
to detect uses of thedbg!
macro - New lint:
missing_const_for_fn
that can suggest functions to be madeconst
- New lint:
too_many_lines
to detect functions with excessive LOC. It can be configured using thetoo-many-lines-threshold
configuration. - New lint:
wildcard_enum_match_arm
to check for wildcard enum matches using_
- Expand
redundant_closure
to also work for methods (not only functions) - Fix ICEs in
vec_box
,needless_pass_by_value
andimplicit_hasher
- Fix false positive in
cast_sign_loss
- Fix false positive in
integer_arithmetic
- Fix false positive in
unit_arg
- Fix false positives in
implicit_return
- Add suggestion to
explicit_write
- Improve suggestions for
question_mark
lint - Fix incorrect suggestion for
cast_lossless
- Fix incorrect suggestion for
expect_fun_call
- Fix incorrect suggestion for
needless_bool
- Fix incorrect suggestion for
needless_range_loop
- Fix incorrect suggestion for
use_self
- Fix incorrect suggestion for
while_let_on_iterator
- Clippy is now slightly easier to invoke in non-cargo contexts. See #3665 for more details.
- We now have improved documentation on how to add new lints
Released 2019-02-26
- New lints:
implicit_return
,vec_box
,cast_ref_to_mut
- The
rust-clippy
repository is now part of therust-lang
org. - Rename
stutter
tomodule_name_repetitions
- Merge
new_without_default_derive
intonew_without_default
lint - Move
large_digit_groups
fromstyle
group topedantic
- Expand
bool_comparison
to check for<
,<=
,>
,>=
, and!=
comparisons against booleans - Expand
no_effect
to detect writes to constants such asA_CONST.field = 2
- Expand
redundant_clone
to work on struct fields - Expand
suspicious_else_formatting
to detectif .. {..} {..}
- Expand
use_self
to work on tuple structs and also in local macros - Fix ICE in
result_map_unit_fn
andoption_map_unit_fn
- Fix false positives in
implicit_return
- Fix false positives in
use_self
- Fix false negative in
clone_on_copy
- Fix false positive in
doc_markdown
- Fix false positive in
empty_loop
- Fix false positive in
if_same_then_else
- Fix false positive in
infinite_iter
- Fix false positive in
question_mark
- Fix false positive in
useless_asref
- Fix false positive in
wildcard_dependencies
- Fix false positive in
write_with_newline
- Add suggestion to
explicit_write
- Improve suggestions for
question_mark
lint - Fix incorrect suggestion for
get_unwrap
Released 2019-01-17
- New lints:
slow_vector_initialization
,mem_discriminant_non_enum
,redundant_clone
,wildcard_dependencies
,into_iter_on_ref
,into_iter_on_array
,deprecated_cfg_attr
,mem_discriminant_non_enum
,cargo_common_metadata
- Add support for
u128
andi128
to integer related lints - Add float support to
mistyped_literal_suffixes
- Fix false positives in
use_self
- Fix false positives in
missing_comma
- Fix false positives in
new_ret_no_self
- Fix false positives in
possible_missing_comma
- Fix false positive in
integer_arithmetic
in constant items - Fix false positive in
needless_borrow
- Fix false positive in
out_of_bounds_indexing
- Fix false positive in
new_without_default_derive
- Fix false positive in
string_lit_as_bytes
- Fix false negative in
out_of_bounds_indexing
- Fix false negative in
use_self
. It will now also check existential types - Fix incorrect suggestion for
redundant_closure_call
- Fix various suggestions that contained expanded macros
- Fix
bool_comparison
triggering 3 times on on on the same code - Expand
trivially_copy_pass_by_ref
to work on trait methods - Improve suggestion for
needless_range_loop
- Move
needless_pass_by_value
frompedantic
group tostyle
Released 2018-12-06
- Clippy has been relicensed under a dual MIT / Apache license. See #3093 for more information.
- With Rust 1.31, Clippy is no longer available via crates.io. The recommended
installation method is via
rustup component add clippy
. - New lints:
redundant_pattern_matching
,unnecessary_filter_map
,unused_unit
,map_flatten
,mem_replace_option_with_none
- Fix ICE in
if_let_redundant_pattern_matching
- Fix ICE in
needless_pass_by_value
when encountering a generic function argument with a lifetime parameter - Fix ICE in
needless_range_loop
- Fix ICE in
single_char_pattern
when encountering a constant value - Fix false positive in
assign_op_pattern
- Fix false positive in
boxed_local
on trait implementations - Fix false positive in
cmp_owned
- Fix false positive in
collapsible_if
when conditionals have comments - Fix false positive in
double_parens
- Fix false positive in
excessive_precision
- Fix false positive in
explicit_counter_loop
- Fix false positive in
fn_to_numeric_cast_with_truncation
- Fix false positive in
map_clone
- Fix false positive in
new_ret_no_self
- Fix false positive in
new_without_default
whennew
is unsafe - Fix false positive in
type_complexity
when using extern types - Fix false positive in
useless_format
- Fix false positive in
wrong_self_convention
- Fix incorrect suggestion for
excessive_precision
- Fix incorrect suggestion for
expect_fun_call
- Fix incorrect suggestion for
get_unwrap
- Fix incorrect suggestion for
useless_format
fn_to_numeric_cast_with_truncation
lint can be disabled again- Improve suggestions for
manual_memcpy
- Improve help message for
needless_lifetimes
Released 2018-10-25
- Deprecate
assign_ops
lint - New lints:
mistyped_literal_suffixes
,ptr_offset_with_cast
,needless_collect
,copy_iterator
cargo clippy -V
now includes the Clippy commit hash of the Rust Clippy component- Fix ICE in
implicit_hasher
- Fix ICE when encountering
println!("{}" a);
- Fix ICE when encountering a macro call in match statements
- Fix false positive in
default_trait_access
- Fix false positive in
trivially_copy_pass_by_ref
- Fix false positive in
similar_names
- Fix false positive in
redundant_field_name
- Fix false positive in
expect_fun_call
- Fix false negative in
identity_conversion
- Fix false negative in
explicit_counter_loop
- Fix
range_plus_one
suggestion and false negative print_with_newline
/write_with_newline
: don't warn about string with several\n
s in them- Fix
useless_attribute
to also whitelistunused_extern_crates
- Fix incorrect suggestion for
single_char_pattern
- Improve suggestion for
identity_conversion
lint - Move
explicit_iter_loop
andexplicit_into_iter_loop
fromstyle
group topedantic
- Move
range_plus_one
andrange_minus_one
fromnursery
group tocomplexity
- Move
shadow_unrelated
fromrestriction
group topedantic
- Move
indexing_slicing
frompedantic
group torestriction
Released 2018-09-13
- 🎉 🎉 Rust 1.29 is the first stable Rust that includes a bundled Clippy 🎉
🎉
You can now run
rustup component add clippy-preview
and thencargo clippy
to run Clippy. This should put an end to the continuous nightly upgrades for Clippy users. - Clippy now follows the Rust versioning scheme instead of its own
- Fix ICE when encountering a
while let (..) = x.iter()
construct - Fix false positives in
use_self
- Fix false positive in
trivially_copy_pass_by_ref
- Fix false positive in
useless_attribute
lint - Fix false positive in
print_literal
- Fix
use_self
regressions - Improve lint message for
neg_cmp_op_on_partial_ord
- Improve suggestion highlight for
single_char_pattern
- Improve suggestions for various print/write macro lints
- Improve website header
- Rustup to rustc 1.29.0-nightly (e06c87544 2018-07-06)
- Rustup to rustc 1.28.0-nightly (e3bf634e0 2018-06-28)
- Rustup to rustc 1.28.0-nightly (01cc982e9 2018-06-24)
- Rustup to rustc 1.28.0-nightly (523097979 2018-06-18)
- Rustup to rustc 1.28.0-nightly (86a8f1a63 2018-06-17)
- Rustup to rustc 1.28.0-nightly (2a0062974 2018-06-09)
- Rustup to rustc 1.28.0-nightly (5bf68db6e 2018-05-28)
- Rustup to rustc 1.28.0-nightly (990d8aa74 2018-05-25)
- Rename
unused_lifetimes
toextra_unused_lifetimes
because of naming conflict with new rustc lint
- Rustup to rustc 1.28.0-nightly (71e87be38 2018-05-22)
- Rustup to rustc 1.28.0-nightly (a3085756e 2018-05-19)
- Clippy attributes are now of the form
clippy::cyclomatic_complexity
instead ofclippy(cyclomatic_complexity)
- Rustup to rustc 1.28.0-nightly (952f344cd 2018-05-18)
- Rustup to rustc 1.27.0-nightly (2f2a11dfc 2018-05-16)
- Rustup to rustc 1.27.0-nightly (9fae15374 2018-05-13)
- Rustup to rustc 1.27.0-nightly (ff2ac35db 2018-05-12)
- Rustup to rustc 1.27.0-nightly (acd3871ba 2018-05-10)
- Rustup to rustc 1.27.0-nightly (428ea5f6b 2018-05-06)
- Rustup to rustc 1.27.0-nightly (e82261dfb 2018-05-03)
- Rustup to rustc 1.27.0-nightly (ac3c2288f 2018-04-18)
- Rustup to rustc 1.27.0-nightly (bd40cbbe1 2018-04-14)
- New lints:
cast_ptr_alignment
,transmute_ptr_to_ptr
,write_literal
,write_with_newline
,writeln_empty_string
- Rustup to rustc 1.27.0-nightly (eeea94c11 2018-04-06)
- Rustup to rustc 1.27.0-nightly (fb44b4c0e 2018-04-04)
- New lint:
print_literal
- Rustup to rustc 1.26.0-nightly (ae544ee1c 2018-03-29)
- Lint audit; categorize lints as style, correctness, complexity, pedantic, nursery, restriction.
- Fix a bunch of intermittent cargo bugs
- Rustup to rustc 1.26.0-nightly (5508b2714 2018-03-18)
- Rustup to rustc 1.26.0-nightly (392645394 2018-03-15)
- New lint:
while_immutable_condition
- Rustup to rustc 1.26.0-nightly (322d7f7b9 2018-02-25)
- New lints:
redundant_field_names
,suspicious_arithmetic_impl
,suspicious_op_assign_impl
- Rustup to rustc 1.25.0-nightly (0c6091fbd 2018-02-04)
- Various false positive fixes
- Rustup to rustc 1.25.0-nightly (56733bc9f 2018-02-01)
- New lint:
question_mark
- Rustup to rustc 1.25.0-nightly (90eb44a58 2018-01-29)
- New lints:
double_comparisons
,empty_line_after_outer_attr
- Rustup to rustc 1.25.0-nightly (21882aad7 2018-01-28)
- New lint:
misaligned_transmute
- Rustup to rustc 1.25.0-nightly (a0dcecff9 2018-01-24)
- New lint:
decimal_literal_representation
- Rustup to rustc 1.25.0-nightly (97520ccb1 2018-01-21)
- New lints:
else_if_without_else
,option_option
,unit_arg
,unnecessary_fold
- Removed
unit_expr
- Various false positive fixes for
needless_pass_by_value
- Rustup to rustc 1.25.0-nightly (3f92e8d89 2018-01-14)
- Rustup to rustc 1.25.0-nightly (61452e506 2018-01-09)
- Rustup to rustc 1.25.0-nightly (ee220daca 2018-01-07)
- Rustup to rustc 1.24.0-nightly (250b49205 2017-12-21)
- New lint:
match_as_ref
- Rustup to rustc 1.24.0-nightly (0077d128d 2017-12-14)
- Rustup to rustc 1.24.0-nightly (bb42071f6 2017-12-01)
- Rustup to rustc 1.23.0-nightly (63739ab7b 2017-11-21)
- Rustup to rustc 1.23.0-nightly (33374fa9d 2017-11-20)
- Rustup to rustc 1.23.0-nightly (d0f8e2913 2017-11-16)
- Rustup to rustc 1.23.0-nightly (ff0f5de3b 2017-11-14)
- Rustup to rustc 1.23.0-nightly (d6b06c63a 2017-11-09)
- Rustup to rustc 1.23.0-nightly (3b82e4c74 2017-11-05)
- New lints:
just_underscores_and_digits
,result_map_unwrap_or_else
,transmute_bytes_to_str
- Rustup to rustc 1.23.0-nightly (f0fe716db 2017-10-30)
- Rustup to rustc 1.23.0-nightly (90ef3372e 2017-10-29)
- New lints:
const_static_lifetime
,erasing_op
,fallible_impl_from
,println_empty_string
,useless_asref
- Rustup to rustc 1.22.0-nightly (b7960878b 2017-10-18)
- New lints:
explicit_write
,identity_conversion
,implicit_hasher
,invalid_ref
,option_map_or_none
,range_minus_one
,range_plus_one
,transmute_int_to_bool
,transmute_int_to_char
,transmute_int_to_float
- Rust upgrade to rustc 1.22.0-nightly (0e6f4cf51 2017-09-27)
- New lint:
mut_range_bound
- Update to rustc 1.22.0-nightly (6c476ce46 2017-09-25)
- New lint:
int_plus_one
- Update to rustc 1.22.0-nightly (14039a42a 2017-09-22)
- Update to rustc 1.22.0-nightly (0701b37d9 2017-09-18)
- New lint:
chars_last_cmp
- Improved suggestions for
needless_borrow
,ptr_arg
,
- Update to rustc 1.22.0-nightly (539f2083d 2017-09-13)
- Update to rustc 1.22.0-nightly (dd08c3070 2017-09-12)
- Update to rustc 1.22.0-nightly (eba374fb2 2017-09-11)
- New lint:
clone_on_ref_ptr
- New lint:
manual_memcpy
cast_lossless
no longer has redundant parentheses in its suggestions- Update to rustc 1.22.0-nightly (dead08cb3 2017-09-08)
- Update to rustc 1.22.0-nightly (981ce7d8d 2017-09-03)
- New lint:
unit_expr
- Update to rustc 1.22.0-nightly (744dd6c1d 2017-09-02)
- Update to rustc 1.21.0-nightly (c11f689d2 2017-08-29)
- New lint:
infinite_iter
,maybe_infinite_iter
,cast_lossless
- Update to rustc 1.21.0-nightly (2c0558f63 2017-08-24)
- Fix
use_self
triggering inside derives - Add support for linting an entire workspace with
cargo clippy --all
- New lint:
naive_bytecount
- Update to rustc 1.21.0-nightly (8c303ed87 2017-08-20)
- New lint:
use_self
- Update to rustc 1.21.0-nightly (df511d554 2017-08-14)
- Update to rustc 1.21.0-nightly (13d94d5fa 2017-08-10)
- Update to rustc 1.21.0-nightly (215e0b10e 2017-08-08)
- Update to rustc 1.21.0-nightly (37c7d0ebb 2017-07-31)
- New lints:
unreadable_literal
,inconsistent_digit_grouping
,large_digit_groups
- Update to rustc 1.21.0-nightly (aac223f4f 2017-07-30)
- Update to rustc 1.21.0-nightly (52a330969 2017-07-27)
- Fixes false positives in
inline_always
- Fixes false negatives in
panic_params
- Update to rustc 1.20.0-nightly (afe145d22 2017-07-23)
- Update to rustc 1.20.0-nightly (086eaa78e 2017-07-15)
- Update to rustc 1.20.0-nightly (d84693b93 2017-07-09)
- Fix
cargo clippy
crashing ondylib
projects - Fix false positives around
nested_while_let
andnever_loop
- Update to rustc 1.20.0-nightly (067971139 2017-07-02)
- Rewrite of the
doc_markdown
lint. - Deprecated
range_step_by_zero
- New lint:
iterator_step_by_zero
- New lint:
needless_borrowed_reference
- Update to rustc 1.20.0-nightly (69c65d296 2017-06-28)
- Update to rustc 1.19.0-nightly (258ae6dd9 2017-06-15)
- Update to rustc 1.19.0-nightly (4bf5c99af 2017-06-10)
- Fix bugs with for loop desugaring
- Check for
AsRef
/AsMut
arguments inwrong_self_convention
- Update to rustc 1.19.0-nightly (0418fa9d3 2017-06-04)
- Update to rustc 1.19.0-nightly (6684d176c 2017-06-03)
- Update to rustc 1.19.0-nightly (557967766 2017-05-26)
- Update to rustc 1.19.0-nightly (5b13bff52 2017-05-23)
- Update to rustc 1.19.0-nightly (0ed1ec9f9 2017-05-18)
- Update to rustc 1.19.0-nightly (826d8f385 2017-05-13)
- Fix various bugs and some ices
- Update to rustc 1.19.0-nightly (2d4ed8e0c 2017-05-03)
- Update to rustc 1.19.0-nightly (6a5fc9eec 2017-05-02)
- Update to rustc 1.19.0-nightly (06fb4d256 2017-04-30)
- Update to rustc 1.18.0-nightly (94e884b63 2017-04-27)
- Update to rustc 1.18.0-nightly (036983201 2017-04-26)
- New lint:
needless_continue
- Update to rustc 1.18.0-nightly (2bd4b5c6d 2017-04-23)
- Update to rustc 1.18.0-nightly (9f2abadca 2017-04-18)
- Update to rustc 1.18.0-nightly (d5cf1cb64 2017-04-15)
- Fix various false positives
- Rustup to rustc 1.18.0-nightly (91ae22a01 2017-04-05)
- New lint:
op_ref
- Rustup to rustc 1.17.0-nightly (134c4a0f0 2017-03-20)
- Rustup to rustc 1.17.0-nightly (0aeb9c129 2017-03-15)
- Rustup to rustc 1.17.0-nightly (824c9ebbd 2017-03-12)
- Rustup to rustc 1.17.0-nightly (b1e31766d 2017-03-03)
- Rustup to rustc 1.17.0-nightly (be760566c 2017-02-28)
- Fix
cargo clippy
on 64 bit windows systems
- Rustup to rustc 1.17.0-nightly (60a0edc6c 2017-02-26)
- New lints:
zero_ptr
,never_loop
,mut_from_ref
- Rustup to rustc 1.17.0-nightly (c49d10207 2017-02-07)
- Tests are now ui tests (testing the exact output of rustc)
- Rustup to rustc 1.16.0-nightly (eedaa94e3 2017-02-02)
- New lint:
large_enum_variant
explicit_into_iter_loop
provides suggestions
- Rustup to rustc 1.16.0-nightly (df8debf6d 2017-01-25)
- Rustup to rustc 1.16.0-nightly (a52da95ce 2017-01-20)
- Add badges and categories to
Cargo.toml
- Update to rustc 1.16.0-nightly (c07a6ae77 2017-01-17)
- Update to rustc 1.16.0-nightly (2782e8f8f 2017-01-12)
- Update regex dependency
- Fix FP when matching
&&mut
by&ref
- Reintroduce
for (_, x) in &mut hash_map
->for x in hash_map.values_mut()
- New lints:
unused_io_amount
,forget_ref
,short_circuit_statement
- Fix FP introduced by rustup in
wrong_self_convention
- Update to rustc 1.16.0-nightly (468227129 2017-01-03)
- New lints:
deref_addrof
,double_parens
,pub_enum_variant_names
- Fix suggestion in
new_without_default
- FP fix in
absurd_extreme_comparisons
- Update to rustc 1.15.0-nightly (8f02c429a 2016-12-15)
- Update to rustc 1.15.0-nightly (d5814b03e 2016-11-23)
- Update to rustc 1.15.0-nightly (3bf2be9ce 2016-11-22)
- Update to rustc 1.15.0-nightly (7b3eeea22 2016-11-21)
- New lint:
string_extend_chars
- Update to rustc 1.15.0-nightly (ac635aa95 2016-11-18)
- Update to rustc 1.15.0-nightly (0ed951993 2016-11-14)
- New lint:
get_unwrap
- Fixes an issue due to a change in how cargo handles
--sysroot
, which brokecargo clippy
- For convenience,
cargo clippy
defines acargo-clippy
feature. This was previously added for a short time under the nameclippy
but removed for compatibility. cargo clippy --help
is more helping (and less helpful 😄)- Rustup to rustc 1.14.0-nightly (5665bdf3e 2016-11-02)
- New lints:
if_let_redundant_pattern_matching
,partialeq_ne_impl
- Rustup to rustc 1.14.0-nightly (f09420685 2016-10-20)
- New lint:
iter_skip_next
- Rustup to rustc 1.14.0-nightly (3210fd5c2 2016-10-05)
- Fixes bustage on Windows due to forbidden directory name
- Rustup to rustc 1.14.0-nightly (144af3e97 2016-10-02)
option_map_unwrap_or
andoption_map_unwrap_or_else
are now allowed by default.- New lint:
explicit_into_iter_loop
- Rustup to rustc 1.14.0-nightly (289f3a4ca 2016-09-29)
- Rustup to rustc 1.13.0-nightly (d0623cf7b 2016-09-26)
- Rustup to rustc 1.13.0-nightly (f1f40f850 2016-09-09)
- Rustup to rustc 1.13.0-nightly (cbe4de78e 2016-09-05)
- Rustup to rustc 1.13.0-nightly (70598e04f 2016-09-03)
- The following lints are not new but were only usable through the
clippy
lint groups:filter_next
,for_loop_over_option
,for_loop_over_result
andmatch_overlapping_arm
. You should now be able to#[allow/deny]
them individually and they are available directly throughcargo clippy
.
- Rustup to rustc 1.13.0-nightly (eac41469d 2016-08-30)
- New lints:
builtin_type_shadow
- Fix FP in
zero_prefixed_literal
and0b
/0o
- Rustup to rustc 1.13.0-nightly (a23064af5 2016-08-27)
- New lints:
missing_docs_in_private_items
,zero_prefixed_literal
- Fix ICE with
useless_attribute
useless_attribute
ignoresunused_imports
onuse
statements
- Rustup to rustc 1.13.0-nightly (aef6971ca 2016-08-17)
- Rustup to rustc 1.12.0-nightly (1bf5fa326 2016-08-16)
- New lints:
print_with_newline
,useless_attribute
- Rustup to rustc 1.12.0-nightly (197be89f3 2016-08-15)
- New lint:
module_inception
- Rustup to rustc 1.12.0-nightly (1deb02ea6 2016-08-12)
- New lints:
eval_order_dependence
,mixed_case_hex_literals
,unseparated_literal_suffix
- False positive fix in
too_many_arguments
- Addition of functionality to
needless_borrow
- Suggestions for
clone_on_copy
- Bug fix in
wrong_self_convention
- Doc improvements
- Rustup to rustc 1.12.0-nightly (1225e122f 2016-07-30)
- New lints:
misrefactored_assign_op
,serde_api_misuse
- Rustup to rustc 1.12.0-nightly (f93aaf84c 2016-07-09)
- Major suggestions refactoring
- Rustup to rustc 1.11.0-nightly (01411937f 2016-07-01)
- New lints:
wrong_transmute
,double_neg
,filter_map
- For compatibility,
cargo clippy
does not defines theclippy
feature introduced in 0.0.76 anymore collapsible_if
now considersif let
- Rustup to rustc 1.11.0-nightly (5522e678b 2016-06-20)
- New lints:
stutter
anditer_nth
- Rustup to rustc 1.11.0-nightly (7d2f75a95 2016-06-09)
cargo clippy
now automatically defines theclippy
feature- New lint:
not_unsafe_ptr_arg_deref
- Rustup to rustc 1.11.0-nightly (763f9234b 2016-06-06)
- Fix bug with
cargo-clippy
JSON parsing - Add the
CLIPPY_DISABLE_DOCS_LINKS
environment variable to deactivate the “for further information visit lint-link” message.
- Fix false positives in
useless_let_if_seq
- Fix false positives in
useless_let_if_seq
- Rustup to rustc 1.11.0-nightly (a967611d8 2016-05-30)
- New lint:
useless_let_if_seq
- Rustup to rustc 1.10.0-nightly (7bddce693 2016-05-27)
invalid_regex
andtrivial_regex
can now warn onRegexSet::new
,RegexBuilder::new
and byte regexes
- Rustup to rustc 1.10.0-nightly (476fe6eef 2016-05-21)
used_underscore_binding
has been madeAllow
temporarily
- Rustup to rustc 1.10.0-nightly (cd6a40017 2016-05-16)
- New lint:
unnecessary_operation
- Rustup to rustc 1.10.0-nightly (22ac88f1a 2016-05-11)
- New
cargo clippy
subcommand - New lints:
assign_op_pattern
,assign_ops
,needless_borrow
- Rustup to rustc 1.10.0-nightly (62e2b2fb7 2016-05-06)
- New lints:
float_arithmetic
,integer_arithmetic
- Rustup to rustc 1.10.0-nightly (645dd013a 2016-04-24)
- New lints:
temporary_cstring_as_ptr
,unsafe_removed_from_name
, andmem_forget
- Rustup to rustc 1.9.0-nightly (7979dd608 2016-04-07)
- Rustup to rustc 1.9.0-nightly (bf5da36f1 2016-04-06)
- Rustup to rustc 1.9.0-nightly (5ab11d72c 2016-04-02)
- New lint:
invalid_upcast_comparisons
- Rustup to rustc 1.9.0-nightly (e1195c24b 2016-03-31)
- Rustup to rustc 1.9.0-nightly (30a3849f2 2016-03-30)
- New lints:
logic_bug
,nonminimal_bool
- Fixed:
match_same_arms
now ignores arms with guards - Improved:
useless_vec
now warns onfor … in vec![…]
- Rustup to rustc 1.9.0-nightly (d5a91e695 2016-03-26)
- New lint:
doc_markdown
- Update to rustc 1.9.0-nightly (a1e29daf1 2016-03-25)
- Deprecated lints:
str_to_string
,string_to_string
,unstable_as_slice
,unstable_as_mut_slice
- New lint:
crosspointer_transmute
- Update to rustc 1.9.0-nightly (0dcc413e4 2016-03-22)
- New lints:
many_single_char_names
andsimilar_names
- Update to rustc 1.9.0-nightly (02310fd31 2016-03-19)
- Update to rustc 1.9.0-nightly (c66d2380a 2016-03-15)
- Add a configuration file
- Add
str
to types considered bylen_zero
- New lints:
indexing_slicing
- Update to rustc 1.9.0-nightly (c9629d61c 2016-03-10)
- Update to rustc 1.9.0-nightly (eabfc160f 2016-03-08)
- New lints:
overflow_check_conditional
,unused_label
,new_without_default
- Fixed: ICE in
needless_range_loop
with globals
- Update to rustc 1.9.0-nightly (998a6720b 2016-03-07)
- New lint:
redundant_closure_call