Commit graph

11131 commits

Author SHA1 Message Date
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
bors
9cd0f504a9 Auto merge of #6907 - camsteffen:ty-utils, r=flip1995
Move some utils to `clippy_utils::ty`

changelog: none

`clippy_utils::*` has become a giant junk drawer. This is one step to clean it up a bit. One motivation is that I believe the long import statements cause more merge conflicts.
2021-03-15 22:13:45 +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
bors
0e042d2f70 Auto merge of #6831 - camsteffen:suspicious-map, r=Y-Nak,flip1995
Fix suspicious_map false positives

changelog: Fix suspicious_map false positives

Fixes #5253
Replaces #5375
2021-03-15 15:56:56 +00:00
Cameron Steffen
59dba04ccb Improve find_binding_init docs 2021-03-15 08:56:14 -05:00
Ben Boeckel
ecf0c76c36 Fix suspicious_map false positives 2021-03-14 16:31:55 -05:00
bors
52c25e9136 Auto merge of #6895 - iobtl:reformat_unnecessary_cast, r=llogiq
replace span_lint with span_lint_and_sugg along with error message

fixes: #6874
changelog: none

apologies if this may not be the most idiomatic way of doing it, any advice on changes (if any) would be greatly appreciated.
2021-03-14 15:01:01 +00:00
iobtl
1054eb0c85 use lint_unnecessary_cast for literals, suggest _ if not present 2021-03-14 08:09:08 +08:00
bors
781de34222 Auto merge of #6859 - magurotuna:if_then_some_else_none, r=giraffate
Implement new lint: if_then_some_else_none

Resolves #6760

changelog: Added a new lint: `if_then_some_else_none`
2021-03-13 15:54:54 +00:00
bors
92b9677864 Auto merge of #6820 - mgacek8:issue_6562_enhance_mem_replace_with_default_with_other_ctors, r=phansch
mem_replace_with_default: recognize some std library ctors

fixes #6562
changelog: mem_replace_with_default: recognize some common constructors equivalent to `Default::default()`
2021-03-13 15:43:00 +00:00
bors
28759b242d Auto merge of #6865 - Jarcho:explicit_deref_methods, r=llogiq
`explicit_deref_methods` improvements

Breaking up #6837

changelog: `explicit_deref_methods` will lint chained `deref` calls and ufcs style calls
2021-03-13 15:31:14 +00:00
Jason Newcomb
2713ad4342
Properly lint macro arguments for explicit_deref_methods 2021-03-13 08:40:01 -05:00
Jason Newcomb
704f7a8e50
Keep track of whether deref or deref_mut was called
Remove more unnecessary code
2021-03-13 08:39:59 -05:00
Jason Newcomb
1666e43cc0
Remove unneeded code. 2021-03-13 08:39:56 -05:00
Jason Newcomb
a261bc5fad
Make explicit_deref_methods check for multiple deref calls
Fix suggestion for `explicit_deref_methods`. Sometimes `&**` is needed, sometimes nothing is needed.
Allow `explicit_deref_methods` to trigger in a few new contexts.
`explicit_deref_methods` will now consider ufcs calls
2021-03-13 08:39:48 -05:00
iobtl
6d2236f503 replace span_lint with span_lint_and_sugg along with error message 2021-03-13 16:54:59 +08:00
bors
65d046c9ad Auto merge of #6892 - matthiaskrgr:inc_struct_ctor, r=Y-Nak
inconsistent_struct_constructor: try to make message and lint description a bit clearer

changelog: inconsistent_struct_constructor: try to make message and lint description a bit clearer

r? `@ghost`
2021-03-13 04:52:40 +00:00
bors
d219888fc0 Auto merge of #6891 - Y-Nak:use-iterator-sym, r=Manishearth
Use sym::Iterator instead of paths::ITERATOR

Since `sym::Iterator` was added to diagnostic_item, it's time to remove `paths::ITERATOR`.
ref: #5393

changelog: Add `is_trait_method` to `clippy_utils`
changelog: Remove `paths::ITERATOR`
2021-03-12 22:36:49 +00:00
Mateusz Gacek
41be515062 mem_replace_with_default: use diagnostic items intead of paths 2021-03-12 13:03:07 -08:00
Mateusz Gacek
c86ba7f92d mem_replace_with_default: recognize some std library ctors 2021-03-12 12:57:54 -08:00
Matthias Krüger
6bc5fe4a88 inconsistent_struct_constructor: try to make message and lint description a bit clearer 2021-03-12 20:41:43 +01:00
Yoshitomo Nakanishi
93ee80ac3e Use sym::Iterator instead of paths::ITERATOR 2021-03-13 02:10:54 +09:00
Yusuke Tanaka
11d2af7e96
Improve suggestion and make it work for macros 2021-03-12 20:46:46 +09: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
bors
6ed6f1e6a1 Auto merge of #6826 - TaKO8Ki:refactor-methods-mod, r=phansch
Refactor: arrange lints in `methods` module

This PR arranges methods lints so that they can be accessed more easily.
Basically, I refactored them following the instruction described in #6680.

changelog: Move lints in methods module into their own modules.
2021-03-11 19:54:48 +00:00
bors
534a13db96 Auto merge of #6884 - matthiaskrgr:lintcheck_crate, r=Manishearth
move lintcheck into its own crate

This pr:
* moves lintcheck out of `clippy dev` and into its own crate (`lintcheck`)  (I should have done this earlier :D)
* makes lintcheck terminate if it is not launched from the repo root (to prevent problems with wrong paths when using `cargo run` in the crate root)
* fixes json lint messages leaking the runners `$HOME` when a lint messages comes from a proc macro that originates from a crate inside the `$CARGO_CACHE`
* adds more documentation to lintchecks `README.md` and mentions lintcheck in `docs/basics.md`

changelog: none
2021-03-11 16:10:33 +00:00
Matthias Krüger
0af90fd15a doc line length fixes 2021-03-11 15:47:51 +01:00
Matthias Krüger
ac935781f5 docs: basics.md: mention lintcheck 2021-03-11 15:37:10 +01:00
Matthias Krüger
528e464b4f lintcheck: fix clippy warnings 2021-03-11 15:28:27 +01:00
Matthias Krüger
b068b742ee lintcheck: fix --fix and document it in the readme.
also hook lintcheck into clippy-dev so that `clippy dev fmt` formats it.
2021-03-11 15:27:30 +01:00
Matthias Krüger
b29ef183fb lintcheck: update logs 2021-03-11 15:27:30 +01:00
Matthias Krüger
3e60ba073b lintcheck: fix bug where lint messages about macros coming from crate deps would sneak in absolute paths to registry sources.
make the path a relative path that starts at the CARGO_HOME to not print the users home location in the log
2021-03-11 15:27:30 +01:00
Matthias Krüger
d859a17cdd lintcheck: update readme and remove the now redundant readme from clippy-dev 2021-03-11 15:27:30 +01:00
Matthias Krüger
fac6da1cfb move testfiles to "lintcheck" and fix more paths 2021-03-11 15:27:26 +01:00
Matthias Krüger
c760150989 gitignore: add lintchecks target dir 2021-03-11 13:26:27 +01:00
Matthias Krüger
a846945b82 lintcheck: make sure we lauch from the repo root
This will terminate the program if run via "cargo run".
"cargo run" does currently not work because at least a bunch of paths do not take that into account.
2021-03-11 13:26:26 +01:00
Matthias Krüger
2546e6f006 lintcheck: move out of clippy-dev into own crate 2021-03-11 13:26:26 +01: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