@@ -6,11 +6,168 @@ document.
66
77## Unreleased / In Rust Nightly
88
9- [ d0cf3481...master] ( https://github.com/rust-lang/rust-clippy/compare/d0cf3481...master )
9+ [ 7c21f91b...master] ( https://github.com/rust-lang/rust-clippy/compare/7c21f91b...master )
10+
11+ ## Rust 1.62
12+
13+ Current stable, released 2022-06-30
14+
15+ [ d0cf3481...7c21f91b] ( https://github.com/rust-lang/rust-clippy/compare/d0cf3481...7c21f91b )
16+
17+ ### New Lints
18+
19+ * [ ` large_include_file ` ]
20+ [ #8727 ] ( https://github.com/rust-lang/rust-clippy/pull/8727 )
21+ * [ ` cast_abs_to_unsigned ` ]
22+ [ #8635 ] ( https://github.com/rust-lang/rust-clippy/pull/8635 )
23+ * [ ` err_expect ` ]
24+ [ #8606 ] ( https://github.com/rust-lang/rust-clippy/pull/8606 )
25+ * [ ` unnecessary_owned_empty_strings ` ]
26+ [ #8660 ] ( https://github.com/rust-lang/rust-clippy/pull/8660 )
27+ * [ ` empty_structs_with_brackets ` ]
28+ [ #8594 ] ( https://github.com/rust-lang/rust-clippy/pull/8594 )
29+ * [ ` crate_in_macro_def ` ]
30+ [ #8576 ] ( https://github.com/rust-lang/rust-clippy/pull/8576 )
31+ * [ ` needless_option_take ` ]
32+ [ #8665 ] ( https://github.com/rust-lang/rust-clippy/pull/8665 )
33+ * [ ` bytes_count_to_len ` ]
34+ [ #8711 ] ( https://github.com/rust-lang/rust-clippy/pull/8711 )
35+ * [ ` is_digit_ascii_radix ` ]
36+ [ #8624 ] ( https://github.com/rust-lang/rust-clippy/pull/8624 )
37+ * [ ` await_holding_invalid_type ` ]
38+ [ #8707 ] ( https://github.com/rust-lang/rust-clippy/pull/8707 )
39+ * [ ` trim_split_whitespace ` ]
40+ [ #8575 ] ( https://github.com/rust-lang/rust-clippy/pull/8575 )
41+ * [ ` pub_use ` ]
42+ [ #8670 ] ( https://github.com/rust-lang/rust-clippy/pull/8670 )
43+ * [ ` format_push_string ` ]
44+ [ #8626 ] ( https://github.com/rust-lang/rust-clippy/pull/8626 )
45+ * [ ` empty_drop ` ]
46+ [ #8571 ] ( https://github.com/rust-lang/rust-clippy/pull/8571 )
47+ * [ ` drop_non_drop ` ]
48+ [ #8630 ] ( https://github.com/rust-lang/rust-clippy/pull/8630 )
49+ * [ ` forget_non_drop ` ]
50+ [ #8630 ] ( https://github.com/rust-lang/rust-clippy/pull/8630 )
51+
52+ ### Moves and Deprecations
53+
54+ * Move [ ` only_used_in_recursion ` ] to ` nursery ` (now allow-by-default)
55+ [ #8783 ] ( https://github.com/rust-lang/rust-clippy/pull/8783 )
56+ * Move [ ` stable_sort_primitive ` ] to ` pedantic ` (now allow-by-default)
57+ [ #8716 ] ( https://github.com/rust-lang/rust-clippy/pull/8716 )
58+
59+ ### Enhancements
60+
61+ * Remove overlap between [ ` manual_split_once ` ] and [ ` needless_splitn ` ]
62+ [ #8631 ] ( https://github.com/rust-lang/rust-clippy/pull/8631 )
63+ * [ ` map_identity ` ] : Now checks for needless ` map_err `
64+ [ #8487 ] ( https://github.com/rust-lang/rust-clippy/pull/8487 )
65+ * [ ` extra_unused_lifetimes ` ] : Now checks for impl lifetimes
66+ [ #8737 ] ( https://github.com/rust-lang/rust-clippy/pull/8737 )
67+ * [ ` cast_possible_truncation ` ] : Now catches more cases with larger shift or divide operations
68+ [ #8687 ] ( https://github.com/rust-lang/rust-clippy/pull/8687 )
69+ * [ ` identity_op ` ] : Now checks for modulo expressions
70+ [ #8519 ] ( https://github.com/rust-lang/rust-clippy/pull/8519 )
71+ * [ ` panic ` ] : No longer lint in constant context
72+ [ #8592 ] ( https://github.com/rust-lang/rust-clippy/pull/8592 )
73+ * [ ` manual_split_once ` ] : Now lints manual iteration of ` splitn `
74+ [ #8717 ] ( https://github.com/rust-lang/rust-clippy/pull/8717 )
75+ * [ ` self_named_module_files ` ] , [ ` mod_module_files ` ] : Now handle relative module paths
76+ [ #8611 ] ( https://github.com/rust-lang/rust-clippy/pull/8611 )
77+ * [ ` unsound_collection_transmute ` ] : Now has better size and alignment checks
78+ [ #8648 ] ( https://github.com/rust-lang/rust-clippy/pull/8648 )
79+ * [ ` unnested_or_patterns ` ] : Ignore cases, where the suggestion would be longer
80+ [ #8619 ] ( https://github.com/rust-lang/rust-clippy/pull/8619 )
81+
82+ ### False Positive Fixes
83+
84+ * [ ` rest_pat_in_fully_bound_structs ` ] : Now ignores structs marked with ` #[non_exhaustive] `
85+ [ #8690 ] ( https://github.com/rust-lang/rust-clippy/pull/8690 )
86+ * [ ` needless_late_init ` ] : No longer lints ` if let ` statements, ` let mut ` bindings or instances that
87+ changes the drop order significantly
88+ [ #8617 ] ( https://github.com/rust-lang/rust-clippy/pull/8617 )
89+ * [ ` unnecessary_cast ` ] : No longer lints to casts to aliased or non-primitive types
90+ [ #8596 ] ( https://github.com/rust-lang/rust-clippy/pull/8596 )
91+ * [ ` init_numbered_fields ` ] : No longer lints type aliases
92+ [ #8780 ] ( https://github.com/rust-lang/rust-clippy/pull/8780 )
93+ * [ ` needless_option_as_deref ` ] : No longer lints for ` as_deref_mut ` on ` Option ` values that can't be moved
94+ [ #8646 ] ( https://github.com/rust-lang/rust-clippy/pull/8646 )
95+ * [ ` mistyped_literal_suffixes ` ] : Now ignores float literals without an exponent
96+ [ #8742 ] ( https://github.com/rust-lang/rust-clippy/pull/8742 )
97+ * [ ` undocumented_unsafe_blocks ` ] : Now ignores unsafe blocks from proc-macros and works better for sub-expressions
98+ [ #8450 ] ( https://github.com/rust-lang/rust-clippy/pull/8450 )
99+ * [ ` same_functions_in_if_condition ` ] : Now allows different constants, even if they have the same value
100+ [ #8673 ] ( https://github.com/rust-lang/rust-clippy/pull/8673 )
101+ * [ ` needless_match ` ] : Now checks for more complex types and ignores type coercion
102+ [ #8549 ] ( https://github.com/rust-lang/rust-clippy/pull/8549 )
103+ * [ ` assertions_on_constants ` ] : Now ignores constants from ` cfg! ` macros
104+ [ #8614 ] ( https://github.com/rust-lang/rust-clippy/pull/8614 )
105+ * [ ` indexing_slicing ` ] : Fix false positives with constant indices in
106+ [ #8588 ] ( https://github.com/rust-lang/rust-clippy/pull/8588 )
107+ * [ ` iter_with_drain ` ] : Now ignores iterator references
108+ [ #8668 ] ( https://github.com/rust-lang/rust-clippy/pull/8668 )
109+ * [ ` useless_attribute ` ] : Now allows [ ` redundant_pub_crate ` ] on ` use ` items
110+ [ #8743 ] ( https://github.com/rust-lang/rust-clippy/pull/8743 )
111+ * [ ` cast_ptr_alignment ` ] : Now ignores expressions, when used for unaligned reads and writes
112+ [ #8632 ] ( https://github.com/rust-lang/rust-clippy/pull/8632 )
113+ * [ ` wrong_self_convention ` ] : Now allows ` &mut self ` and no self as arguments for ` is_* ` methods
114+ [ #8738 ] ( https://github.com/rust-lang/rust-clippy/pull/8738 )
115+ * [ ` mut_from_ref ` ] : Only lint in unsafe code
116+ [ #8647 ] ( https://github.com/rust-lang/rust-clippy/pull/8647 )
117+ * [ ` redundant_pub_crate ` ] : Now allows macro exports
118+ [ #8736 ] ( https://github.com/rust-lang/rust-clippy/pull/8736 )
119+ * [ ` needless_match ` ] : Ignores cases where the else block expression is different
120+ [ #8700 ] ( https://github.com/rust-lang/rust-clippy/pull/8700 )
121+ * [ ` transmute_int_to_char ` ] : Now allows transmutations in ` const ` code
122+ [ #8610 ] ( https://github.com/rust-lang/rust-clippy/pull/8610 )
123+ * [ ` manual_non_exhaustive ` ] : Ignores cases, where the enum value is used
124+ [ #8645 ] ( https://github.com/rust-lang/rust-clippy/pull/8645 )
125+ * [ ` redundant_closure ` ] : Now ignores coerced closure
126+ [ #8431 ] ( https://github.com/rust-lang/rust-clippy/pull/8431 )
127+ * [ ` identity_op ` ] : Is now ignored in cases where extra brackets would be needed
128+ [ #8730 ] ( https://github.com/rust-lang/rust-clippy/pull/8730 )
129+ * [ ` let_unit_value ` ] : Now ignores cases which are used for type inference
130+ [ #8563 ] ( https://github.com/rust-lang/rust-clippy/pull/8563 )
131+
132+ ### Suggestion Fixes/Improvements
133+
134+ * [ ` manual_split_once ` ] : Fixed incorrect suggestions for single result accesses
135+ [ #8631 ] ( https://github.com/rust-lang/rust-clippy/pull/8631 )
136+ * [ ` bytes_nth ` ] : Fix typos in the diagnostic message
137+ [ #8403 ] ( https://github.com/rust-lang/rust-clippy/pull/8403 )
138+ * [ ` mistyped_literal_suffixes ` ] : Now suggests the correct integer types
139+ [ #8742 ] ( https://github.com/rust-lang/rust-clippy/pull/8742 )
140+ * [ ` unnecessary_to_owned ` ] : Fixed suggestion based on the configured msrv
141+ [ #8692 ] ( https://github.com/rust-lang/rust-clippy/pull/8692 )
142+ * [ ` single_element_loop ` ] : Improve lint for Edition 2021 arrays
143+ [ #8616 ] ( https://github.com/rust-lang/rust-clippy/pull/8616 )
144+ * [ ` manual_bits ` ] : Now includes a cast for proper type conversion, when needed
145+ [ #8677 ] ( https://github.com/rust-lang/rust-clippy/pull/8677 )
146+ * [ ` option_map_unit_fn ` ] , [ ` result_map_unit_fn ` ] : Fix some incorrect suggestions
147+ [ #8584 ] ( https://github.com/rust-lang/rust-clippy/pull/8584 )
148+ * [ ` collapsible_else_if ` ] : Add whitespace in suggestion
149+ [ #8729 ] ( https://github.com/rust-lang/rust-clippy/pull/8729 )
150+ * [ ` transmute_bytes_to_str ` ] : Now suggest ` from_utf8_unchecked ` in ` const ` context
151+ [ #8612 ] ( https://github.com/rust-lang/rust-clippy/pull/8612 )
152+ * [ ` map_clone ` ] : Improve message and suggestion based on the msrv
153+ [ #8688 ] ( https://github.com/rust-lang/rust-clippy/pull/8688 )
154+ * [ ` needless_late_init ` ] : Now shows the ` let ` statement where it was first initialized
155+ [ #8779 ] ( https://github.com/rust-lang/rust-clippy/pull/8779 )
156+
157+ ### ICE Fixes
158+
159+ * [ ` only_used_in_recursion ` ]
160+ [ #8691 ] ( https://github.com/rust-lang/rust-clippy/pull/8691 )
161+ * [ ` cast_slice_different_sizes ` ]
162+ [ #8720 ] ( https://github.com/rust-lang/rust-clippy/pull/8720 )
163+ * [ ` iter_overeager_cloned ` ]
164+ [ #8602 ] ( https://github.com/rust-lang/rust-clippy/pull/8602 )
165+ * [ ` undocumented_unsafe_blocks ` ]
166+ [ #8686 ] ( https://github.com/rust-lang/rust-clippy/pull/8686 )
10167
11168## Rust 1.61
12169
13- Current stable, released 2022-05-19
170+ Released 2022-05-19
14171
15172[ 57b3c4b...d0cf3481] ( https://github.com/rust-lang/rust-clippy/compare/57b3c4b...d0cf3481 )
16173
0 commit comments