Commit graph

15635 commits

Author SHA1 Message Date
bors
6ba3a00b94 Auto merge of #9822 - Veykril:unnecessary-safety-doc, r=Jarcho
Add `unnecessary_safety_doc` lint

changelog: [`unnecessary_safety_doc`]: Add `unnecessary_safety_doc` lint

fixes https://github.com/rust-lang/rust-clippy/issues/6880

This lint does not trigger for private functions, just like `missing_safety_docs`. Reason for that was implementation simplicity and because I figured asking first would make more sense, so if it should trigger for private functions as well let me know and I'll fix that up as well.
2022-11-13 14:18:04 +00:00
Camille GILLOT
e6ef478877 Store a LocalDefId in hir::Variant & hir::Field. 2022-11-13 14:06:51 +00:00
bors
a8151409a0 Auto merge of #9698 - kraktus:xc_bool, r=xFrednet
[`fn_params_excessive_bools`] Make it possible to allow the lint at the method level

changelog: FP: [`fn_params_excessive_bools`]: `#[allow]` now works on methods

fix https://github.com/rust-lang/rust-clippy/issues/9687

Tested without committing but `#[allow]`ing now works. Also rewrote the lint to be a late lint while at it :)
r? `@xFrednet`
2022-11-13 09:57:36 +00:00
hrxi
243661b739 Make it clear that or_fun_call can be a false-positive
Also move it to nursery so that the false-positives can be dealt with.

CC #8574
2022-11-12 22:26:09 +01:00
bors
9f283c97e1 Auto merge of #9835 - koka831:fix/9035, r=Alexendoo
Avoid linting unsized mutable reference

fix https://github.com/rust-lang/rust-clippy/issues/9035

changelog: [`mut_mut`] avoid suggesting to reborrow unsized mutable reference
2022-11-12 21:07:18 +00:00
bors
bb326e761b Auto merge of #9836 - koka831:patch-9300, r=Alexendoo
Fix is_async_fn to check FnKind::Method

This is a follow-up PR of https://github.com/rust-lang/rust-clippy/pull/9828 to support also async methods.

changelog: [`cognitive_complexity`] support async method

r? `@Alexendoo`
2022-11-12 20:54:39 +00:00
Kartavya Vashishtha
989986144c
fix never_loop false positive
on unconditional break to internal labeled block

ref #9831
2022-11-12 20:36:30 +05:30
koka
34c4520eae
Fix is_async_fn to check FnKind::Method 2022-11-12 22:36:20 +09:00
bors
755fe4dc24 Auto merge of #9834 - koka831:refac/manual-is-ascii-check, r=xFrednet
refac: remove unnecessary mutability

refactor `manual_is_ascii_check` lint.

* remove unnecessary mutability
* fix typo

changelog: none

r? `@xFrednet`
2022-11-12 11:44:22 +00:00
koka
93edc127a0
Avoid lint to unsized mutable reference 2022-11-12 20:31:25 +09:00
koka
39398e163a
fix: use HasPlaceholders
* remove unnecessary mutability
* fix typo
2022-11-12 20:29:24 +09:00
clubby789
7ddd321ecd Introduce ExprKind::IncludedBytes 2022-11-11 16:31:32 +00:00
bors
cad0d3d6da Auto merge of #9662 - ebobrow:result-large-err, r=dswij
`result_large_err` show largest variants in err msg

fixes #9538

changelog: Sugg: [`result_large_err`]: Now show largest enum variants in error message
2022-11-11 06:58:59 +00:00
bors
3c0ad8a0e0 Auto merge of #9830 - hrxi:pr_bool_to_int_with_if, r=Manishearth
Make `bool_to_int_with_if` a pedantic lint

In all the cases I've observed, it did not make the code clearer. Using bools as integer is frowned upon in some languages, in others it's simply not possible.

You can find comments on the original pull request #8131 that agree with this point of view.

