| #![warn(clippy::zero_sized_map_values)] |
| use std::collections::HashMap; |
| |
| const CONST_OK: Option<HashMap<String, usize>> = None; |
| const CONST_NOT_OK: Option<HashMap<String, ()>> = None; |
| //~^ ERROR: map with zero-sized value type |
| |
| static STATIC_OK: Option<HashMap<String, usize>> = None; |
| static STATIC_NOT_OK: Option<HashMap<String, ()>> = None; |
| //~^ ERROR: map with zero-sized value type |
| |
| type OkMap = HashMap<String, usize>; |
| type NotOkMap = HashMap<String, ()>; |
| //~^ ERROR: map with zero-sized value type |
| |
| enum TestEnum { |
| Ok(HashMap<String, usize>), |
| NotOk(HashMap<String, ()>), |
| //~^ ERROR: map with zero-sized value type |
| } |
| |
| struct Test { |
| ok: HashMap<String, usize>, |
| not_ok: HashMap<String, ()>, |
| //~^ ERROR: map with zero-sized value type |
| also_not_ok: Vec<HashMap<usize, ()>>, |
| //~^ ERROR: map with zero-sized value type |
| } |
| |
| trait TestTrait { |
| type Output; |
| |
| fn produce_output() -> Self::Output; |
| |
| fn weird_map(&self, map: HashMap<usize, ()>); |
| //~^ ERROR: map with zero-sized value type |
| } |
| |
| impl Test { |
| fn ok(&self) -> HashMap<String, usize> { |
| todo!() |
| } |
| |
| fn not_ok(&self) -> HashMap<String, ()> { |
| //~^ ERROR: map with zero-sized value type |
| todo!() |
| } |
| } |
| |
| impl TestTrait for Test { |
| type Output = HashMap<String, ()>; |
| |
| fn produce_output() -> Self::Output { |
| todo!(); |
| } |
| |
| fn weird_map(&self, map: HashMap<usize, ()>) { |
| todo!(); |
| } |
| } |
| |
| fn test(map: HashMap<String, ()>, key: &str) -> HashMap<String, ()> { |
| //~^ ERROR: map with zero-sized value type |
| //~| ERROR: map with zero-sized value type |
| todo!(); |
| } |
| |
| fn test2(map: HashMap<String, usize>, key: &str) -> HashMap<String, usize> { |
| todo!(); |
| } |
| |
| fn main() { |
| let _: HashMap<String, ()> = HashMap::new(); |
| //~^ ERROR: map with zero-sized value type |
| //~| ERROR: map with zero-sized value type |
| let _: HashMap<String, usize> = HashMap::new(); |
| |
| let _: HashMap<_, _> = std::iter::empty::<(String, ())>().collect(); |
| //~^ ERROR: map with zero-sized value type |
| } |