diff options
Diffstat (limited to 'tests/ui/nll/process_or_insert_default.rs')
-rw-r--r-- | tests/ui/nll/process_or_insert_default.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/nll/process_or_insert_default.rs b/tests/ui/nll/process_or_insert_default.rs new file mode 100644 index 000000000..84ac9bbd0 --- /dev/null +++ b/tests/ui/nll/process_or_insert_default.rs @@ -0,0 +1,27 @@ +// run-pass + +use std::collections::HashMap; + +fn process_or_insert_default(map: &mut HashMap<usize, String>, key: usize) { + match map.get_mut(&key) { + Some(value) => { + process(value); + } + None => { + map.insert(key, "".to_string()); + } + } +} + +fn process(x: &str) { + assert_eq!(x, "Hello, world"); +} + +fn main() { + let map = &mut HashMap::new(); + map.insert(22, format!("Hello, world")); + map.insert(44, format!("Goodbye, world")); + process_or_insert_default(map, 22); + process_or_insert_default(map, 66); + assert_eq!(map[&66], ""); +} |