diff options
| author | bors <bors@rust-lang.org> | 2022-09-16 08:44:58 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-09-16 08:44:58 +0000 |
| commit | 481dc2e81cf6e5b68095a6baa5d005a2edf59e01 (patch) | |
| tree | 03a5c5e82c663d9998492a5d4dd5103ca6ecd0f7 /src | |
| parent | 56a8ef4dbe13a537e18ad6cdb0e1dabd25a1250a (diff) | |
| parent | c6219b2ece469a17e3c6d7e28e0acbd6ce5c9d44 (diff) | |
| download | rust-481dc2e81cf6e5b68095a6baa5d005a2edf59e01.tar.gz rust-481dc2e81cf6e5b68095a6baa5d005a2edf59e01.zip | |
Auto merge of #9409 - DesmondWillowbrook:iter_kv_map, r=xFrednet
Add `iter_kv_map` lint fixes #9376 | before | after | | -------------- | ------------------------- | | `hmap.iter().map(\|(key, _)\| key)` | `hmap.keys()` | | `hmap.iter().map(\|(_, v)\| v + 2)` | `hmap.values().map(\|v\| v + 2)` | | `hmap.into_iter().map(\|(key, _)\| key)` | `hmap.into_keys()` | Is `MachineApplicable` changelog: [`iter_kv_map`]: added lint
Diffstat (limited to 'src')
| -rw-r--r-- | src/docs.rs | 1 | ||||
| -rw-r--r-- | src/docs/iter_kv_map.txt | 22 |
2 files changed, 23 insertions, 0 deletions
diff --git a/src/docs.rs b/src/docs.rs index 9f6f1fb4727..6c89b4dde37 100644 --- a/src/docs.rs +++ b/src/docs.rs @@ -221,6 +221,7 @@ docs! { "items_after_statements", "iter_cloned_collect", "iter_count", + "iter_kv_map", "iter_next_loop", "iter_next_slice", "iter_not_returning_iterator", diff --git a/src/docs/iter_kv_map.txt b/src/docs/iter_kv_map.txt new file mode 100644 index 00000000000..a063c8195ef --- /dev/null +++ b/src/docs/iter_kv_map.txt @@ -0,0 +1,22 @@ +### What it does + +Checks for iterating a map (`HashMap` or `BTreeMap`) and +ignoring either the keys or values. + +### Why is this bad? + +Readability. There are `keys` and `values` methods that +can be used to express that we only need the keys or the values. + +### Example + +``` +let map: HashMap<u32, u32> = HashMap::new(); +let values = map.iter().map(|(_, value)| value).collect::<Vec<_>>(); +``` + +Use instead: +``` +let map: HashMap<u32, u32> = HashMap::new(); +let values = map.values().collect::<Vec<_>>(); +``` \ No newline at end of file |
