Cameron Steffen
5af078ac1b
Add flat_map_option lint
2021-04-16 15:23:49 -05:00
bors
28dbcd85c8
Auto merge of #7098 - camsteffen:cloned-copied, r=Manishearth
...
Add `cloned_instead_of_copied` lint
Don't go cloning all willy-nilly.
Featuring a new `get_iterator_item_ty` util!
changelog: Add cloned_instead_of_copied lint
Closes #3870
2021-04-16 17:32:13 +00:00
bors
7f2068cc2b
Auto merge of #6568 - Jarcho:redundant_pattern_matching, r=flip1995
...
Fix: redundant_pattern_matching drop order
Fixes #5746
A note about the change in drop order is added when the scrutinee (or any temporary in the expression) isn't known to be safe to drop in any order (i.e. doesn't implement the `Drop` trait, or contain such a type). There is a whitelist for some `std` types, but it's incomplete. Currently just `Vec<_>`, `Box<_>`, `Rc<_>` and `Arc<_>`, but only if the contained type is also safe to drop in any order.
Another lint for when the drop order changes could be added as allowed by default, but the drop order requirement is pretty subtle in this case. I think the note added to the lint should be enough to make someone think before applying the change.
changelog: Added a note to `redundant_pattern_matching` when the change in drop order might matter
2021-04-16 16:45:59 +00:00
Cameron Steffen
b049c88fbe
Eat dogfood
2021-04-16 11:39:31 -05:00
Jason Newcomb
9a55c0c176
Fix single_match
...
Check for `PartialEq` in addition to `StructuralPartialEq` before suggesting `==`
2021-04-15 22:09:20 -04:00
Jason Newcomb
c02baba1dc
redundant_pattern_matching
fix inverted boolean when missing Drop
trait
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Fri Apr 2 19:04:45 2021 -0400
#
# On branch redundant_pattern_matching
# Your branch is ahead of 'origin/redundant_pattern_matching' by 1 commit.
# (use "git push" to publish your local commits)
#
# Changes to be committed:
# modified: clippy_lints/src/matches.rs
#
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# Date: Fri Apr 2 19:04:45 2021 -0400
#
# interactive rebase in progress; onto ebc64690d
# Last commands done (6 commands done):
# pick 25d211ad8 Code cleanup and additional std types checked
# r 0c71ce56f redundant_pattern_matching
fix inverted boolean when missing Drop
trait
# No commands remaining.
# You are currently editing a commit while rebasing branch 'redundant_pattern_matching' on 'ebc64690d'.
#
# Changes to be committed:
# modified: clippy_lints/src/matches.rs
#
2021-04-15 20:37:20 -04:00
Jason Newcomb
b6581636bd
Improve redundant_pattern_matching
...
Add a note when the drop order change may result in different behaviour.
2021-04-15 20:37:15 -04:00
Jason Newcomb
f6c5d8d599
Remove all usages of match_path
, match_qpath
and match_path_ast
except the author
lint.
...
Add note to fix `MATCH_TYPE_ON_DIAG_ITEM`
Add false negative test for `uninit_assumed_init`
2021-04-15 19:27:25 -04:00
bors
aecccbc579
Auto merge of #7047 - camsteffen:lang-ctor, r=flip1995
...
Introduce `is_lang_ctor`
changelog: none
Replaces `is_some_ctor` and `is_ok_ctor`. Removes many path usages.
2021-04-12 08:52:10 +00:00
flip1995
ffa2b7da29
Merge remote-tracking branch 'upstream/master' into rustup
2021-04-08 17:36:41 +02:00
Cameron Steffen
7468542328
Introduce is_lang_ctor
2021-04-06 15:05:00 -05:00
Jason Newcomb
12fce55766
Fix all occurences of needless_borrow
internally
2021-04-06 10:43:47 -04:00
bors
8d221c569e
Auto merge of #7027 - camsteffen:defidmap, r=phansch
...
Use DefIdMap and similar aliases
changelog: none
2021-04-05 09:15:08 +00:00
Cameron Steffen
6f31ed6c8d
Use DefIdMap and similar aliases
2021-04-03 18:02:49 -05:00
Cameron Steffen
7014340d57
Fix ICE
2021-04-03 14:17:58 -05:00
bors
1931db20b1
Auto merge of #6988 - mikerite:fix-6984, r=camsteffen
...
Fix hidden variant suggestion on single variant
Fixes #6984
changelog: Fix hidden variant suggestion on `match_wildcard_for_single_variants`
2021-04-02 12:42:40 +00:00
Cameron Steffen
827d6aaad4
Eat dogfood
2021-03-31 14:06:27 -05:00
Yoshitomo Nakanishi
30952530c5
Fix codes that fails dogfood
2021-04-01 00:05:42 +09:00
Michael Wright
8abab5561c
Fix hidden variant suggestion on single variant
...
Fixes #6984
2021-03-31 07:36:09 +02:00
Matthias Krüger
e006c77d61
redundant_pattern_matching: look inside Refs
...
look inside refs and detect if let &None = ...
Fixes https://github.com/rust-lang/rust-clippy/issues/5396
changelog: redundant_pattern_matching: look inside Refs to fix FNs with "if let &None = .. "
2021-03-28 00:04:44 +01:00
Josh Stone
0dddfbf9bf
Use iter::zip in src/tools/clippy/
2021-03-26 09:33:38 -07:00
flip1995
9f6b5de7de
Merge commit '0e87918536b9833bbc6c683d1f9d51ee2bf03ef1' into clippyup
2021-03-25 19:29:11 +01:00
flip1995
1f5f184105
Merge remote-tracking branch 'upstream/master' into rustup
2021-03-25 18:38:13 +01:00
ThibsG
00a2d7ad7e
Fix bad suggestion that needs curly braces for match_single_binding
lint
2021-03-20 16:11:19 +01:00
bors
b62694b08f
Auto merge of #82122 - bstrie:dep4real, r=dtolnay
...
Deprecate `intrinsics::drop_in_place` and `collections::Bound`, which accidentally weren't deprecated
Fixes #82080 .
I've taken the liberty of updating the `since` values to 1.52, since an unobservable deprecation isn't much of a deprecation (even the detailed release notes never bothered to mention these deprecations).
As mentioned in the issue I'm *pretty* sure that using a type alias for `Bound` is semantically equivalent to the re-export; [the reference implies](https://doc.rust-lang.org/reference/items/type-aliases.html ) that type aliases only observably differ from types when used on unit structs or tuple structs, whereas `Bound` is an enum.
2021-03-17 19:39:03 +00:00
Jason Newcomb
d5a7941ead
Fix message for match_wildcard_for_single_variant
2021-03-17 12:42:18 -04:00
Jason Newcomb
0b7ab90eca
Improvements to match_wildcard_for_single_variants
and wildcard_enum_match_arm
lints
...
Don't lint on `Result` and `Option` types.
Considers `or` patterns.
Considers variants prefixed with `Self`
Suggestions will try to find a common prefix rather than just using the full path
2021-03-17 12:04:11 -04:00
Cameron Steffen
0743e841f0
Don't re-export clippy_utils::*
2021-03-17 09:13:52 -05:00
Cameron Steffen
1c3a3e7dc6
Don't re-export clippy_utils::diagnostics::*
2021-03-15 20:06:01 -05:00
Cameron Steffen
6fc52a63d1
Move some utils to clippy_utils::source module
2021-03-15 15:34:15 -05:00
Cameron Steffen
eb7f8d6089
Move some utils to ty_utils
2021-03-15 13:44:09 -05:00
Yoshitomo Nakanishi
93ee80ac3e
Use sym::Iterator instead of paths::ITERATOR
2021-03-13 02:10:54 +09:00
flip1995
f2f2a005b4
Merge commit '6ed6f1e6a1a8f414ba7e6d9b8222e7e5a1686e42' into clippyup
2021-03-12 15:30:50 +01:00
flip1995
78c740e2f3
Merge remote-tracking branch 'upstream/master' into rustup
2021-03-11 10:37:58 +01:00
bstrie
7406c12885
Deprecate items that accidentally weren't deprecated
...
Fixes #82080
2021-03-09 19:09:20 -05:00
Camille GILLOT
04496071e4
Remove hir::Arm::attrs.
2021-03-09 19:23:05 +01:00
Matthias Krüger
8eb2bd13d0
update the lint messages and tests
2021-02-28 02:22:05 +01:00
flip1995
f64149dd04
Merge commit '928e72dd10749875cbd412f74bfbfd7765dbcd8a' into clippyup
2021-02-25 11:25:22 +01:00
Cameron Steffen
9ad6e263c9
Fix match_same_arms with SpanlessEq changes
2021-02-17 10:47:26 -06:00
flip1995
8b9f4a0d34
Merge commit '70c0f90453701e7d6d9b99aaa1fc6a765937b736' into clippyup
2021-02-11 15:04:38 +01:00
Cameron Steffen
1d30422945
Enhance LocalUsedVisitor to check closure bodies
2021-02-08 08:56:33 -06:00
Cameron Steffen
56f7fbb4ae
Cleanup path to local checks
2021-02-05 10:24:32 -06:00
Manish Goregaokar
c8cb90abbd
Merge commit '3e4179766bcecd712824da04356621b8df012ea4' into sync-from-clippy
2021-02-02 20:43:30 -08:00
bors
c5f3f9df3b
Auto merge of #6603 - ThibsG:MatchOverlappingArm5986, r=flip1995
...
Do not lint when range is completely included into another one
This fix has been developed following this [comment](https://github.com/rust-lang/rust-clippy/issues/5986#issuecomment-703313548 ).
So this will be linted:
```
|----------|
|-----------|
```
Now this won't be linted:
```
|---|
|--------------------|
```
and this will still lint:
```
|--------|
|--------------|
```
Fixes : #5986
changelog: Fix FPs in match_overlapping_arm, when first arm is completely included in second arm
2021-01-31 15:09:55 +00:00
flip1995
ac912be984
Merge commit '95c0459217d1661edfa794c8bb122452b92fb485' into clippyup
2021-01-30 18:06:34 +01:00
bors
a982ab4cee
Auto merge of #6532 - matthiaskrgr:mlmm, r=llogiq
...
match_like_matches_macro: strip refs in suggestion
fixes #6503
changelog: match_like_matches_macro: strip refs in suggestion (#6503 )
2021-01-21 18:34:55 +00:00
ThibsG
70704db36f
Do not lint when range is completely included into another one
2021-01-17 21:07:01 +01:00
Jason Newcomb
36ff2f739c
Rename function
2021-01-14 22:02:04 -05:00
Jason Newcomb
85edd65bf6
Address review comments
...
Add: attempt to remove address of expressions from the scrutinee expression before adding references to the pattern
2021-01-14 14:26:26 -05:00
Jason Newcomb
8d7417d807
Add: single_match will suggest using if .. == .. instead of if let when applicable
2021-01-10 23:32:23 -05:00