@@ -6,7 +6,108 @@ document.
66
77## Unreleased / In Rust Nightly
88
9- [ 57b3c4b...master] ( https://github.com/rust-lang/rust-clippy/compare/57b3c4b...master )
9+ [ d0cf3481...master] ( https://github.com/rust-lang/rust-clippy/compare/d0cf3481...master )
10+
11+ ## Rust 1.61 (beta)
12+
13+ Current beta, released 2022-05-19
14+
15+ [ 57b3c4b...d0cf3481] ( https://github.com/rust-lang/rust-clippy/compare/57b3c4b...d0cf3481 )
16+
17+ ### New Lints
18+
19+ * [ ` only_used_in_recursion ` ]
20+ [ #8422 ] ( https://github.com/rust-lang/rust-clippy/pull/8422 )
21+ * [ ` cast_enum_truncation ` ]
22+ [ #8381 ] ( https://github.com/rust-lang/rust-clippy/pull/8381 )
23+ * [ ` missing_spin_loop ` ]
24+ [ #8174 ] ( https://github.com/rust-lang/rust-clippy/pull/8174 )
25+ * [ ` deref_by_slicing ` ]
26+ [ #8218 ] ( https://github.com/rust-lang/rust-clippy/pull/8218 )
27+ * [ ` needless_match ` ]
28+ [ #8471 ] ( https://github.com/rust-lang/rust-clippy/pull/8471 )
29+ * [ ` allow_attributes_without_reason ` ] (Requires ` #![feature(lint_reasons)] ` )
30+ [ #8504 ] ( https://github.com/rust-lang/rust-clippy/pull/8504 )
31+ * [ ` print_in_format_impl ` ]
32+ [ #8253 ] ( https://github.com/rust-lang/rust-clippy/pull/8253 )
33+ * [ ` unnecessary_find_map ` ]
34+ [ #8489 ] ( https://github.com/rust-lang/rust-clippy/pull/8489 )
35+ * [ ` or_then_unwrap ` ]
36+ [ #8561 ] ( https://github.com/rust-lang/rust-clippy/pull/8561 )
37+ * [ ` unnecessary_join ` ]
38+ [ #8579 ] ( https://github.com/rust-lang/rust-clippy/pull/8579 )
39+ * [ ` iter_with_drain ` ]
40+ [ #8483 ] ( https://github.com/rust-lang/rust-clippy/pull/8483 )
41+ * [ ` cast_enum_constructor ` ]
42+ [ #8562 ] ( https://github.com/rust-lang/rust-clippy/pull/8562 )
43+ * [ ` cast_slice_different_sizes ` ]
44+ [ #8445 ] ( https://github.com/rust-lang/rust-clippy/pull/8445 )
45+
46+ ### Moves and Deprecations
47+
48+ * Moved [ ` transmute_undefined_repr ` ] to ` nursery ` (now allow-by-default)
49+ [ #8432 ] ( https://github.com/rust-lang/rust-clippy/pull/8432 )
50+ * Moved [ ` try_err ` ] to ` restriction `
51+ [ #8544 ] ( https://github.com/rust-lang/rust-clippy/pull/8544 )
52+ * Move [ ` iter_with_drain ` ] to ` nursery `
53+ [ #8541 ] ( https://github.com/rust-lang/rust-clippy/pull/8541 )
54+ * Renamed ` to_string_in_display ` to [ ` recursive_format_impl ` ]
55+ [ #8188 ] ( https://github.com/rust-lang/rust-clippy/pull/8188 )
56+
57+ ### Enhancements
58+
59+ * [ ` dbg_macro ` ] : The lint level can now be set with crate attributes and works inside macros
60+ [ #8411 ] ( https://github.com/rust-lang/rust-clippy/pull/8411 )
61+ * [ ` ptr_as_ptr ` ] : Now works inside macros
62+ [ #8442 ] ( https://github.com/rust-lang/rust-clippy/pull/8442 )
63+ * [ ` use_self ` ] : Now works for variants in match expressions
64+ [ #8456 ] ( https://github.com/rust-lang/rust-clippy/pull/8456 )
65+ * [ ` await_holding_lock ` ] : Now lints for ` parking_lot::{Mutex, RwLock} `
66+ [ #8419 ] ( https://github.com/rust-lang/rust-clippy/pull/8419 )
67+ * [ ` recursive_format_impl ` ] : Now checks for format calls on ` self `
68+ [ #8188 ] ( https://github.com/rust-lang/rust-clippy/pull/8188 )
69+
70+ ### False Positive Fixes
71+
72+ * [ ` new_without_default ` ] : No longer lints for ` new() ` methods with ` #[doc(hidden)] `
73+ [ #8472 ] ( https://github.com/rust-lang/rust-clippy/pull/8472 )
74+ * [ ` transmute_undefined_repr ` ] : No longer lints for single field structs with ` #[repr(C)] ` ,
75+ generic parameters, wide pointers, unions, tuples and allow several forms of type erasure
76+ [ #8425 ] ( https://github.com/rust-lang/rust-clippy/pull/8425 )
77+ [ #8553 ] ( https://github.com/rust-lang/rust-clippy/pull/8553 )
78+ [ #8440 ] ( https://github.com/rust-lang/rust-clippy/pull/8440 )
79+ [ #8547 ] ( https://github.com/rust-lang/rust-clippy/pull/8547 )
80+ * [ ` match_single_binding ` ] , [ ` match_same_arms ` ] , [ ` match_as_ref ` ] , [ ` match_bool ` ] : No longer
81+ lint ` match ` expressions with ` cfg ` ed arms
82+ [ #8443 ] ( https://github.com/rust-lang/rust-clippy/pull/8443 )
83+ * [ ` single_component_path_imports ` ] : No longer lint on macros
84+ [ #8537 ] ( https://github.com/rust-lang/rust-clippy/pull/8537 )
85+ * [ ` ptr_arg ` ] : Allow ` &mut ` arguments for ` Cow<_> `
86+ [ #8552 ] ( https://github.com/rust-lang/rust-clippy/pull/8552 )
87+ * [ ` needless_borrow ` ] : No longer lints for method calls
88+ [ #8441 ] ( https://github.com/rust-lang/rust-clippy/pull/8441 )
89+ * [ ` match_same_arms ` ] : Now ensures that interposing arm patterns don't overlap
90+ [ #8232 ] ( https://github.com/rust-lang/rust-clippy/pull/8232 )
91+ * [ ` default_trait_access ` ] : Now allows ` Default::default ` in update expressions
92+ [ #8433 ] ( https://github.com/rust-lang/rust-clippy/pull/8433 )
93+
94+ ### Suggestion Fixes/Improvements
95+
96+ * [ ` redundant_slicing ` ] : Fixed suggestion for a method calls
97+ [ #8218 ] ( https://github.com/rust-lang/rust-clippy/pull/8218 )
98+ * [ ` map_flatten ` ] : Long suggestions will now be split up into two help messages
99+ [ #8520 ] ( https://github.com/rust-lang/rust-clippy/pull/8520 )
100+ * [ ` unnecessary_lazy_evaluations ` ] : Now shows suggestions for longer code snippets
101+ [ #8543 ] ( https://github.com/rust-lang/rust-clippy/pull/8543 )
102+ * [ ` unnecessary_sort_by ` ] : Now suggests ` Reverse ` including the path
103+ [ #8462 ] ( https://github.com/rust-lang/rust-clippy/pull/8462 )
104+ * [ ` search_is_some ` ] : More suggestions are now ` MachineApplicable `
105+ [ #8536 ] ( https://github.com/rust-lang/rust-clippy/pull/8536 )
106+
107+ ### Documentation Improvements
108+
109+ * [ ` new_without_default ` ] : Document ` pub ` requirement for the struct and fields
110+ [ #8429 ] ( https://github.com/rust-lang/rust-clippy/pull/8429 )
10111
11112## Rust 1.60
12113
@@ -3182,6 +3283,7 @@ Released 2018-09-13
31823283[ `assign_op_pattern` ] : https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern
31833284[ `assign_ops` ] : https://rust-lang.github.io/rust-clippy/master/index.html#assign_ops
31843285[ `async_yields_async` ] : https://rust-lang.github.io/rust-clippy/master/index.html#async_yields_async
3286+ [ `await_holding_invalid_type` ] : https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_invalid_type
31853287[ `await_holding_lock` ] : https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_lock
31863288[ `await_holding_refcell_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#await_holding_refcell_ref
31873289[ `bad_bit_mask` ] : https://rust-lang.github.io/rust-clippy/master/index.html#bad_bit_mask
@@ -3198,6 +3300,7 @@ Released 2018-09-13
31983300[ `boxed_local` ] : https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local
31993301[ `branches_sharing_code` ] : https://rust-lang.github.io/rust-clippy/master/index.html#branches_sharing_code
32003302[ `builtin_type_shadow` ] : https://rust-lang.github.io/rust-clippy/master/index.html#builtin_type_shadow
3303+ [ `bytes_count_to_len` ] : https://rust-lang.github.io/rust-clippy/master/index.html#bytes_count_to_len
32013304[ `bytes_nth` ] : https://rust-lang.github.io/rust-clippy/master/index.html#bytes_nth
32023305[ `cargo_common_metadata` ] : https://rust-lang.github.io/rust-clippy/master/index.html#cargo_common_metadata
32033306[ `case_sensitive_file_extension_comparisons` ] : https://rust-lang.github.io/rust-clippy/master/index.html#case_sensitive_file_extension_comparisons
@@ -3262,6 +3365,7 @@ Released 2018-09-13
32623365[ `duplicate_underscore_argument` ] : https://rust-lang.github.io/rust-clippy/master/index.html#duplicate_underscore_argument
32633366[ `duration_subsec` ] : https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec
32643367[ `else_if_without_else` ] : https://rust-lang.github.io/rust-clippy/master/index.html#else_if_without_else
3368+ [ `empty_drop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_drop
32653369[ `empty_enum` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_enum
32663370[ `empty_line_after_outer_attr` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_outer_attr
32673371[ `empty_loop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop
@@ -3314,6 +3418,7 @@ Released 2018-09-13
33143418[ `forget_non_drop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#forget_non_drop
33153419[ `forget_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#forget_ref
33163420[ `format_in_format_args` ] : https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args
3421+ [ `format_push_string` ] : https://rust-lang.github.io/rust-clippy/master/index.html#format_push_string
33173422[ `from_iter_instead_of_collect` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_iter_instead_of_collect
33183423[ `from_over_into` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into
33193424[ `from_str_radix_10` ] : https://rust-lang.github.io/rust-clippy/master/index.html#from_str_radix_10
@@ -3356,6 +3461,7 @@ Released 2018-09-13
33563461[ `invalid_regex` ] : https://rust-lang.github.io/rust-clippy/master/index.html#invalid_regex
33573462[ `invalid_upcast_comparisons` ] : https://rust-lang.github.io/rust-clippy/master/index.html#invalid_upcast_comparisons
33583463[ `invisible_characters` ] : https://rust-lang.github.io/rust-clippy/master/index.html#invisible_characters
3464+ [ `is_digit_ascii_radix` ] : https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix
33593465[ `items_after_statements` ] : https://rust-lang.github.io/rust-clippy/master/index.html#items_after_statements
33603466[ `iter_cloned_collect` ] : https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect
33613467[ `iter_count` ] : https://rust-lang.github.io/rust-clippy/master/index.html#iter_count
@@ -3372,6 +3478,7 @@ Released 2018-09-13
33723478[ `large_const_arrays` ] : https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays
33733479[ `large_digit_groups` ] : https://rust-lang.github.io/rust-clippy/master/index.html#large_digit_groups
33743480[ `large_enum_variant` ] : https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant
3481+ [ `large_include_file` ] : https://rust-lang.github.io/rust-clippy/master/index.html#large_include_file
33753482[ `large_stack_arrays` ] : https://rust-lang.github.io/rust-clippy/master/index.html#large_stack_arrays
33763483[ `large_types_passed_by_value` ] : https://rust-lang.github.io/rust-clippy/master/index.html#large_types_passed_by_value
33773484[ `len_without_is_empty` ] : https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty
@@ -3472,6 +3579,7 @@ Released 2018-09-13
34723579[ `needless_lifetimes` ] : https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes
34733580[ `needless_match` ] : https://rust-lang.github.io/rust-clippy/master/index.html#needless_match
34743581[ `needless_option_as_deref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#needless_option_as_deref
3582+ [ `needless_option_take` ] : https://rust-lang.github.io/rust-clippy/master/index.html#needless_option_take
34753583[ `needless_pass_by_value` ] : https://rust-lang.github.io/rust-clippy/master/index.html#needless_pass_by_value
34763584[ `needless_question_mark` ] : https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark
34773585[ `needless_range_loop` ] : https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop
@@ -3527,6 +3635,7 @@ Released 2018-09-13
35273635[ `ptr_eq` ] : https://rust-lang.github.io/rust-clippy/master/index.html#ptr_eq
35283636[ `ptr_offset_with_cast` ] : https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast
35293637[ `pub_enum_variant_names` ] : https://rust-lang.github.io/rust-clippy/master/index.html#pub_enum_variant_names
3638+ [ `pub_use` ] : https://rust-lang.github.io/rust-clippy/master/index.html#pub_use
35303639[ `question_mark` ] : https://rust-lang.github.io/rust-clippy/master/index.html#question_mark
35313640[ `range_minus_one` ] : https://rust-lang.github.io/rust-clippy/master/index.html#range_minus_one
35323641[ `range_plus_one` ] : https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one
@@ -3627,6 +3736,7 @@ Released 2018-09-13
36273736[ `transmute_undefined_repr` ] : https://rust-lang.github.io/rust-clippy/master/index.html#transmute_undefined_repr
36283737[ `transmutes_expressible_as_ptr_casts` ] : https://rust-lang.github.io/rust-clippy/master/index.html#transmutes_expressible_as_ptr_casts
36293738[ `transmuting_null` ] : https://rust-lang.github.io/rust-clippy/master/index.html#transmuting_null
3739+ [ `trim_split_whitespace` ] : https://rust-lang.github.io/rust-clippy/master/index.html#trim_split_whitespace
36303740[ `trivial_regex` ] : https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex
36313741[ `trivially_copy_pass_by_ref` ] : https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref
36323742[ `try_err` ] : https://rust-lang.github.io/rust-clippy/master/index.html#try_err
@@ -3650,6 +3760,7 @@ Released 2018-09-13
36503760[ `unnecessary_lazy_evaluations` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations
36513761[ `unnecessary_mut_passed` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed
36523762[ `unnecessary_operation` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_operation
3763+ [ `unnecessary_owned_empty_strings` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_owned_empty_strings
36533764[ `unnecessary_self_imports` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_self_imports
36543765[ `unnecessary_sort_by` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by
36553766[ `unnecessary_to_owned` ] : https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned
0 commit comments