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