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_constslint #5380 - Move
cognitive_complexityto nursery #5428 - Move
useless_transmuteto nursery #5364 - Downgrade
inefficient_to_stringto pedantic #5412 - Downgrade
option_optionto pedantic #5401 - Downgrade
unreadable_literalto pedantic #5419 - Downgrade
let_unit_valueto pedantic #5409 - Downgrade
trivially_copy_pass_by_refto pedantic #5410 - Downgrade
implicit_hasherto pedantic #5411
- On nightly you can now use
cargo clippy --fix -Z unstable-optionsto auto-fix lints that support this #5363 - Make
redundant_clonealso trigger on cases where the cloned value is not consumed. #5304 - Expand
integer_arithmeticto also disallow bit-shifting #5430 option_as_ref_derefnow detects more deref cases #5425large_enum_variantnow report the sizes of the largest and second-largest variants #5466bool_comparisonnow also checks for inequality comparisons that can be written more concisely #5365- Expand
clone_on_copyto work in method call arguments as well #5441 redundant_pattern_matchingnow also handleswhile let#5483integer_arithmeticnow also lints references of integers #5329- Expand
float_cmp_constto also work on arrays #5345 - Trigger
map_flattenwhen 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_marklint 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_bindingwhen triggered inside a closure #5350
- Fix documentation generation for configurable lints #5353
- Update documentation for
new_ret_no_self#5448 - The documentation for
option_optionnow suggest using a tri-state enum #5403 - Fix bit mask example in
verbose_bit_maskdocumentation #5454 wildcard_importsdocumentation 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_patternto pedantic group #5200
- Make
missing_errors_doclint also trigger onasyncfunctions #5181 - Add more constants to
approx_constant#5193 - Extend
question_marklint #5266
- Improve suggestion when blocks of code are suggested #5134
misc_earlylints #5129missing_errors_doc#5213- Fix ICE when evaluating
usizes #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_intfrom nursery to complexity group #5015 - Move
range_plus_oneto pedantic group #5057 - Move
debug_assert_with_mut_callto nursery group #5106 - Deprecate
unused_label#4930
- Lint vectored IO in
unused_io_amount#5027 - Make
vec_boxconfigurable 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_usein external macros #5082 - Don't trigger
empty_loopinno_stdcrates #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_selfto nursery group #4863 - Deprecate
into_iter_on_array#4788 - Expand
string_lit_as_bytesto 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_newlineandwrite_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-driverwithout 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_cloneto perf group #4509 - Move
manual_mul_addto nursery group #4736 - Expand
unit_cmpto also work withassert_eq!,debug_assert_eq!,assert_ne!anddebug_assert_ne!#4613 - Expand
integer_arithmeticto 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_collectlint. This is fully covered by rustc's#[must_use]oncollect#4348 - Move
type_repetition_in_boundsto pedantic group #4403 - Move
cast_losslessto pedantic group #4539 temporary_cstring_as_ptrnow catches more cases #4425use_selfnow works in constructors, too #4525cargo_common_metadatanow checks for license files #4518cognitive_complexitynow 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}_unwrapout of nursery #4307 - Extend the
use_selflint 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_namesandenum_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_lifetimeis now calledredundant_static_lifetimes. The lint now covers statics in addition to consts #4162 match_same_armsnow warns for all identical arms, instead of only the first one #4102needless_returnnow 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_newlineandwrite_with_newline#4136 - Improve suggestions for
option_map_unwrap_or_elseandresult_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_overwriteto the nursery #4013 - Split
redundant_closureintoredundant_closureandredundant_closure_for_method_calls#4110 - Allow allowing of
toplevel_ref_arglint #4007 - Fix false negative in
or_fun_callpertaining to nested constructors #4084 - Fix false positive in
or_fun_callpertaining to enum variant constructors #4018 - Fix false positive in
useless_let_if_seqpertaining to interior mutability #4035 - Fix false positive in
redundant_closurepertaining to non-function types #4008 - Fix false positive in
let_and_returnpertaining to attributes onlets #4024 - Fix false positive in
module_name_repetitionslint pertaining to attributes #4006 - Fix false positive on
assertions_on_constantspertaining todebug_assert!#3989 - Improve suggestion in
map_cloneto 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_boundsto detectT: Dropbounds - Split
redundant_closureintoredundant_closureandredundant_closure_for_method_calls#4110 - Rename
cyclomatic_complexitytocognitive_complexity, start work on making lint more practical for Rust code - Move
get_unwrapto the restriction category - Improve suggestions for
iter_cloned_collect - Improve suggestions for
cast_losslessto suggest suffixed literals - Fix false positives in
print_with_newlineandwrite_with_newlinepertaining to raw strings - Fix false positive in
needless_range_looppertaining to structs without a.iter() - Fix false positive in
bool_comparisonpertaining to non-bool types - Fix false positive in
redundant_closurepertaining to differences in borrows - Fix false positive in
option_map_unwrap_oron non-copy types - Fix false positives in
missing_const_for_fnpertaining to macros and trait method impls - Fix false positive in
needless_pass_by_valuepertaining to procedural macros - Fix false positive in
needless_continuepertaining to loop labels - Fix false positive for
boxed_localpertaining to arguments moved into closures - Fix false positive for
use_selfin nested functions - Fix suggestion for
expect_fun_call(rust-lang#3846) - Fix suggestion for
explicit_counter_loopto deal with parenthesizing range variables - Fix suggestion for
single_char_patternto correctly escape single quotes - Avoid triggering
redundant_closurein macros - ICE fixes: #3805, #3772, #3741
Released 2019-04-10
- New lint:
assertions_on_constantsto detect for exampleassert!(true) - New lint:
dbg_macroto detect uses of thedbg!macro - New lint:
missing_const_for_fnthat can suggest functions to be madeconst - New lint:
too_many_linesto detect functions with excessive LOC. It can be configured using thetoo-many-lines-thresholdconfiguration. - New lint:
wildcard_enum_match_armto check for wildcard enum matches using_ - Expand
redundant_closureto also work for methods (not only functions) - Fix ICEs in
vec_box,needless_pass_by_valueandimplicit_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_marklint - 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-clippyrepository is now part of therust-langorg. - Rename
stuttertomodule_name_repetitions - Merge
new_without_default_deriveintonew_without_defaultlint - Move
large_digit_groupsfromstylegroup topedantic - Expand
bool_comparisonto check for<,<=,>,>=, and!=comparisons against booleans - Expand
no_effectto detect writes to constants such asA_CONST.field = 2 - Expand
redundant_cloneto work on struct fields - Expand
suspicious_else_formattingto detectif .. {..} {..} - Expand
use_selfto work on tuple structs and also in local macros - Fix ICE in
result_map_unit_fnandoption_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_marklint - 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
u128andi128to 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_arithmeticin 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_comparisontriggering 3 times on on on the same code - Expand
trivially_copy_pass_by_refto work on trait methods - Improve suggestion for
needless_range_loop - Move
needless_pass_by_valuefrompedanticgroup 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_valuewhen encountering a generic function argument with a lifetime parameter - Fix ICE in
needless_range_loop - Fix ICE in
single_char_patternwhen encountering a constant value - Fix false positive in
assign_op_pattern - Fix false positive in
boxed_localon trait implementations - Fix false positive in
cmp_owned - Fix false positive in
collapsible_ifwhen 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_defaultwhennewis unsafe - Fix false positive in
type_complexitywhen 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_truncationlint can be disabled again- Improve suggestions for
manual_memcpy - Improve help message for
needless_lifetimes
Released 2018-10-25
- Deprecate
assign_opslint - New lints:
mistyped_literal_suffixes,ptr_offset_with_cast,needless_collect,copy_iterator cargo clippy -Vnow 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_onesuggestion and false negative print_with_newline/write_with_newline: don't warn about string with several\ns in them- Fix
useless_attributeto also whitelistunused_extern_crates - Fix incorrect suggestion for
single_char_pattern - Improve suggestion for
identity_conversionlint - Move
explicit_iter_loopandexplicit_into_iter_loopfromstylegroup topedantic - Move
range_plus_oneandrange_minus_onefromnurserygroup tocomplexity - Move
shadow_unrelatedfromrestrictiongroup topedantic - Move
indexing_slicingfrompedanticgroup 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-previewand thencargo clippyto 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_attributelint - Fix false positive in
print_literal - Fix
use_selfregressions - 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_lifetimestoextra_unused_lifetimesbecause 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_complexityinstead 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_losslessno 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_selftriggering 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 clippycrashing ondylibprojects - Fix false positives around
nested_while_letandnever_loop
- Update to rustc 1.20.0-nightly (067971139 2017-07-02)
- Rewrite of the
doc_markdownlint. - 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/AsMutarguments 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 clippyon 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_loopprovides 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
&&mutby&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 clippydefines acargo-clippyfeature. This was previously added for a short time under the nameclippybut removed for compatibility. cargo clippy --helpis 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_orandoption_map_unwrap_or_elseare 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
clippylint groups:filter_next,for_loop_over_option,for_loop_over_resultandmatch_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_literaland0b/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_attributeignoresunused_importsonusestatements
- 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 clippydoes not defines theclippyfeature introduced in 0.0.76 anymore collapsible_ifnow considersif let
- Rustup to rustc 1.11.0-nightly (5522e678b 2016-06-20)
- New lints:
stutteranditer_nth
- Rustup to rustc 1.11.0-nightly (7d2f75a95 2016-06-09)
cargo clippynow automatically defines theclippyfeature- New lint:
not_unsafe_ptr_arg_deref
- Rustup to rustc 1.11.0-nightly (763f9234b 2016-06-06)
- Fix bug with
cargo-clippyJSON parsing - Add the
CLIPPY_DISABLE_DOCS_LINKSenvironment 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_regexandtrivial_regexcan now warn onRegexSet::new,RegexBuilder::newand byte regexes
- Rustup to rustc 1.10.0-nightly (476fe6eef 2016-05-21)
used_underscore_bindinghas been madeAllowtemporarily
- 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 clippysubcommand - 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_armsnow ignores arms with guards - Improved:
useless_vecnow 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_namesandsimilar_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
strto 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_loopwith globals
- Update to rustc 1.9.0-nightly (998a6720b 2016-03-07)
- New lint:
redundant_closure_call