Commit Graph

10969 Commits

Author SHA1 Message Date
Andrea Nall e812a8abde use .all instead of negative use of .any 2021-03-08 23:08:52 -06:00
Andrea Nall e322c773e3 use TyS::walk 2021-03-08 23:03:45 -06:00
Andrea Nall b27cbda32b make is_normalizable more strict 2021-03-07 21:45:54 -06:00
bors d02ca3b81b Auto merge of #6807 - anall:feature/use_new_diagnostics, r=Manishearth
migrate paths to newly-added diagnostic items

This gets rid of the following paths:
  * OS_STRING
  * TO_OWNED
  * TO_STRING

Removes some usages of:
 * PATH_BUF

Per #5393

also removes unneeded `is_ty_param_path` from `clippy_lints::types` and relocates `is_ty_param_lang_item` and `is_ty_param_diagnostic_item` to `clippy_utils`.

changelog: none
2021-03-08 00:04:48 +00:00
Andrea Nall 9bdc273f03 relocate functions from clippy_lints::types
relocate `is_ty_param_lang_item` and `is_ty_param_diagnostic_item` to `clippy_utils`
2021-03-07 17:58:39 -06:00
Andrea Nall 3877a410be migrate paths to newly-added diagnostic items
This gets rid of the following paths:
  * OS_STRING
  * TO_OWNED
  * TO_STRING

Also removes some usages of:
  * PATH_BUF

And the now completely unused `clippy_lints::types::is_ty_param_path`
2021-03-07 17:53:12 -06:00
bors e451d6e188 Auto merge of #6853 - Jarcho:len_without_is_empty_fp, r=Manishearth
`len_without_is_empty` will now consider multiple impl blocks

fixes #1562

This also reverts #1559 as the `#[allow]` now works on the `len` method. A note has also been added to point out where the `empty` method is, if it exists.

changelog: `len_without_is_empty` will now consider multiple impl blocks
changelog: `len_without_is_empty` will now consider `#[allow]` on both the `len` method, and the type definition
2021-03-07 22:58:11 +00:00
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
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
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
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
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
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