dylint-various/lints/dashmap-ref/ui/main.rs
Marcel Müller ace01a2096 Write lint to check for dashmaps entries being held
Signed-off-by: Marcel Müller <neikos@neikos.email>
2025-03-04 14:57:46 +01:00

50 lines
1.2 KiB
Rust

#[expect(unused_must_use)]
fn main() {
held_across();
held_across_multiple();
dropped_before();
all_kinds();
}
async fn held_across() {
let map = dashmap::DashMap::<String, String>::default();
let reference = map.get("Hello");
std::future::pending::<()>().await;
println!("{reference:?}");
}
async fn held_across_multiple() {
let map = dashmap::DashMap::<String, String>::default();
let _reference = map.get("Hello");
std::future::pending::<()>().await;
std::future::pending::<()>().await;
}
async fn dropped_before() {
let map = dashmap::DashMap::<String, String>::default();
let _ = map.get("Hello");
std::future::pending::<()>().await;
}
async fn all_kinds() {
let map = dashmap::DashMap::<String, String>::default();
let _ref = map.get("Hello");
let _ref_mut = map.get_mut("Hello");
let _entry = map.entry("Hello".to_string());
let _opt_entry = map.try_entry("Hello".to_string());
let _iter_entry = map.iter();
let _iter_mut_entry = map.iter_mut();
let _direct_ref = map.get("Hello").unwrap();
let _direct_ref_mut = map.get_mut("Hello").unwrap();
std::future::pending::<()>().await;
}