Cameron Steffen
5af078ac1b
Add flat_map_option lint
2021-04-16 15:23:49 -05:00
Cameron Steffen
0462666c70
Add cloned_instead_of_copied lint
2021-04-16 11:39:31 -05: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
Cameron Steffen
76bd5d232c
Refactor diagnostic item methods
2021-04-13 14:10:40 -05:00
bors
411c0df1d0
Auto merge of #7064 - ThibsG:WrongSelfFix, r=giraffate
...
Fix FP in `wrong_self_convention` lint
Previously, this lint didn't check into impl block when it was implementing a trait.
Recent improvements (#6924 ) have moved this check and some impl blocks are now checked but they shouldn't, such as in #7032 .
Fixes #7032
changelog: Fix FP when not taking `self` in impl block for `wrong_self_convention` lint
2021-04-12 14:16:17 +00: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
ThibsG
3ce6f0d022
Fix FP in wrong_self_convention
lint
2021-04-11 13:29:08 +02:00
Cameron Steffen
a45faf66f3
Deprecate filter_map
2021-04-10 16:59:59 -05:00
flip1995
f6d1f368db
Merge commit 'b40ea209e7f14c8193ddfc98143967b6a2f4f5c9' into clippyup
2021-04-08 17:50:13 +02:00
Cameron Steffen
7468542328
Introduce is_lang_ctor
2021-04-06 15:05:00 -05:00
Cameron Steffen
47f0c15f67
Symbol optimizations
2021-04-06 13:00:36 -05:00
Jason Newcomb
12fce55766
Fix all occurences of needless_borrow
internally
2021-04-06 10:43:47 -04:00
xFrednet
d1df73228a
A new lint for shared code in if blocks
...
* Added expression check for shared_code_in_if_blocks
* Finishing touches for the shared_code_in_if_blocks lint
* Applying PR suggestions
* Update lints yay
* Moved test into subfolder
2021-04-05 13:33:45 +02:00
bors
9ce23730e2
Auto merge of #7016 - camsteffen:bind-map-paths, r=Manishearth
...
Remove paths from bind_instead_of_map
changelog: none
2021-04-02 15:10:24 +00:00
Cameron Steffen
08a8ad3a36
Remove paths from bind_instead_of_map
2021-04-01 15:41:25 -05:00
bors
38b1fd0fa7
Auto merge of #7002 - mgacek8:issue6983_wrong_self_convention_inside_trait_impls, r=phansch
...
wrong_self_convention: fix FP inside trait impl for `to_*` method taking `&self`
fixes #6983
changelog: `wrong_self_convention`: fix FP inside trait impl for `to_*` method taking `&self`
2021-04-01 05:48:16 +00:00
Cameron Steffen
827d6aaad4
Eat dogfood
2021-03-31 14:06:27 -05:00
Cameron Steffen
21083875d2
Destructure args in methods module
2021-03-31 13:25:55 -05:00
bors
775ef473d7
Auto merge of #6342 - bbqbaron:issue-6061, r=flip1995
...
Lint: filter(Option::is_some).map(Option::unwrap)
Fixes #6061
*Please write a short comment explaining your change (or "none" for internal only changes)*
changelog:
* add new lint for filter(Option::is_some).map(Option::unwrap)
First Rust PR, so I'm sure I've violated some idioms. Happy to change anything.
I'm getting one test failure locally -- a stderr diff for `compile_test`. I'm having a hard time seeing how I could be causing it, so I'm tentatively opening this in the hopes that it's an artifact of my local setup against `rustc`. Hoping it can at least still be reviewed in the meantime.
I'm gathering that since this is a method lint, and `.filter(...).map(...)` is already checked, the means of implementation needs to be a little different, so I didn't exactly follow the setup boilerplate. My way of checking for method calls seems a little too direct (ie, "is the second element of the expression literally the path for `Option::is_some`?"), but it seems like that's how some other lints work, so I went with it. I'm assuming we're not concerned about, eg, closures that just end up equivalent to `Option::is_some` by eta reduction.
2021-03-31 16:19:07 +00:00
Eric Loren
56fbbf7b8f
Suggest flatten
instead of is_some
-> unwrap
2021-03-31 11:35:24 -04:00
Mateusz Gacek
6966c78be7
wrong_self_convention: fix FP inside trait impl for to_*
method
...
When the `to_*` method takes `&self` and it is a trait implementation,
we don't trigger the lint.
2021-03-29 23:46:03 -07:00
Jason Newcomb
d2657769a2
Improve clone_on_copy
...
Lint on `_.clone().method()` when method takes self by value
Set applicability correctly
Correct suggestion when the cloned value is a macro call. e.g. `m!(x).clone()`
Don't lint when not using the `Clone` trait
2021-03-29 16:10:37 -04: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
Jason Newcomb
6e88900f9e
Rename contains_adt
to contains_adt_constructor
2021-03-24 16:23:02 -04:00
Jason Newcomb
99b8a67198
Fix false positive with new_ret_no_self
when returning Self
with different generic arguments
2021-03-24 16:22:28 -04:00
Takayuki Maeda
2f8d71b9dc
merge imports
2021-03-25 00:17:43 +09:00
bors
919a1a40fe
Auto merge of #6957 - camsteffen:eq-ty-kind, r=flip1995
...
Factor out `SpanlessEq::eq_ty_kind`
changelog: none
2021-03-23 16:25:28 +00:00
Cameron Steffen
9132dbdf31
Factor out eq_ty_kind
2021-03-23 10:49:12 -05:00
bors
b80903b727
Auto merge of #6950 - Sciencentistguy:master, r=phansch
...
Ignore str::len() in or_fun_call lint.
changelog: Changed `or_fun_call` to ignore `str::len`, in the same way it ignores `slice::len` and `array::len`
Closes #6943
2021-03-22 20:29:13 +00:00
bors
029777f029
Auto merge of #6896 - TaKO8Ki:refactor-lints-in-methods-module, r=phansch
...
Refactor lints in methods module
This PR refactors methods lints other than the lints I refactored in https://github.com/rust-lang/rust-clippy/pull/6826 and moves some functions to methods/utils.rs.
Basically, I follow the instruction described in #6680 .
**For ease of review, I refactored step by step, keeping each commit small.**
closes https://github.com/rust-lang/rust-clippy/issues/6886
cc: `@phansch,` `@flip1995,` `@Y-Nak`
changelog: Move lints in methods module to their own modules and some function to methods/utils.rs.
2021-03-22 19:36:22 +00:00
Jamie Quigley
45e775697e
Ignore str::len() in or_fun_call lint.
2021-03-22 19:34:20 +00:00
Mateusz Gacek
2ffee89b75
search_is_some: check also when search is none
2021-03-21 21:23:36 +01:00
bors
1d3c539fbb
Auto merge of #6924 - mgacek8:issue6727_copy_types, r=llogiq
...
wrong_self_convention: `to_` convention respects `Copy` types
fixes #6727
changelog: wrong_self_convention: `to_` convention respects `Copy` types
2021-03-20 06:59:13 +00:00
Mateusz Gacek
1f2d01641d
wrong_self_convention: Enhance lint message
2021-03-19 20:29:55 +01:00
bors
36aee1c526
Auto merge of #6928 - mgacek8:issue6675_or_fun_call_unsafe_blocks, r=phansch
...
or_fun_call: trigger on unsafe blocks
fixes #6675
changelog: or_fun_call: trigger on unsafe blocks
2021-03-18 15:55:06 +00:00
Mateusz Gacek
b1f89ee02f
or_fun_call: trigger on unsafe blocks
2021-03-18 08:44:15 +01:00
Mateusz Gacek
ea15fb2177
wrong_self_convention: to_
respects Copy
types
...
More details here:
https://rust-lang.github.io/api-guidelines/naming.html#ad-hoc-conversions-follow-as_-to_-into_-conventions-c-conv
2021-03-17 22:00:46 +01:00
Takayuki Maeda
b6a2757561
replace crate::methods::utils with super::utils
2021-03-18 01:23:37 +09:00
Takayuki Maeda
0edd5f881d
remove the use of paths
2021-03-18 01:06:24 +09:00
Takayuki Maeda
602bcf3e4f
move get_hint_if_single_char_arg to methods/utils.rs
2021-03-18 00:59:45 +09:00
Takayuki Maeda
27963c8dce
move chars_last_cmp_with_unwrap to its own module
2021-03-18 00:59:45 +09:00
Takayuki Maeda
4d1f2bc565
extract conditions for single_char_pattern into its own module
2021-03-18 00:59:44 +09:00
Takayuki Maeda
7a7fcc0eda
extract condition for into_iter_on_ref to its own module
2021-03-18 00:59:43 +09:00
Takayuki Maeda
d380769952
extract conditions for from_iter_instead_of_collect
into its own module
2021-03-18 00:58:35 +09:00
Takayuki Maeda
62490c41af
extract conditions into modules
2021-03-18 00:51:49 +09:00
Takayuki Maeda
3d9b45df0f
move single_char_add_str to its own module
2021-03-18 00:51:18 +09:00
Takayuki Maeda
4843084946
use clippy_utils::ty::is_type_diagnostic_item
2021-03-18 00:51:18 +09:00
Takayuki Maeda
f0f7871920
fmt
2021-03-18 00:51:18 +09:00
Takayuki Maeda
b6597eec0b
remove unused arguments
2021-03-18 00:51:18 +09:00
Takayuki Maeda
0c81311bf0
extract a condition into a function.
2021-03-18 00:51:18 +09:00
Takayuki Maeda
f0a101d81d
remove a needless variable
2021-03-18 00:51:18 +09:00
Takayuki Maeda
1bec8b6065
use derefs_to_slice in methods/utils.rs
2021-03-18 00:51:16 +09:00
Takayuki Maeda
e578a536c7
move derefs_to_slice to methods/utils.rs
2021-03-18 00:49:50 +09:00
Takayuki Maeda
c07c046b31
refactor string_extend_chars: return when obj type is not string
2021-03-18 00:49:50 +09:00
Takayuki Maeda
058d8c878a
move chars_cmp_with_unwrap, chars_last_cmp and chars_next_cmp_with_unwrap to their own modules
2021-03-18 00:49:48 +09:00
Takayuki Maeda
94fb2b58a3
move chars_cmp and chars_next_cmp to its own modules
2021-03-18 00:49:03 +09: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
bors
d7a23112e3
Auto merge of #6914 - camsteffen:source-utils, r=Manishearth
...
Move some utils to `clippy_utils::source`
changelog: none
Continues #6907
2021-03-16 00:08:01 +00:00
bors
0929a24d72
Auto merge of #6828 - mgacek8:issue_6758_enhance_wrong_self_convention, r=flip1995
...
wrong_self_convention: fix lint in case of `to_*_mut` method
fixes #6758
changelog: wrong_self_convention: fix lint in case of `to_*_mut` method. When a method starts with `to_` and ends with `_mut`, clippy expects a `&mut self` parameter, otherwise `&self`.
Any feedback is welcome. I was also thinking if shouldn't we treat `to_` the same way as `as_`. Namely to accept `self` taken: `&self` or `&mut self`.
2021-03-15 22:36:57 +00: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
Ben Boeckel
ecf0c76c36
Fix suspicious_map false positives
2021-03-14 16:31:55 -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
Mateusz Gacek
2547edb842
wrong_self_convention: fix lint in case of to_*_mut
method
...
When a method starts with `to_` and ends with `_mut`, it should expect a `&mut self` parameter,
otherwise `&self`.
2021-03-11 23:54:50 -08:00
Takayuki Maeda
83a955335f
fix interning-defined-symbol error
2021-03-11 20:18:33 +09:00
Takayuki Maeda
99f860768c
remove unused imports
2021-03-11 20:02:29 +09:00
Takayuki Maeda
c711de28ee
move expect_fun_call to its own module
2021-03-11 19:40:50 +09:00
Takayuki Maeda
f49349bf33
move or_fun_call to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
b0824bf75f
move map_unwrap_or to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
5557596926
move option_map_or_none to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
bbed852f6f
unnecessary_fold to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
78e572c627
move useless_asref to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
caaba8270c
move clone_on_copy to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
171c4c1485
move iter_skip_next to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
24909fabd2
move map_flatten and search_is_some to their own modules
2021-03-11 19:40:24 +09:00
Takayuki Maeda
37ba779a53
move flat_map_identity to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
f430384f04
move filter_map_flat_map to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
6d941616f9
move filter_flat_map to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
2baf043c37
move filter_map_next to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
805dcd12d4
move filter_map_map to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
183daeb961
move filter_map to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
2561b7ea06
move from_iter_insteam_of_collect to its own module
2021-03-11 19:40:24 +09:00
Takayuki Maeda
0c8d143515
move into_iter_on_ref and single_char_pattern to their own modules
2021-03-11 19:40:22 +09:00
Takayuki Maeda
805aa47f43
move single_char_push_string to its own module
2021-03-11 19:40:00 +09:00
Takayuki Maeda
8006dab817
move single_char_insert_string to its own module
2021-03-11 19:40:00 +09:00
Takayuki Maeda
2ade32ddf2
move string_extend_chars and clone_on_ref_ptr to their own module
2021-03-11 19:40:00 +09:00
Takayuki Maeda
b5d809a660
move wrong_self_convention to its own module
2021-03-11 19:40:00 +09:00
Takayuki Maeda
5912ca986c
move iter_nth, iter_nth_zero and iterator_step_by_zero to their own module
2021-03-11 19:39:58 +09:00
Takayuki Maeda
3fe099ba8d
move iter_next_slice to its own module
2021-03-11 19:37:16 +09:00
Takayuki Maeda
db91d9cf9a
move map_collect_result_unit to its own module
2021-03-11 19:37:16 +09:00
Takayuki Maeda
9b0a42b67d
move zst_offset to its own module
2021-03-11 19:37:16 +09:00
Takayuki Maeda
6376da70be
replace lints
and lint
with check
2021-03-11 19:37:16 +09:00
Takayuki Maeda
45ee914df0
move iter_cloned_collect to its own module
2021-03-11 19:37:16 +09:00
Takayuki Maeda
35147d4cf3
move uninit_assumed_init to its own module
2021-03-11 19:37:16 +09:00
Takayuki Maeda
8623b331ee
move filetype_is_file to its own module
2021-03-11 19:37:16 +09:00
Takayuki Maeda
60a053725e
move suspicious_map to its own module
2021-03-11 19:37:16 +09:00
Takayuki Maeda
110dac7f58
move option_as_ref_deref to its own module
2021-03-11 19:37:16 +09:00