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