changelog: [`bool_to_int_with_if`]: Change the categorization to pedantic
2022-11-10 19:37:05 +00:00
hrxi
3790aa3d5d Make bool_to_int_with_if a pedantic lint
In all the cases I've observed, it did not make the code clearer. Using
bools as integer is frowned upon in some languages, in others it's
simply not possible.

You can find comments on the original pull request #8131 that agree with
this point of view.
2022-11-10 19:42:20 +01:00
bors
4f1698db60 Auto merge of #9828 - koka831:fix/9300, r=Alexendoo
fix: cognitive_complexity for async fn

fix https://github.com/rust-lang/rust-clippy/issues/9300

changelog: [`cognitive_complexity`] support async fn
2022-11-10 17:40:46 +00:00
koka
2bc04bdac2
fix: cognitive_complexity for async fn 2022-11-11 00:14:18 +09:00
Nadir Fejzic
36eac0cb4a fix: update lints 2022-11-10 15:55:45 +01:00
Nadir Fejzic
862ac29192 fix: remove (redundant) semicolon in lint suggestion 2022-11-10 15:47:12 +01:00
Nadir Fejzic
62ab4fb9c2 fix: add rust-fix annotation to unckd. duration subtr. lint test 2022-11-10 15:47:12 +01:00
Nadir Fejzic
852d802451 style: inline variables in format! 2022-11-10 15:47:12 +01:00
Nadir Fejzic
4bd6d0beb0 test: update tests for manual_instant_elapsed lint 2022-11-10 15:47:12 +01:00
Nadir Fejzic
80e3553f29 refactor: improve code re-use in InstantSubtraction lint pass 2022-11-10 15:47:12 +01:00
Nadir Fejzic
a566eb3765 docs: update docs for unchecked duration subtr. lint 2022-11-10 15:47:12 +01:00
Nadir Fejzic
2f2eb2e4ba refactor: lint man. instant elapsed and unch. dur. subtr. in single pass 2022-11-10 15:47:12 +01:00
Nadir Fejzic
b485832b16 style: remove dbg! call 2022-11-10 15:46:56 +01:00
Nadir Fejzic
b280dbe5f7 docs: add docs for unchecked_duration_subtraction lint 2022-11-10 15:46:56 +01:00
Nadir Fejzic
3b4e42b91b test: add tests for 'unchecked_duration_subtraction' lint 2022-11-10 15:46:41 +01:00
Nadir Fejzic
708c2d95c1 feat: add and implement unchecked_duration_subtraction lint 2022-11-10 15:46:41 +01:00
Lukas Wirth
146bd1e13d Add unnecessary_safety_doc lint 2022-11-10 10:09:33 +01:00
bors
432baf7026 Auto merge of #9813 - Jarcho:issue_9811, r=xFrednet
Fix `explicit_auto_deref` fp

fixes #9763
fixes #9811

changelog: `explicit_auto_deref`: Don't lint when the target type is a projection with generic arguments
2022-11-09 14:06:42 +00:00
yukang
84c3a959a7 bless clippy 2022-11-09 19:23:23 +08:00
bors
c4fbe54ac3 Auto merge of #9817 - mgrachev:patch-1, r=Manishearth
Update lint example for `collapsible_str_replace`

To fix this warning:
```
warning: the borrowed expression implements the required traits
  --> src/fixes/quote_character.rs:16:43
   |
16 |         let hello = "hesuo worpd".replace(&['s', 'u', 'p'], "l");
   |                                           ^^^^^^^^^^^^^^^^ help: change this to: `['s', 'u', 'p']`
   |
   = note: `#[warn(clippy::needless_borrow)]` on by default
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
```

*Please write a short comment explaining your change (or "none" for internal only changes)*

changelog: none
2022-11-08 16:07:32 +00:00
bors
b9ca3195ab Auto merge of #9791 - smoelius:issues-9739-9782, r=Jarcho
Address issues 9739 and 9782

This PR fixes #9739 in the manner I suggested in https://github.com/rust-lang/rust-clippy/issues/9739#issuecomment-1296802376.

This PR also fixes the compilation failures in #9782 (but doesn't address `@e00E's` other objections).

