mirror of
https://github.com/rust-lang/rust-clippy
synced 2024-11-24 05:33:27 +00:00
Auto merge of #10073 - xFrednet:changelog-1-66, r=Alexendoo
Changelog 1.66 It's really nice to see a changelog with so many suggestion fixes and improvements. Not much else to say. This should be merged with the coming release on 2022-12-15. For the reviewer, please review it and approve it if it looks good. The merge should wait until the release :) --- changelog: none <!-- changelog_checked -->
This commit is contained in:
commit
3905f51230
7 changed files with 178 additions and 8 deletions
174
CHANGELOG.md
174
CHANGELOG.md
|
@ -6,11 +6,181 @@ document.
|
||||||
|
|
||||||
## Unreleased / Beta / In Rust Nightly
|
## Unreleased / Beta / In Rust Nightly
|
||||||
|
|
||||||
[b52fb523...master](https://github.com/rust-lang/rust-clippy/compare/b52fb523...master)
|
[4f142aa1...master](https://github.com/rust-lang/rust-clippy/compare/4f142aa1...master)
|
||||||
|
|
||||||
|
## Rust 1.66
|
||||||
|
|
||||||
|
Current stable, released 2022-12-15
|
||||||
|
|
||||||
|
[b52fb523...4f142aa1](https://github.com/rust-lang/rust-clippy/compare/b52fb523...4f142aa1)
|
||||||
|
|
||||||
|
### New Lints
|
||||||
|
|
||||||
|
* [`manual_clamp`]
|
||||||
|
[#9484](https://github.com/rust-lang/rust-clippy/pull/9484)
|
||||||
|
* [`missing_trait_methods`]
|
||||||
|
[#9670](https://github.com/rust-lang/rust-clippy/pull/9670)
|
||||||
|
* [`unused_format_specs`]
|
||||||
|
[#9637](https://github.com/rust-lang/rust-clippy/pull/9637)
|
||||||
|
* [`iter_kv_map`]
|
||||||
|
[#9409](https://github.com/rust-lang/rust-clippy/pull/9409)
|
||||||
|
* [`manual_filter`]
|
||||||
|
[#9451](https://github.com/rust-lang/rust-clippy/pull/9451)
|
||||||
|
* [`box_default`]
|
||||||
|
[#9511](https://github.com/rust-lang/rust-clippy/pull/9511)
|
||||||
|
* [`implicit_saturating_add`]
|
||||||
|
[#9549](https://github.com/rust-lang/rust-clippy/pull/9549)
|
||||||
|
* [`as_ptr_cast_mut`]
|
||||||
|
[#9572](https://github.com/rust-lang/rust-clippy/pull/9572)
|
||||||
|
* [`disallowed_macros`]
|
||||||
|
[#9495](https://github.com/rust-lang/rust-clippy/pull/9495)
|
||||||
|
* [`partial_pub_fields`]
|
||||||
|
[#9658](https://github.com/rust-lang/rust-clippy/pull/9658)
|
||||||
|
* [`uninlined_format_args`]
|
||||||
|
[#9233](https://github.com/rust-lang/rust-clippy/pull/9233)
|
||||||
|
* [`cast_nan_to_int`]
|
||||||
|
[#9617](https://github.com/rust-lang/rust-clippy/pull/9617)
|
||||||
|
|
||||||
|
### Moves and Deprecations
|
||||||
|
|
||||||
|
* `positional_named_format_parameters` was uplifted to rustc under the new name
|
||||||
|
`named_arguments_used_positionally`
|
||||||
|
[#8518](https://github.com/rust-lang/rust-clippy/pull/8518)
|
||||||
|
* Moved [`implicit_saturating_sub`] to `style` (Now warn-by-default)
|
||||||
|
[#9584](https://github.com/rust-lang/rust-clippy/pull/9584)
|
||||||
|
* Moved `derive_partial_eq_without_eq` to `nursery` (now allow-by-default)
|
||||||
|
[#9536](https://github.com/rust-lang/rust-clippy/pull/9536)
|
||||||
|
|
||||||
|
### Enhancements
|
||||||
|
|
||||||
|
* [`nonstandard_macro_braces`]: Now includes `matches!()` in the default lint config
|
||||||
|
[#9471](https://github.com/rust-lang/rust-clippy/pull/9471)
|
||||||
|
* [`suboptimal_flops`]: Now supports multiplication and subtraction operations
|
||||||
|
[#9581](https://github.com/rust-lang/rust-clippy/pull/9581)
|
||||||
|
* [`arithmetic_side_effects`]: Now detects cases with literals behind references
|
||||||
|
[#9587](https://github.com/rust-lang/rust-clippy/pull/9587)
|
||||||
|
* [`upper_case_acronyms`]: Now also checks enum names
|
||||||
|
[#9580](https://github.com/rust-lang/rust-clippy/pull/9580)
|
||||||
|
* [`needless_borrowed_reference`]: Now lints nested patterns
|
||||||
|
[#9573](https://github.com/rust-lang/rust-clippy/pull/9573)
|
||||||
|
* [`unnecessary_cast`]: Now works for non-trivial non-literal expressions
|
||||||
|
[#9576](https://github.com/rust-lang/rust-clippy/pull/9576)
|
||||||
|
* [`arithmetic_side_effects`]: Now detects operations with custom types
|
||||||
|
[#9559](https://github.com/rust-lang/rust-clippy/pull/9559)
|
||||||
|
* [`disallowed_methods`], [`disallowed_types`]: Not correctly lints types, functions and macros
|
||||||
|
with the same path
|
||||||
|
[#9495](https://github.com/rust-lang/rust-clippy/pull/9495)
|
||||||
|
* [`self_named_module_files`], [`mod_module_files`]: Now take remapped path prefixes into account
|
||||||
|
[#9475](https://github.com/rust-lang/rust-clippy/pull/9475)
|
||||||
|
* [`bool_to_int_with_if`]: Now detects the inverse if case
|
||||||
|
[#9476](https://github.com/rust-lang/rust-clippy/pull/9476)
|
||||||
|
|
||||||
|
### False Positive Fixes
|
||||||
|
|
||||||
|
* [`arithmetic_side_effects`]: Now allows operations that can't overflow
|
||||||
|
[#9474](https://github.com/rust-lang/rust-clippy/pull/9474)
|
||||||
|
* [`unnecessary_lazy_evaluations`]: No longer lints in external macros
|
||||||
|
[#9486](https://github.com/rust-lang/rust-clippy/pull/9486)
|
||||||
|
* [`needless_borrow`], [`explicit_auto_deref`]: No longer lint on unions that require the reference
|
||||||
|
[#9490](https://github.com/rust-lang/rust-clippy/pull/9490)
|
||||||
|
* [`almost_complete_letter_range`]: No longer lints in external macros
|
||||||
|
[#9467](https://github.com/rust-lang/rust-clippy/pull/9467)
|
||||||
|
* [`drop_copy`]: No longer lints on idiomatic cases in match arms
|
||||||
|
[#9491](https://github.com/rust-lang/rust-clippy/pull/9491)
|
||||||
|
* [`question_mark`]: No longer lints in const context
|
||||||
|
[#9487](https://github.com/rust-lang/rust-clippy/pull/9487)
|
||||||
|
* [`collapsible_if`]: Suggestion now work in macros
|
||||||
|
[#9410](https://github.com/rust-lang/rust-clippy/pull/9410)
|
||||||
|
* [`std_instead_of_core`]: No longer triggers on unstable modules
|
||||||
|
[#9545](https://github.com/rust-lang/rust-clippy/pull/9545)
|
||||||
|
* [`unused_peekable`]: No longer lints, if the peak is done in a closure or function
|
||||||
|
[#9465](https://github.com/rust-lang/rust-clippy/pull/9465)
|
||||||
|
* [`useless_attribute`]: No longer lints on `#[allow]` attributes for [`unsafe_removed_from_name`]
|
||||||
|
[#9593](https://github.com/rust-lang/rust-clippy/pull/9593)
|
||||||
|
* [`unnecessary_lazy_evaluations`]: No longer suggest switching to early evaluation when type has
|
||||||
|
custom `Drop` implementation
|
||||||
|
[#9551](https://github.com/rust-lang/rust-clippy/pull/9551)
|
||||||
|
* [`unnecessary_cast`]: No longer lints on negative hexadecimal literals when cast as floats
|
||||||
|
[#9609](https://github.com/rust-lang/rust-clippy/pull/9609)
|
||||||
|
* [`use_self`]: No longer lints in proc macros
|
||||||
|
[#9454](https://github.com/rust-lang/rust-clippy/pull/9454)
|
||||||
|
* [`never_loop`]: Now takes `let ... else` statements into consideration.
|
||||||
|
[#9496](https://github.com/rust-lang/rust-clippy/pull/9496)
|
||||||
|
* [`default_numeric_fallback`]: Now ignores constants
|
||||||
|
[#9636](https://github.com/rust-lang/rust-clippy/pull/9636)
|
||||||
|
* [`uninit_vec`]: No longer lints `Vec::set_len(0)`
|
||||||
|
[#9519](https://github.com/rust-lang/rust-clippy/pull/9519)
|
||||||
|
* [`arithmetic_side_effects`]: Now ignores references to integer types
|
||||||
|
[#9507](https://github.com/rust-lang/rust-clippy/pull/9507)
|
||||||
|
* [`large_stack_arrays`]: No longer lints inside static items
|
||||||
|
[#9466](https://github.com/rust-lang/rust-clippy/pull/9466)
|
||||||
|
* [`ref_option_ref`]: No longer lints if the inner reference is mutable
|
||||||
|
[#9684](https://github.com/rust-lang/rust-clippy/pull/9684)
|
||||||
|
* [`ptr_arg`]: No longer lints if the argument is used as an incomplete trait object
|
||||||
|
[#9645](https://github.com/rust-lang/rust-clippy/pull/9645)
|
||||||
|
* [`should_implement_trait`]: Now also works for `default` methods
|
||||||
|
[#9546](https://github.com/rust-lang/rust-clippy/pull/9546)
|
||||||
|
|
||||||
|
### Suggestion Fixes/Improvements
|
||||||
|
|
||||||
|
* [`derivable_impls`]: The suggestion is now machine applicable
|
||||||
|
[#9429](https://github.com/rust-lang/rust-clippy/pull/9429)
|
||||||
|
* [`match_single_binding`]: The suggestion now handles scrutinies with side effects better
|
||||||
|
[#9601](https://github.com/rust-lang/rust-clippy/pull/9601)
|
||||||
|
* [`zero_prefixed_literal`]: Only suggests using octal numbers, if this is possible
|
||||||
|
[#9652](https://github.com/rust-lang/rust-clippy/pull/9652)
|
||||||
|
* [`rc_buffer`]: The suggestion is no longer machine applicable to avoid semantic changes
|
||||||
|
[#9633](https://github.com/rust-lang/rust-clippy/pull/9633)
|
||||||
|
* [`print_literal`], [`write_literal`], [`uninlined_format_args`]: The suggestion now ignores
|
||||||
|
comments after the macro call.
|
||||||
|
[#9586](https://github.com/rust-lang/rust-clippy/pull/9586)
|
||||||
|
* [`expect_fun_call`]:Improved the suggestion for `format!` calls with captured variables
|
||||||
|
[#9586](https://github.com/rust-lang/rust-clippy/pull/9586)
|
||||||
|
* [`nonstandard_macro_braces`]: The suggestion is now machine applicable and will no longer
|
||||||
|
replace brackets inside the macro argument.
|
||||||
|
[#9499](https://github.com/rust-lang/rust-clippy/pull/9499)
|
||||||
|
* [`from_over_into`]: The suggestion is now a machine applicable and contains explanations
|
||||||
|
[#9649](https://github.com/rust-lang/rust-clippy/pull/9649)
|
||||||
|
* [`needless_return`]: The automatic suggestion now removes all required semicolons
|
||||||
|
[#9497](https://github.com/rust-lang/rust-clippy/pull/9497)
|
||||||
|
* [`to_string_in_format_args`]: The suggestion now keeps parenthesis around values
|
||||||
|
[#9590](https://github.com/rust-lang/rust-clippy/pull/9590)
|
||||||
|
* [`manual_assert`]: The suggestion now preserves comments
|
||||||
|
[#9479](https://github.com/rust-lang/rust-clippy/pull/9479)
|
||||||
|
* [`redundant_allocation`]: The suggestion applicability is now marked `MaybeIncorrect` to
|
||||||
|
avoid semantic changes
|
||||||
|
[#9634](https://github.com/rust-lang/rust-clippy/pull/9634)
|
||||||
|
* [`assertions_on_result_states`]: The suggestion has been corrected, for cases where the
|
||||||
|
`assert!` is not in a statement.
|
||||||
|
[#9453](https://github.com/rust-lang/rust-clippy/pull/9453)
|
||||||
|
* [`nonminimal_bool`]: The suggestion no longer expands macros
|
||||||
|
[#9457](https://github.com/rust-lang/rust-clippy/pull/9457)
|
||||||
|
* [`collapsible_match`]: Now specifies field names, when a struct is destructed
|
||||||
|
[#9685](https://github.com/rust-lang/rust-clippy/pull/9685)
|
||||||
|
* [`unnecessary_cast`]: The suggestion now adds parenthesis for negative numbers
|
||||||
|
[#9577](https://github.com/rust-lang/rust-clippy/pull/9577)
|
||||||
|
* [`redundant_closure`]: The suggestion now works for `impl FnMut` arguments
|
||||||
|
[#9556](https://github.com/rust-lang/rust-clippy/pull/9556)
|
||||||
|
|
||||||
|
### ICE Fixes
|
||||||
|
|
||||||
|
* [`unnecessary_to_owned`]: Avoid ICEs in favor of false negatives if information is missing
|
||||||
|
[#9505](https://github.com/rust-lang/rust-clippy/pull/9505)
|
||||||
|
* [`manual_range_contains`]: No longer ICEs on values behind references
|
||||||
|
[#9627](https://github.com/rust-lang/rust-clippy/pull/9627)
|
||||||
|
* [`needless_pass_by_value`]: No longer ICEs on unsized `dyn Fn` arguments
|
||||||
|
[#9531](https://github.com/rust-lang/rust-clippy/pull/9531)
|
||||||
|
* `*_interior_mutable_const` lints: no longer ICE on const unions containing `!Freeze` types
|
||||||
|
[#9539](https://github.com/rust-lang/rust-clippy/pull/9539)
|
||||||
|
|
||||||
|
### Others
|
||||||
|
|
||||||
|
* Released `rustc_tools_util` for version information on `Crates.io`. (Further adjustments will
|
||||||
|
not be published as part of this changelog)
|
||||||
|
|
||||||
## Rust 1.65
|
## Rust 1.65
|
||||||
|
|
||||||
Current stable, released 2022-11-03
|
Released 2022-11-03
|
||||||
|
|
||||||
[3c7e7dbc...b52fb523](https://github.com/rust-lang/rust-clippy/compare/3c7e7dbc...b52fb523)
|
[3c7e7dbc...b52fb523](https://github.com/rust-lang/rust-clippy/compare/3c7e7dbc...b52fb523)
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ declare_clippy_lint! {
|
||||||
/// ```rust
|
/// ```rust
|
||||||
/// let x: Box<String> = Box::default();
|
/// let x: Box<String> = Box::default();
|
||||||
/// ```
|
/// ```
|
||||||
#[clippy::version = "1.65.0"]
|
#[clippy::version = "1.66.0"]
|
||||||
pub BOX_DEFAULT,
|
pub BOX_DEFAULT,
|
||||||
perf,
|
perf,
|
||||||
"Using Box::new(T::default()) instead of Box::default()"
|
"Using Box::new(T::default()) instead of Box::default()"
|
||||||
|
|
|
@ -641,7 +641,7 @@ declare_clippy_lint! {
|
||||||
/// ```rust,ignore
|
/// ```rust,ignore
|
||||||
/// let _: = 0_u64;
|
/// let _: = 0_u64;
|
||||||
/// ```
|
/// ```
|
||||||
#[clippy::version = "1.64.0"]
|
#[clippy::version = "1.66.0"]
|
||||||
pub CAST_NAN_TO_INT,
|
pub CAST_NAN_TO_INT,
|
||||||
suspicious,
|
suspicious,
|
||||||
"casting a known floating-point NaN into an integer"
|
"casting a known floating-point NaN into an integer"
|
||||||
|
|
|
@ -47,7 +47,7 @@ declare_clippy_lint! {
|
||||||
/// value: usize,
|
/// value: usize,
|
||||||
/// }
|
/// }
|
||||||
/// ```
|
/// ```
|
||||||
#[clippy::version = "1.65.0"]
|
#[clippy::version = "1.66.0"]
|
||||||
pub DISALLOWED_MACROS,
|
pub DISALLOWED_MACROS,
|
||||||
style,
|
style,
|
||||||
"use of a disallowed macro"
|
"use of a disallowed macro"
|
||||||
|
|
|
@ -123,7 +123,7 @@ declare_clippy_lint! {
|
||||||
///
|
///
|
||||||
/// If a format string contains a numbered argument that cannot be inlined
|
/// If a format string contains a numbered argument that cannot be inlined
|
||||||
/// nothing will be suggested, e.g. `println!("{0}={1}", var, 1+2)`.
|
/// nothing will be suggested, e.g. `println!("{0}={1}", var, 1+2)`.
|
||||||
#[clippy::version = "1.65.0"]
|
#[clippy::version = "1.66.0"]
|
||||||
pub UNINLINED_FORMAT_ARGS,
|
pub UNINLINED_FORMAT_ARGS,
|
||||||
style,
|
style,
|
||||||
"using non-inlined variables in `format!` calls"
|
"using non-inlined variables in `format!` calls"
|
||||||
|
|
|
@ -31,7 +31,7 @@ declare_clippy_lint! {
|
||||||
///
|
///
|
||||||
/// u = u.saturating_add(1);
|
/// u = u.saturating_add(1);
|
||||||
/// ```
|
/// ```
|
||||||
#[clippy::version = "1.65.0"]
|
#[clippy::version = "1.66.0"]
|
||||||
pub IMPLICIT_SATURATING_ADD,
|
pub IMPLICIT_SATURATING_ADD,
|
||||||
style,
|
style,
|
||||||
"Perform saturating addition instead of implicitly checking max bound of data type"
|
"Perform saturating addition instead of implicitly checking max bound of data type"
|
||||||
|
|
|
@ -3059,7 +3059,7 @@ declare_clippy_lint! {
|
||||||
/// let map: HashMap<u32, u32> = HashMap::new();
|
/// let map: HashMap<u32, u32> = HashMap::new();
|
||||||
/// let values = map.values().collect::<Vec<_>>();
|
/// let values = map.values().collect::<Vec<_>>();
|
||||||
/// ```
|
/// ```
|
||||||
#[clippy::version = "1.65.0"]
|
#[clippy::version = "1.66.0"]
|
||||||
pub ITER_KV_MAP,
|
pub ITER_KV_MAP,
|
||||||
complexity,
|
complexity,
|
||||||
"iterating on map using `iter` when `keys` or `values` would do"
|
"iterating on map using `iter` when `keys` or `values` would do"
|
||||||
|
|
Loading…
Reference in a new issue