Commit graph

11526 commits

Author SHA1 Message Date
Jason Newcomb
47145dec36
len_without_is_empty will now consider multiple impl blocks
`len_without_is_empty` will now consider `#[allow]` on both the `len` method, and the type definition
2021-03-07 09:40:18 -05:00
bors
5945e85f34 Auto merge of #6823 - Jarcho:diagnostic_items, r=phansch
Use diagnostic or language items instead of paths

I think that gets everything except ones used in a list of paths to check.

changelog: none
2021-03-07 12:04:42 +00:00
Jason Newcomb
e4ffff9e72
Use LanguageItems::require 2021-03-06 13:03:13 -05:00
Yusuke Tanaka
a672d335a2
Implement new lint: if_then_some_else_none 2021-03-07 02:08:46 +09:00
bors
13271d3344 Auto merge of #6854 - mgacek8:6844_fix_doc_for_useless_format_lint, r=phansch
useless_format: fix examples in the description

fixes #6844
changelog: useless_format: fix examples in the description
2021-03-06 13:32:04 +00:00
bors
0153679a4e Auto merge of #6848 - matthiaskrgr:lintcheck_clippyfix, r=llogiq
lintcheck: add --fix mode which tries to apply lint suggestions to th…

…e sources and prints a warning if that fails

Great for spotting false positives/broken suggestions of applicable lints.

There are false positives though because I'm not sure yet how to silence rustc warnings while keeping clippy warnings.
Sometimes rustc makes a suggestion that fails to apply and the implementation does not differentiate between clippy and rustc warnings when applying lint suggestions.

changelog: none
2021-03-05 21:10:52 +00:00
Guillaume Gomez
6b40d120c7 Rollup merge of #82736 - spastorino:mir-opt-level-perf-changes, r=oli-obk
Bump optimization from mir_opt_level 2 to 3 and 3 to 4 and make "release" be level 2 by default

r? `@oli-obk`
2021-03-05 21:44:40 +01:00
Santiago Pastorino
0941fc0bb5 Make clippy set mir_opt_level using Option 2021-03-05 17:13:57 -03:00
Mateusz Gacek
a0b7f9b3a0 useless_format: fix examples in the description
"Good" example was something not acceptable by the useless_format lint.
2021-03-05 12:11:31 -08:00
bors
54def1e145 Auto merge of #6852 - camsteffen:avoid-mir, r=Manishearth
Remove a couple MIR usages

changelog: none

We use MIR to get the return type of a closure/function in a couple places. But typeck seems like a better approach.

This is the easy part of #6080.

Also did a tiny cleanup with `typeck` -> `typeck_body`.
2021-03-05 17:30:43 +00:00
Cameron Steffen
5abd8c5995 Use typeck_body 2021-03-05 10:36:20 -06:00
Cameron Steffen
ae8ec07d2e Avoid mir in missing_errors_doc 2021-03-05 10:36:20 -06:00
Cameron Steffen
45454f0738 Avoid mir in implicit_return 2021-03-05 10:36:16 -06:00
Matthias Krüger
45424c7e75 lintcheck: add --fix mode which tries to apply lint suggestions to the sources and prints a warning if that fails
Great for spotting false positives/broken suggestions of applicable lints.

There are false positives though becasue I'm not sure yet how to silence rustc warnings while keeping clippy warnings.
Sometimes rustc makes a suggestion that fails to apply and the implementation does not differenciate between clippy and rustc warnings when applying lint suggestions.

changelog: none
2021-03-05 17:11:21 +01:00
bors
9e54538355 Auto merge of #6849 - flip1995:dogfood-fix, r=matthiaskrgr
Dogfood and CI fixes

The CI fix is practically #6829 rebased and squashed into one commit

Dogfood fix is a follow up of #6802

r? `@matthiaskrgr` for lintcheck changes

(best reviewed with whitespace changes hidden)

