From f3f6ca3ba1a00e810b27afccd12213c452415083 Mon Sep 17 00:00:00 2001 From: stratact <stratact1@gmail.com> Date: Mon, 2 Jul 2018 02:28:23 -0700 Subject: [PATCH] Implement support for hash map entry insertions --- src/lib/shell/assignments.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/shell/assignments.rs b/src/lib/shell/assignments.rs index dd3ed026..57cf9ac1 100644 --- a/src/lib/shell/assignments.rs +++ b/src/lib/shell/assignments.rs @@ -4,6 +4,7 @@ use super::{ use itoa; use lexers::assignments::{Operator, Primitive}; use parser::assignments::*; +use smallstring::SmallString; use smallvec::SmallVec; use shell::{ history::ShellHistory, @@ -290,9 +291,7 @@ impl VariableStore for Shell { Ok(VariableType::Str(ref index)) => { match self.variables.lookup_any_mut(key.name) { Some(VariableType::HashMap(map)) => { - if let Some(VariableType::Str(val)) = map.get_mut(&**index) { - *val = value; - } + map.entry(SmallString::from_str(index)).or_insert(VariableType::Str(value)); } Some(VariableType::Array(array)) => { let index_num = match index.parse::<usize>() { -- GitLab