Fixes #9739

r? `@Jarcho`

changelog: Fix two `needless_borrow` false positives, one involving borrows in `if`-`else`s, the other involving qualified function calls
2022-11-08 14:15:40 +00:00
bors
4e31877ef9 Auto merge of #9818 - rs017991:patch-1, r=Jarcho
Fixed Typo

changelog: none
2022-11-08 13:58:04 +00:00
Ryan Scheidter
43a6d0b39c
Fixed Typo 2022-11-08 07:48:39 -06:00
Grachev Mikhail
70010850e4
Update lint example for collapsible_str_replace 2022-11-08 15:33:50 +03:00
bors
4abe815729 Auto merge of #9765 - koka831:feat/manual_is_ascii_check, r=xFrednet
Add `manual_is_ascii_check` lint

Addresses https://github.com/rust-lang/rust-clippy/issues/9290

This PR adds new lint `manual_is_ascii_check`, which detects comparison with ascii ranges using `matches!` macros.

As I mentioned as following in the Issue;
> Yes, that's true. we'll start small and then grow it.
> So I'll try to handle matches! macro with single range as suggested above.

However during writing first version, I was thinking that the changes to support alphabetic and digits will be small patch, so I made a single PR in hope review cost can be reduced.

changelog: add new lint [`manual_is_ascii_check`]

r? `@xFrednet`
2022-11-08 09:20:52 +00:00
Elliot Bobrow
80e5856b02 result_large_err show largest variants in err msg 2022-11-07 18:00:35 -08:00
bors
5857a01742 Auto merge of #8744 - Jarcho:needless_collect_fp, r=llogiq
Extend `needless_collect`

Extends when `is_empty` and `contains` are linted.

`is_empty` will be linted when `<IterTy as Iterator>::Item` is the same as `<CollectTy as IntoIterator>::Item`. This can be a false positive if the `FromIterator` implementation filters out items, but I don't know of any which do that also implement `IntoIterator` with a matching `Item` type.

`contains` will be linted when the argument type is `&<IterTy as Iterator>::Item`. It has the same false positives as `is_empty` with the same note that I know of nothing that actually causes that in practice.

changelog: Lint `needless_collect` when `is_empty` or `contains` is called on some non-std types
2022-11-07 20:47:27 +00:00
kraktus
3d4b73c26d [excessive_bools] lint trait functions even without bodies 2022-11-07 21:00:37 +01:00
Jason Newcomb
5b1e445b9a Don't lint explicit_auto_deref when the target type is a projection containing a generic argument 2022-11-07 14:39:45 -05:00
Jason Newcomb
8bfc8bc5e0 Lint needless_collect on non-std collection types 2022-11-07 14:14:04 -05:00
kraktus
13b737d5b8 [fn_params_excessive_bools] whitelist in signle function in test 2022-11-07 19:49:43 +01:00
kraktus
9e1c7febe2 excessive_bools, do not lint in trait impls
Should not lint because the trait might not be changeable by the user
We only lint in the trait definition
2022-11-07 19:49:43 +01:00
kraktus
d9b940e2c3 dogfood 2022-11-07 19:49:43 +01:00
kraktus
e8c2c3d1c6 refactor has_repr_attr 2022-11-07 19:49:43 +01:00
kraktus
9c69e93595 Rewrite ExcessiveBools to be a LateLintPass lint
changelog: [`fn_params_excessive_bools`] Make it possible to allow the lint at the method level
2022-11-07 19:49:43 +01:00
kraktus
586bd3f735 refactor to avoid potential ICE 2022-11-07 19:49:43 +01:00
Jason Newcomb
b0dcb862c6 Move needless_collect into the methods lint pass 2022-11-07 13:15:39 -05:00