changelog: none
2021-03-05 14:09:24 +00:00
flip1995
74eb44834c
Extract directory creation into its own function 2021-03-05 14:06:43 +01:00
flip1995
4aaad086d2
Fix dogfood errors in clippy_dev 2021-03-05 13:36:55 +01:00
flip1995
1d71d9a106
Fix dogfood errors in clippy_lints 2021-03-05 11:10:29 +01:00
flip1995
3c502ec8a5
Remove hack that forces dogfood to run on nightly
This isn't necessary anymore, since we don't use a custom toolchain anymore
2021-03-05 11:10:29 +01:00
flip1995
5ebe6d3234
Fix dogfood test
Since clippy cannot be a workspace, we have to check the sub-crates separately
2021-03-05 11:10:29 +01:00
Oli Scherer
5b2e7e91c3 Shrink the size of Rvalue by 16 bytes 2021-03-05 09:33:01 +00:00
flip1995
26265bb9bc
ci: Sync clippy and clippy_bors workflows
Those workflows should always test exactly the same things
2021-03-05 10:27:30 +01:00
bors
f0e6ce8035 Auto merge of #6846 - matthiaskrgr:lintcheck_test, r=Manishearth
lintcheck: add test (but don't run on ci)

This is the rest of https://github.com/rust-lang/rust-clippy/pull/6829 but without adding anything to ci

*Please write a short comment explaining your change (or "none" for internal only changes)*
changelog: none
2021-03-04 23:28:50 +00:00
Matthias Krüger
3f7ad32a99 update lintcheck logs 2021-03-04 22:40:04 +01:00
Matthias Krüger
37c4b11a84 lintcheck: add test 2021-03-04 22:33:35 +01:00
bors
7be3a32f25 Auto merge of #6843 - Jarcho:match_on_same_arms_macro, r=Manishearth
Compare empty blocks for equality based on tokens

fixes: #1390

This only considers empty blocks for now, though we should also catch something like this:

```rust
match 0 {
    0 => {
        do_something();
        trace!(0);
        0
    }
    1 => {
        do_something();
        trace!(1);
        1
    }
    x => x,
}
```

As far as I can tell there aren't any negative effects on other lints. These blocks only happen to be the same for a given compilation, not all compilations.

changelog: Fix `match_on_same_arms` and others. Only consider empty blocks equal if the tokens contained are the same.
2021-03-04 18:23:39 +00:00
bors
6680710961 Auto merge of #6833 - daxpedda:use-self, r=Manishearth
Fix false-positive in `use_self`

Fixes  #6818.

changelog: Fix false positives for use_self in macros.
2021-03-04 17:35:06 +00:00
Jason Newcomb
39c5e86337
When checking if two empty hir blocks are equal also check to see if the tokens used are the same as well 2021-03-04 11:06:24 -05:00
bors
d783e3dda6 Auto merge of #6839 - matthiaskrgr:lintcheck_clippy_warnings, r=flip1995
lintcheck: fix clippy warnings

split out from https://github.com/rust-lang/rust-clippy/pull/6829
changelog: none
2021-03-04 11:43:05 +00:00
Matthias Krüger
bbe641678c lintcheck: fix clippy warnings 2021-03-04 11:00:39 +01:00
bors
ff51964102 Auto merge of #6825 - djc:naive-bytecount-pedantic, r=Manishearth
Move naive_bytecount to pedantic

As discussed on Zulip, current best practice is to avoid recommending
external crates. This lint is from before that was enforced. Move it
to the pedantic group to avoid enabling it by default.

https://rust-lang.zulipchat.com/#narrow/stream/257328-clippy/topic/naive_bytecount.20suggesting.20extra.20dependency

changelog: move [`naive_bytecount`] to pedantic
2021-03-03 21:26:24 +00:00
hyd-dev
03e72d5446
Let Cargo track CLIPPY_ARGS 2021-03-04 03:29:21 +08:00
daxpedda
5656510eed
Fix false-positive in use_self 2021-03-03 17:32:49 +01:00
bors
43d19f63f7 Auto merge of #6824 - Y-Nak:refactor_loops_module, r=flip1995
Refactor: organize loops file into loops module (Delegated)

`@flip1995` `@nahuakang`

closes #6693
r? `@flip1995`

 As we talked about in the PM of Zulip,  this PR is a delegated PR from `@nahuakang.`

Changes from the last commit of #6693:
1. Unify the name of the main entries of all modules to check, that was pointed out [here](https://github.com/rust-lang/rust-clippy/pull/6693#discussion_r582897713)
2. Simplify ` check_for_loop_arg`, that was pointed out [here](https://github.com/rust-lang/rust-clippy/pull/6693#discussion_r582914044) and [here](https://github.com/rust-lang/rust-clippy/pull/6693#discussion_r582929910)
3. Resolve conflicts

changelog: Refactor `loops.rs` file into `loops` module.
2021-03-03 10:34:22 +00:00
Ryan Levick
09c4503cae Fix borrow and deref 2021-03-03 11:23:29 +01:00
Ryan Levick
e3f48559ed Allow noop_method_call in clippy ui test 2021-03-03 11:22:58 +01:00
bors
ece3543c9f Auto merge of #6801 - Jarcho:manual_match_fix, r=phansch
Fix `manual_map` false positives

fixes: #6795
fixes: #6797
fixes: #6811
fixes: #6819

changelog: Fix false positives for `manual_map` when `return`, `break`, `continue`, `yield`, `await`, and partially moved values are used.
changelog: Don't expand macros in suggestions  for `manual_map`
2021-03-02 15:36:00 +00:00
Dirkjan Ochtman
9e4a064f08 Move naive_bytecount to pedantic
As discussed on Zulip, current best practice is to avoid recommending
external crates. This lint is from before that was enforced. Move it
to the pedantic group to avoid enabling it by default.

https://rust-lang.zulipchat.com/#narrow/stream/257328-clippy/topic/naive_bytecount.20suggesting.20extra.20dependency
2021-03-02 14:34:47 +01:00
Yoshitomo Nakanishi
19c886b407 Remove "for_loop_arg.rs" 2021-03-02 21:09:10 +09:00
bors
eb04beb005 Auto merge of #6791 - TaKO8Ki:iter-count, r=matthiaskrgr
New lint: `iter_count`

This pull request adds a new lint named `iter_count`.

---

closes https://github.com/rust-lang/rust-clippy/issues/6262

changelog: new lint `iter_count`
2021-03-02 11:31:43 +00:00
bors
3cd6ca051c Auto merge of #6716 - magurotuna:refactor-transmute-mod, r=flip1995
Refactor: arrange transmute lints

This PR arranges `transmute` lints so that they can be accessed more easily.
Basically, I followed the instruction described in #6680 as to how to do the refactoring.

- `declare_clippy_lint!` and `impl LintPass` is placed in `transmute/mod.rs`
- Uitlity functions is placed in `transmute/utils.rs`
- Each lint function about `transmute` is moved into its own module, like `transmute/useless_transmute.rs`

For ease of review, I refactored step by step, keeping each commit small. For instance, all I did in
2451781 was to move  `useless_transmute` into its own module.

---

changelog: Refactor `transmute.rs` file into `transmute` module.
2021-03-02 09:44:03 +00:00
Yusuke Tanaka
bf000985f5
Make check_cast private 2021-03-02 10:40:25 +01:00
Yusuke Tanaka
8a8f7b4cf5
Refactor calls to lint check functions 2021-03-02 10:40:25 +01:00
Yusuke Tanaka
89ef26a681
Cleanup imports 2021-03-02 10:40:25 +01:00
Yusuke Tanaka
25c221ec92
Move transmutes_expressible_as_ptr_casts to its own module 2021-03-02 10:40:24 +01:00
Yusuke Tanaka
c57a8260f2
Move unsound_collection_transmute to its own module 2021-03-02 10:40:24 +01:00
Yusuke Tanaka
e7d2393d01
Move transmute_float_to_int to its own module 2021-03-02 10:40:24 +01:00
Yusuke Tanaka
acedc7b8f2
Move transmute_int_to_float to its own module 2021-03-02 10:40:24 +01:00
Yusuke Tanaka
d04ea41d1f
Move transmute_int_to_bool to its own module 2021-03-02 10:40:24 +01:00
Yusuke Tanaka
f8bc0e249c
Move transmute_ptr_to_ptr to its own module 2021-03-02 10:40:23 +01:00