]> git.lizzy.rs Git - rust.git/log
rust.git
3 years agoLint against `Self` as an arbitrary self type
Christoph Walcher [Tue, 4 Aug 2020 18:23:14 +0000 (20:23 +0200)]
Lint against `Self` as an arbitrary self type

Fixes #5861

3 years agoAuto merge of #5809 - JarredAllen:stable_sort_primitive, r=Manishearth
bors [Wed, 5 Aug 2020 20:41:21 +0000 (20:41 +0000)]
Auto merge of #5809 - JarredAllen:stable_sort_primitive, r=Manishearth

Stable sort primitive

changelog: Implements #5762

3 years agoAuto merge of #5859 - ebroto:5765_manual_async_fn_fp, r=yaahc
bors [Wed, 5 Aug 2020 17:52:28 +0000 (17:52 +0000)]
Auto merge of #5859 - ebroto:5765_manual_async_fn_fp, r=yaahc

manual_async_fn: take input lifetimes into account

The anonymous future returned from an `async fn` captures all input
lifetimes. This was not being taken into account.

See https://github.com/rust-lang/rfcs/blob/master/text/2394-async_await.md#lifetime-capture-in-the-anonymous-future

changelog: Take input lifetimes into account in [`manual_async_fn`].

Fixes #5765

3 years agoAuto merge of #5857 - tmiasko:try-err-poll, r=matthiaskrgr
bors [Wed, 5 Aug 2020 08:43:37 +0000 (08:43 +0000)]
Auto merge of #5857 - tmiasko:try-err-poll, r=matthiaskrgr

try_err: Consider Try impl for Poll when generating suggestions

There are two different implementation of `Try` trait for `Poll` type:
`Poll<Result<T, E>>` and `Poll<Option<Result<T, E>>>`. Take them into
account when generating suggestions.

For example, for `Err(e)?` suggest either `return Poll::Ready(Err(e))` or
`return Poll::Ready(Some(Err(e)))` as appropriate.

Fixes #5855

changelog: try_err: Consider Try impl for Poll when generating suggestions

3 years agoRun cargo dev fmt
JarredAllen [Wed, 5 Aug 2020 00:53:29 +0000 (17:53 -0700)]
Run cargo dev fmt

3 years agoAuto merge of #5865 - camsteffen:unnecessary-fold-known-probs, r=Manishearth
bors [Tue, 4 Aug 2020 23:09:35 +0000 (23:09 +0000)]
Auto merge of #5865 - camsteffen:unnecessary-fold-known-probs, r=Manishearth

Remove obsolete known problems unnecessary_fold

The known problems looks to be obsolete since NLL is stable.

changelog: none

3 years agoAuto merge of #5868 - flip1995:rollup-5g8vft5, r=flip1995
bors [Tue, 4 Aug 2020 10:07:47 +0000 (10:07 +0000)]
Auto merge of #5868 - flip1995:rollup-5g8vft5, r=flip1995

Rollup of 5 pull requests

Successful merges:

 - #5837 (needless_collect: catch x: Vec<_> = iter.collect(); x.into_iter() ...)
 - #5846 (Handle mapping to Option in `map_flatten` lint)
 - #5848 (Add derive_ord_xor_partial_ord lint)
 - #5852 (Add lint for duplicate methods of trait bounds)
 - #5856 (Remove old Symbol reexport)

Failed merges:

r? @ghost

changelog: rollup

3 years agoRollup merge of #5856 - phansch:remove-symbol-reexport, r=flip1995
Philipp Krones [Tue, 4 Aug 2020 10:06:43 +0000 (12:06 +0200)]
Rollup merge of #5856 - phansch:remove-symbol-reexport, r=flip1995

Remove old Symbol reexport

I couldn't really tell what it was meant to improve. It seems more clear
without the renaming to `Name`?

changelog: none

3 years agoRollup merge of #5852 - wiomoc:feature/lint-duplicate-trait, r=Manishearth
Philipp Krones [Tue, 4 Aug 2020 10:06:41 +0000 (12:06 +0200)]
Rollup merge of #5852 - wiomoc:feature/lint-duplicate-trait, r=Manishearth

Add lint for duplicate methods of trait bounds

