4 #![allow(unused, clippy::needless_pass_by_value, clippy::collapsible_if)]
5 #![warn(clippy::map_entry)]
8 use std::collections::HashMap;
12 ($e:expr) => {{ $e }};
16 ($map:expr, $key:expr, $val:expr) => {
17 $map.insert($key, $val)
23 fn hash_map<K: Eq + Hash + Copy, V: Copy>(m: &mut HashMap<K, V>, m2: &mut HashMap<K, V>, k: K, k2: K, v: V, v2: V) {
25 if !m.contains_key(&k) {
29 // semicolon on insert, use or_insert_with(..)
30 if !m.contains_key(&k) {
38 // semicolon on if, use or_insert_with(..)
39 if !m.contains_key(&k) {
47 // early return, use if let
48 if !m.contains_key(&k) {
57 // use or_insert_with(..)
58 if !m.contains_key(&k) {
63 // semicolon on insert and match, use or_insert_with(..)
64 if !m.contains_key(&k) {
75 // one branch doesn't insert, use if let
76 if !m.contains_key(&k) {
86 if !m.contains_key(&k) {
112 // ok, insert in loop
113 if !m.contains_key(&k) {
119 // macro_expansion test, use or_insert(..)
120 if !m.contains_key(&m!(k)) {
121 m.insert(m!(k), m!(v));
124 // ok, map used before insertion
125 if !m.contains_key(&k) {
131 if !m.contains_key(&k) {
132 unsafe { asm!("nop") }
136 // ok, different keys.
137 if !m.contains_key(&k) {
141 // ok, different maps
142 if !m.contains_key(&k) {
146 // ok, insert in macro
147 if !m.contains_key(&k) {
151 // or_insert_with. Partial move of a local declared in the closure is ok.
152 if !m.contains_key(&k) {
153 let x = (String::new(), String::new());