rust/tests
bors c9fdeef643 Auto merge of #6078 - ebroto:unnecessary_sort_by_take_2, r=phansch
unnecessary sort by: avoid dereferencing the suggested closure parameter

This change tries to simplify the solution for problematic cases but is less restrictive than  #6006.

* We can't dereference shared references to non-Copy types, so the new suggestion does not do that. Note that this implies that the suggested closure parameter will be a reference.
* We can't take a reference to the closure parameter in the returned key, so we don't lint in those cases. This can happen either because the key borrows from the parameter (e.g. `|a| a.borrows()`), or because we suggest `|a| Reverse(a)`. If we did we would hit this error:
```
error: lifetime may not live long enough
  --> /home/ebroto/src/ebroto-clippy/tests/ui/unnecessary_sort_by.fixed:19:25
   |
19 |     vec.sort_by_key(|b| Reverse(b));
   |                      -- ^^^^^^^^^^ returning this value requires that `'1` must outlive `'2`
   |                      ||
   |                      |return type of closure is Reverse<&'2 isize>
   |                      has type `&'1 isize`

error: aborting due to previous error
```

Note that Clippy does not currently have the (MIR-based) machinery necessary to check that what is borrowed is actually the closure parameter.

changelog: [`unnecessary_sort_by`]: avoid dereferencing the suggested closure parameter

Fixes #6001
2020-10-06 06:59:33 +00:00
..
auxiliary
cargo Use current_dir instead of cargo_metadata 2020-02-10 16:42:50 +01:00
ui Auto merge of #6078 - ebroto:unnecessary_sort_by_take_2, r=phansch 2020-10-06 06:59:33 +00:00
ui-cargo Merge commit '2ca58e7dda4a9eb142599638c59dc04d15961175' into clippyup 2020-07-14 14:59:59 +02:00
ui-toml update error message, refactor disallowed_method 2020-09-25 11:09:04 -05:00
compile-test.rs Add emit=metadata to UI tests build flags 2020-09-25 15:20:04 +02:00
dogfood.rs Fix error E0460 when compiled on Rustc repo 2020-02-09 19:02:27 +07:00
fmt.rs Merge commit '3d0b0e66afdfaa519d8855b338b35b4605775945' into clippyup 2020-08-28 18:43:25 +02:00
integration.rs Explain panic on E0463 in integration tests 2020-04-13 22:12:57 +02:00
missing-test-files.rs
versioncheck.rs