rel: #5777

changelog: Add [`trait_duplication_in_bounds`] lint

3 years agoRollup merge of #5848 - Ryan1729:add-derive_ord_xor_partial_ord-lint, r=matthiaskrgr
Philipp Krones [Tue, 4 Aug 2020 10:06:40 +0000 (12:06 +0200)]
Rollup merge of #5848 - Ryan1729:add-derive_ord_xor_partial_ord-lint, r=matthiaskrgr

Add derive_ord_xor_partial_ord lint

Fix #1621

Some remarks:
This PR follows the example of the analogous derive_hash_xor_partial_eq lint where possible.
I initially tried using the `match_path` function to identify `Ord` implementation like the derive_hash_xor_partial_eq lint currently does, for `Hash` implementations but that didn't work.

Specifically, the structs at the top level were getting paths that matched `&["$crate", "cmp", "Ord"]` instead of `&["std", "cmp", "Ord"]`. While trying to figure out what to do instead I saw the comment at the top of [clippy_lints/src/utils/paths.rs](https://github.com/rust-lang/rust-clippy/blob/f5d429cd762423901f946abd800dc2cd91366ccf/clippy_lints/src/utils/paths.rs#L5) that mentioned [this issue](https://github.com/rust-lang/rust-clippy/issues/5393) and suggested to use diagnostic items instead of hardcoded paths whenever possible. I looked for a way to identify `Ord` implementations with diagnostic items, but (possibly because this was the first time I had heard of diagnostic items,) I was unable to find one.

Eventually I tried using `get_trait_def_id` and comparing `DefId` values directly and that seems to work as expected. Maybe there's a better approach however?

changelog: new lint: derive_ord_xor_partial_ord

3 years agoRollup merge of #5846 - dima74:map_flatten.map_to_option, r=flip1995
Philipp Krones [Tue, 4 Aug 2020 10:06:39 +0000 (12:06 +0200)]
Rollup merge of #5846 - dima74:map_flatten.map_to_option, r=flip1995

Handle mapping to Option in `map_flatten` lint

Fixes #4496

The existing [`map_flatten`](https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten) lint suggests changing `expr.map(...).flatten()` to `expr.flat_map(...)` when `expr` is `Iterator`. This PR changes suggestion to `filter_map` instead of `flat_map` when mapping to `Option`, because it is more natural

Also here are some questions:
* If expression has type which implements `Iterator` trait (`match_trait_method(cx, expr, &paths::ITERATOR) == true`), how can I get type of iterator elements? Currently I use return type of closure inside `map`, but probably it is not good way
* I would like to change suggestion range to cover only `.map(...).flatten()`, that is from:
```
    let _: Vec<_> = vec![5_i8; 6].into_iter().map(|x| 0..x).flatten().collect();
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using `flat_map` instead: `vec![5_i8; 6].into_iter().flat_map
```
to
```
    let _: Vec<_> = vec![5_i8; 6].into_iter().map(|x| 0..x).flatten().collect();
                                             ^^^^^^^^^^^^^^^^^^^^^^^^ help: try using `flat_map` instead: `.flat_map(|x| 0..x)`
```
Is it ok?
* Is `map_flatten` lint intentionally in `pedantic` category, or could it be moved to `complexity`?

changelog: Handle mapping to Option in [`map_flatten`](https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten) lint

3 years agoRollup merge of #5837 - JarredAllen:needless_collect, r=phansch
Philipp Krones [Tue, 4 Aug 2020 10:06:38 +0000 (12:06 +0200)]
Rollup merge of #5837 - JarredAllen:needless_collect, r=phansch

needless_collect: catch x: Vec<_> = iter.collect(); x.into_iter() ...

changelog: Expand the needless_collect lint as suggested in #5627 (WIP).

This PR is WIP because I can't figure out how to make the multi-part suggestion include its changes in the source code (the fixed is identical to the source, despite the lint making suggestions). Aside from that one issue, I think this should be good.

3 years agoAuto merge of #5867 - flip1995:rustup, r=flip1995
bors [Tue, 4 Aug 2020 09:25:05 +0000 (09:25 +0000)]
Auto merge of #5867 - flip1995:rustup, r=flip1995

Rustup

r? @ghost

changelog: none

3 years agorustc_ast: `(Nested)MetaItem::check_name` -> `has_name`
Vadim Petrochenkov [Sun, 2 Aug 2020 10:17:20 +0000 (13:17 +0300)]
rustc_ast: `(Nested)MetaItem::check_name` -> `has_name`

For consistency with `Attribute::has_name` which doesn't mark the attribute as used either.

Replace all uses of `check_name` with `has_name` outside of rustc

3 years agoRemove obsolete known problems unnecessary_fold
Cameron Steffen [Mon, 3 Aug 2020 21:23:20 +0000 (16:23 -0500)]
Remove obsolete known problems unnecessary_fold

3 years agotry_err: Consider Try impl for Poll when generating suggestions
Tomasz Miąsko [Sun, 2 Aug 2020 00:00:00 +0000 (00:00 +0000)]
try_err: Consider Try impl for Poll when generating suggestions

There are two different implementation of Try trait for Poll type;
Poll<Result<T, E>> and Poll<Option<Result<T, E>>>. Take them into
account when generating suggestions.

For example, for Err(e)? suggest either return Poll::Ready(Err(e)) or
return Poll::Ready(Some(Err(e))) as appropriate.

3 years agoCreate stable_sort_primitive lint
JarredAllen [Thu, 9 Jul 2020 03:29:56 +0000 (20:29 -0700)]
Create stable_sort_primitive lint

3 years agoAuto merge of #5864 - rust-lang:ci_debug, r=Manishearth
bors [Mon, 3 Aug 2020 17:53:35 +0000 (17:53 +0000)]
Auto merge of #5864 - rust-lang:ci_debug, r=Manishearth

Fix ui-cargo tests in CI

r? @ebroto

The `ui-toml` tests set the `CARGO_MANIFEST_DIR` var, but never reset it, so the `ui-cargo` tests used it also and then found a faulty `clippy.toml` file

changelog: none

3 years agoFix ui-cargo tests in CI
flip1995 [Mon, 3 Aug 2020 15:22:47 +0000 (17:22 +0200)]
Fix ui-cargo tests in CI

3 years agoearly return on empty parameters/where clause
Christoph Walcher [Mon, 3 Aug 2020 10:32:23 +0000 (12:32 +0200)]
early return on empty parameters/where clause

3 years agoImplement review suggestions
JarredAllen [Mon, 3 Aug 2020 04:46:18 +0000 (21:46 -0700)]
Implement review suggestions

3 years agoFix a bug causing it to be too trigger-happy
JarredAllen [Thu, 23 Jul 2020 17:07:51 +0000 (10:07 -0700)]
Fix a bug causing it to be too trigger-happy

3 years agoFix formatting and dogfood fallout
JarredAllen [Thu, 23 Jul 2020 16:44:44 +0000 (09:44 -0700)]
Fix formatting and dogfood fallout

3 years agoSplit indirect collects into their own test case
JarredAllen [Thu, 23 Jul 2020 16:15:16 +0000 (09:15 -0700)]
Split indirect collects into their own test case

3 years agoCheck for other things which can be used indirectly
JarredAllen [Thu, 23 Jul 2020 16:14:10 +0000 (09:14 -0700)]
Check for other things which can be used indirectly

3 years agoWrite the lint and write tests
JarredAllen [Thu, 23 Jul 2020 05:46:23 +0000 (22:46 -0700)]
Write the lint and write tests

3 years agoCreate test for wanted behavior
JarredAllen [Mon, 20 Jul 2020 15:58:55 +0000 (08:58 -0700)]
Create test for wanted behavior

3 years agomanual_async_fn: take input lifetimes into account
Eduardo Broto [Sun, 2 Aug 2020 22:36:28 +0000 (00:36 +0200)]
manual_async_fn: take input lifetimes into account

The anonymous future returned from an `async fn` captures all input
lifetimes. This was not being taken into account.

See https://github.com/rust-lang/rfcs/blob/master/text/2394-async_await.md#lifetime-capture-in-the-anonymous-future

3 years agofix typos
liuzhenyu [Sun, 2 Aug 2020 15:20:00 +0000 (23:20 +0800)]
fix typos

3 years agofmt
Philipp Hansch [Sun, 2 Aug 2020 12:22:54 +0000 (14:22 +0200)]
fmt

3 years agoRemove old Symbol reexport
Philipp Hansch [Sun, 2 Aug 2020 09:25:03 +0000 (11:25 +0200)]
Remove old Symbol reexport

I couldn't really tell what it was meant to improve. It seems more clear
without the renaming to `Name`?

3 years agoRename HAIR to THIR (Typed HIR).
Valentin Lazureanu [Tue, 21 Jul 2020 09:09:27 +0000 (09:09 +0000)]
Rename HAIR to THIR (Typed HIR).

3 years agoReview fixes
Dmitry Murzin [Thu, 30 Jul 2020 19:20:31 +0000 (22:20 +0300)]
Review fixes

3 years agoHandle mapping to Option in `map_flatten` lint
Dmitry Murzin [Sat, 25 Jul 2020 17:04:59 +0000 (20:04 +0300)]
Handle mapping to Option in `map_flatten` lint

3 years agotypo fix
Christoph Walcher [Wed, 29 Jul 2020 14:10:15 +0000 (16:10 +0200)]
typo fix

3 years agoAuto merge of #5843 - dima74:iter_skip_next.add-suggestion, r=phansch
bors [Wed, 29 Jul 2020 06:10:55 +0000 (06:10 +0000)]
Auto merge of #5843 - dima74:iter_skip_next.add-suggestion, r=phansch

Add suggestion for `iter_skip_next` lint

changelog: Add suggestion for [`iter_skip_next`](https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next) lint

3 years agoAuto merge of #5840 - flip1995:basics, r=phansch
bors [Wed, 29 Jul 2020 05:43:02 +0000 (05:43 +0000)]
Auto merge of #5840 - flip1995:basics, r=phansch

Basic instruction for new contributors

While answering a few questions to @AB1908, I realized, that our documentation could use some love. Especially the "Getting Started" part for new contributors. So I wrote together some instruction on how to get the toolchain and how to build and test Clippy.

[Rendered](https://github.com/flip1995/rust-clippy/blob/basics/doc/basics.md)

r? @phansch

changelog: none

3 years agoAuto merge of #5853 - flip1995:rustup, r=flip1995
bors [Wed, 29 Jul 2020 01:18:35 +0000 (01:18 +0000)]
Auto merge of #5853 - flip1995:rustup, r=flip1995

Rustup

r? @ghost

changelog: none

3 years agoMerge remote-tracking branch 'upstream/master' into rustup
flip1995 [Wed, 29 Jul 2020 01:17:23 +0000 (03:17 +0200)]
Merge remote-tracking branch 'upstream/master' into rustup

3 years agoLint duplicate methods of trait bounds
Christoph Walcher [Tue, 28 Jul 2020 14:23:47 +0000 (16:23 +0200)]
Lint duplicate methods of trait bounds

Fixes #5777

3 years agoclippy
Bastian Kauschke [Mon, 27 Jul 2020 19:17:28 +0000 (21:17 +0200)]
clippy

3 years agointroduce PredicateAtom
Bastian Kauschke [Wed, 8 Jul 2020 22:35:55 +0000 (00:35 +0200)]
introduce PredicateAtom

3 years agothis might be unqualified, but at least it's now quantified
Bastian Kauschke [Wed, 24 Jun 2020 15:40:28 +0000 (17:40 +0200)]
this might be unqualified, but at least it's now quantified

3 years agoclippy
Bastian Kauschke [Fri, 19 Jun 2020 08:22:25 +0000 (10:22 +0200)]
clippy

3 years agoAuto merge of #5850 - giraffate:chmod_utils_ats_utils, r=flip1995
bors [Mon, 27 Jul 2020 15:27:01 +0000 (15:27 +0000)]
Auto merge of #5850 - giraffate:chmod_utils_ats_utils, r=flip1995

Small fix: `chmod` 644 `clippy_lints/src/utils/ast_utils.rs`

changelog: none

It looks like `clippy_lints/src/utils/ast_utils.rs` doesn't have to be an executable file.

3 years ago`chmod` 644 `clippy_lints/src/utils/ast_utils.rs`
Takayuki Nakata [Mon, 27 Jul 2020 13:27:54 +0000 (22:27 +0900)]
`chmod` 644 `clippy_lints/src/utils/ast_utils.rs`

3 years agorun cargo dev update_lints
Ryan1729 [Mon, 27 Jul 2020 06:31:09 +0000 (00:31 -0600)]
run cargo dev update_lints

3 years agofill in lint description for DERIVE_ORD_XOR_PARTIAL_ORD
Ryan1729 [Mon, 27 Jul 2020 06:22:39 +0000 (00:22 -0600)]
fill in lint description for DERIVE_ORD_XOR_PARTIAL_ORD

3 years agos/pord/partial_ord/ to fix dogfood failure
Ryan1729 [Mon, 27 Jul 2020 06:21:11 +0000 (00:21 -0600)]
s/pord/partial_ord/ to fix dogfood failure

3 years agorun cargo dev fmt and fix overly long line
Ryan1729 [Mon, 27 Jul 2020 05:30:00 +0000 (23:30 -0600)]
run cargo dev fmt and fix overly long line

3 years agoadd description for derive_ord_xor_partial_ord
Ryan1729 [Mon, 27 Jul 2020 05:15:36 +0000 (23:15 -0600)]
add description for derive_ord_xor_partial_ord

3 years agoremove is_local check since getting the def_id directly makes it unnecessary
Ryan1729 [Mon, 27 Jul 2020 05:06:36 +0000 (23:06 -0600)]
remove is_local check since getting the def_id directly makes it unnecessary

3 years agoupdate reference since we see the expected four errors
Ryan1729 [Mon, 27 Jul 2020 05:04:25 +0000 (23:04 -0600)]
update reference since we see the expected four errors

3 years agouse get_trait_def_id to check for Ord trait
Ryan1729 [Mon, 27 Jul 2020 05:04:04 +0000 (23:04 -0600)]
use get_trait_def_id to check for Ord trait

3 years agoinitial implementation based on code for `derive_hash_xor_partial_eq` which is showin...
Ryan1729 [Mon, 27 Jul 2020 04:04:46 +0000 (22:04 -0600)]
initial implementation based on code for `derive_hash_xor_partial_eq` which is showing one error when there should be four

3 years agoadd test for derive_ord_xor_partial_ord based on test for derive_hash_xor_partial_eq
Ryan1729 [Mon, 27 Jul 2020 03:36:50 +0000 (21:36 -0600)]
add test for derive_ord_xor_partial_ord based on test for derive_hash_xor_partial_eq

3 years agomove derive_ord_xor_partial_ord into derive mod so we can reuse derive_hash_xor_parti...
Ryan1729 [Mon, 27 Jul 2020 02:54:04 +0000 (20:54 -0600)]
move derive_ord_xor_partial_ord into derive mod so we can reuse derive_hash_xor_partial_eq code later

3 years agorun cargo dev new_lint
Ryan1729 [Mon, 27 Jul 2020 02:40:57 +0000 (20:40 -0600)]
run cargo dev new_lint

specifically:
cargo dev new_lint --name derive_ord_xor_partial_ord --category correctness --pass late

3 years agoAuto merge of #5820 - ThibsG:FixSuspiciousArithmeticImpl, r=flip1995
bors [Sun, 26 Jul 2020 19:48:17 +0000 (19:48 +0000)]
Auto merge of #5820 - ThibsG:FixSuspiciousArithmeticImpl, r=flip1995

Fix FP for `suspicious_arithmetic_impl` from `suspicious_trait_impl` …

As discussed in #3215, the `suspicious_trait_impl` lint causes too many false positives, as it is complex to find out if binary operations are suspicious or not.

This PR restricts the number of binary operations to at most one, otherwise we don't lint.
This can be seen as very conservative, but at least FP can be reduced to bare minimum.

Fixes: #3215
changelog: limit the `suspicious_arithmetic_impl` lint to one binop, to avoid many FPs

3 years agoMerge commit 'da5a6fb1b65ec6581a67e942a3850f6bc15a552c' into clippyup
flip1995 [Sun, 26 Jul 2020 19:07:07 +0000 (21:07 +0200)]
Merge commit 'da5a6fb1b65ec6581a67e942a3850f6bc15a552c' into clippyup

3 years agoAuto merge of #5845 - giraffate:fix_fp_useless_conversion, r=yaahc
bors [Sun, 26 Jul 2020 17:50:54 +0000 (17:50 +0000)]
Auto merge of #5845 - giraffate:fix_fp_useless_conversion, r=yaahc

Fix FP `useless_conversion`

Fix #5833.

changelog: none

3 years agoFix FP `useless_conversion`
Takayuki Nakata [Sat, 25 Jul 2020 14:58:22 +0000 (23:58 +0900)]
Fix FP `useless_conversion`

Fix #5833.

3 years agoAdd suggestion for `iter_skip_next` lint
Dmitry Murzin [Sat, 25 Jul 2020 14:09:44 +0000 (17:09 +0300)]
Add suggestion for `iter_skip_next` lint

3 years agoAddress review comments
flip1995 [Fri, 24 Jul 2020 21:17:52 +0000 (23:17 +0200)]
Address review comments

3 years agoMention lint naming guidelines earlier
flip1995 [Fri, 24 Jul 2020 15:48:43 +0000 (17:48 +0200)]
Mention lint naming guidelines earlier

3 years agoAuto merge of #5829 - JohnTitor:epsilon, r=flip1995
bors [Thu, 23 Jul 2020 18:48:35 +0000 (18:48 +0000)]
Auto merge of #5829 - JohnTitor:epsilon, r=flip1995

Use `(std::)f64::EPSILON` in the examples as suggested in the lints

`float_cmp(_const)` suggests using `{f32|f64}::EPSILON` and it'd be great if the docs mentioned it.

changelog: none

3 years agoAuto merge of #5832 - rust-lang:update_usage_instr, r=Manishearth
bors [Thu, 23 Jul 2020 18:15:08 +0000 (18:15 +0000)]
Auto merge of #5832 - rust-lang:update_usage_instr, r=Manishearth

Update Usage section of README.md

Fixes #5826

changelog: none

3 years agoUpdate Usage section of README.md
Philipp Krones [Wed, 22 Jul 2020 16:07:33 +0000 (18:07 +0200)]
Update Usage section of README.md

3 years agoAdd documentation for basic Clippy hacking
flip1995 [Wed, 22 Jul 2020 14:39:58 +0000 (16:39 +0200)]
Add documentation for basic Clippy hacking

3 years agoAuto merge of #5830 - flip1995:rustup, r=flip1995
bors [Tue, 21 Jul 2020 22:10:04 +0000 (22:10 +0000)]
Auto merge of #5830 - flip1995:rustup, r=flip1995

trait_sel: only test predicates w/ no substs

r? @ghost
changelog: none

3 years agoUse `(std::)f64::EPSILON` in the examples as suggested in the lints
Yuki Okushi [Tue, 21 Jul 2020 20:23:55 +0000 (05:23 +0900)]
Use `(std::)f64::EPSILON` in the examples as suggested in the lints

3 years agotrait_sel: only test predicates w/ no substs
David Wood [Mon, 22 Jun 2020 12:22:45 +0000 (13:22 +0100)]
trait_sel: only test predicates w/ no substs

This commit modifies the `substitute_normalize_and_test_predicates`
query, renaming it to `impossible_predicates` and only checking
predicates which do not require substs. By making this change,
polymorphization doesn't have to explicitly support vtables.

Signed-off-by: David Wood <david@davidtw.co>
3 years agoAuto merge of #5824 - tmiasko:manually-drop-clone, r=Manishearth
bors [Mon, 20 Jul 2020 01:36:21 +0000 (01:36 +0000)]
Auto merge of #5824 - tmiasko:manually-drop-clone, r=Manishearth

Ignore not really redundant clones of ManuallyDrop

"Redundant" clones of `ManuallyDrop` are sometimes used for the side effect of
invoking the clone, without running the drop implementation of the inner type.
In other words, they aren't really redundant. For example, futures-rs crate:

```rust
#[allow(clippy::redundant_clone)] // The clone here isn't actually redundant.
unsafe fn increase_refcount<T: ArcWake>(data: *const ()) {
    // Retain Arc, but don't touch refcount by wrapping in ManuallyDrop
    let arc = mem::ManuallyDrop::new(Arc::<T>::from_raw(data as *const T));
    // Now increase refcount, but don't drop new refcount either
    let _arc_clone: mem::ManuallyDrop<_> = arc.clone();
}
```

changelog: Ignore redundant clone lint for ManuallyDrop.

3 years agoIgnore not really redundant clones of ManuallyDrop
Tomasz Miąsko [Mon, 20 Jul 2020 00:00:00 +0000 (00:00 +0000)]
Ignore not really redundant clones of ManuallyDrop

"Redundant" clones of `ManuallyDrop` are sometimes used for the side effect of
invoking the clone, without running the drop implementation of the inner type.
In other words, they aren't really redundant. For example, futures-rs crate:

```rust
#[allow(clippy::redundant_clone)] // The clone here isn't actually redundant.
unsafe fn increase_refcount<T: ArcWake>(data: *const ()) {
    // Retain Arc, but don't touch refcount by wrapping in ManuallyDrop
    let arc = mem::ManuallyDrop::new(Arc::<T>::from_raw(data as *const T));
    // Now increase refcount, but don't drop new refcount either
    let _arc_clone: mem::ManuallyDrop<_> = arc.clone();
}
```

Ignore redundant clone lint for ManuallyDrop.

3 years agoAuto merge of #5800 - montrivo:bugfix/redundant_closure, r=matthiaskrgr
bors [Sun, 19 Jul 2020 22:54:29 +0000 (22:54 +0000)]
Auto merge of #5800 - montrivo:bugfix/redundant_closure, r=matthiaskrgr

redundant_closure_call - don't lint when used more than once

Fixes #3354.

changelog: fix redundant_closure_call false positive when closure called more than once

3 years agoredundant_closure_call - pr review
Tim Nielens [Sun, 19 Jul 2020 22:36:31 +0000 (00:36 +0200)]
redundant_closure_call - pr review

3 years agoredundant_closure_call - add support for shadowed closures
Tim Nielens [Sun, 19 Jul 2020 09:47:32 +0000 (11:47 +0200)]
redundant_closure_call - add support for shadowed closures

3 years agoredundant_closure_call - extract lint from misc_early.rs, adapt to LatePass
Tim Nielens [Sat, 18 Jul 2020 22:33:54 +0000 (00:33 +0200)]
redundant_closure_call - extract lint from misc_early.rs, adapt to LatePass

3 years agoredundant_closure_call - don't lint when used more than once
Tim Nielens [Tue, 14 Jul 2020 18:27:25 +0000 (20:27 +0200)]
redundant_closure_call - don't lint when used more than once

3 years agoFix FP for `suspicious_arithmetic_impl` from `suspicious_trait_impl` lint
ThibsG [Sat, 18 Jul 2020 21:59:34 +0000 (23:59 +0200)]
Fix FP for `suspicious_arithmetic_impl` from `suspicious_trait_impl` lint

4 years agoAuto merge of #5815 - JarredAllen:redundant_pattern_bugfix, r=flip1995
bors [Sat, 18 Jul 2020 14:43:36 +0000 (14:43 +0000)]
Auto merge of #5815 - JarredAllen:redundant_pattern_bugfix, r=flip1995

Redundant pattern bugfix

changelog: Fixes the bug reported #5766

4 years agoAuto merge of #5818 - flip1995:rustup, r=flip1995
bors [Sat, 18 Jul 2020 13:11:03 +0000 (13:11 +0000)]
Auto merge of #5818 - flip1995:rustup, r=flip1995

Rename TypeckTables to TypeckResults.

r? @ghost

changelog: none

4 years agoMerge remote-tracking branch 'upstream/master' into rustup
flip1995 [Sat, 18 Jul 2020 13:06:44 +0000 (15:06 +0200)]
Merge remote-tracking branch 'upstream/master' into rustup

4 years agoAuto merge of #5817 - flip1995:rustup, r=flip1995
bors [Fri, 17 Jul 2020 19:41:39 +0000 (19:41 +0000)]
Auto merge of #5817 - flip1995:rustup, r=flip1995

Rustup

r? @ghost

Preparation for emergency Clippyup to fix an ICE #5816

changelog: none

4 years agoFix sync fallout (fmt)
flip1995 [Fri, 17 Jul 2020 19:39:05 +0000 (21:39 +0200)]
Fix sync fallout (fmt)

4 years agoFix bug in lint
JarredAllen [Fri, 17 Jul 2020 17:40:01 +0000 (10:40 -0700)]
Fix bug in lint

4 years agoAdd test for correct behavior
JarredAllen [Fri, 17 Jul 2020 16:27:43 +0000 (09:27 -0700)]
Add test for correct behavior

4 years agoAuto merge of #5814 - giraffate:fix_typo, r=flip1995
bors [Fri, 17 Jul 2020 14:33:05 +0000 (14:33 +0000)]
Auto merge of #5814 - giraffate:fix_typo, r=flip1995

Fix typo

changelog: none

4 years agoFix typo
Takayuki Nakata [Fri, 17 Jul 2020 13:51:57 +0000 (22:51 +0900)]
Fix typo

4 years agoRename TypeckTables to TypeckResults.
Valentin Lazureanu [Fri, 17 Jul 2020 08:47:04 +0000 (08:47 +0000)]
Rename TypeckTables to TypeckResults.

4 years agoAuto merge of #5811 - JarredAllen:panic_multiple_args, r=phansch
bors [Fri, 17 Jul 2020 06:41:20 +0000 (06:41 +0000)]
Auto merge of #5811 - JarredAllen:panic_multiple_args, r=phansch

Panic multiple args

changelog: Fixes bug with `panic` lint reported in #5767. I also did the same changes to the lints for `todo`, `unimplemented` and `unreachable`, so those lints should now also detect calls to those macros with a message.

4 years agoAuto merge of #5810 - matthiaskrgr:typos_2, r=Manishearth
bors [Fri, 17 Jul 2020 02:08:22 +0000 (02:08 +0000)]
Auto merge of #5810 - matthiaskrgr:typos_2, r=Manishearth

fix typos (found by codespell)

changelog: none

4 years agofix typos (found by codespell)
Matthias Krüger [Thu, 16 Jul 2020 23:58:41 +0000 (01:58 +0200)]
fix typos (found by codespell)

4 years agoClean up dogfood fallout
JarredAllen [Thu, 16 Jul 2020 23:58:21 +0000 (16:58 -0700)]
Clean up dogfood fallout

4 years agoEnable detecting multiple-argument panics
JarredAllen [Thu, 16 Jul 2020 23:51:12 +0000 (16:51 -0700)]
Enable detecting multiple-argument panics

4 years agoAvoid storing `SymbolStr` in a struct.
Nicholas Nethercote [Mon, 13 Jul 2020 06:45:35 +0000 (16:45 +1000)]
Avoid storing `SymbolStr` in a struct.

It's intended only for very temporary use.

4 years agoAuto merge of #5807 - flip1995:changelog, r=yaahc
bors [Thu, 16 Jul 2020 19:38:57 +0000 (19:38 +0000)]
Auto merge of #5807 - flip1995:changelog, r=yaahc

Changelog

[Rendered](https://github.com/flip1995/rust-clippy/blob/changelog/CHANGELOG.md)

changelog: none

4 years agoAuto merge of #5806 - flip1995:deploy_beta_fix, r=phansch
bors [Thu, 16 Jul 2020 19:13:17 +0000 (19:13 +0000)]
Auto merge of #5806 - flip1995:deploy_beta_fix, r=phansch

Fix deploy script for beta deployment

Since the `beta/` directory already exists, we can't copy the complete `master` dir

changelog: none

4 years agoTypo: Change Log -> Changelog
flip1995 [Thu, 16 Jul 2020 13:40:13 +0000 (15:40 +0200)]
Typo: Change Log -> Changelog

4 years agoUpdate changelog to beta-1.46
flip1995 [Thu, 16 Jul 2020 13:34:41 +0000 (15:34 +0200)]
Update changelog to beta-1.46