summaryrefslogtreecommitdiff
path: root/src/dict.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dict.c')
-rw-r--r--src/dict.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/dict.c b/src/dict.c
index 2ff4ae37f..1a928a35f 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -826,7 +826,8 @@ eval_dict(char_u **arg, typval_T *rettv, int evaluate, int literal)
if (**arg != ':')
{
- semsg(_(e_missing_dict_colon), *arg);
+ if (evaluate)
+ semsg(_(e_missing_dict_colon), *arg);
clear_tv(&tvkey);
goto failret;
}
@@ -853,7 +854,8 @@ eval_dict(char_u **arg, typval_T *rettv, int evaluate, int literal)
item = dict_find(d, key, -1);
if (item != NULL)
{
- semsg(_(e_duplicate_key), key);
+ if (evaluate)
+ semsg(_(e_duplicate_key), key);
clear_tv(&tvkey);
clear_tv(&tv);
goto failret;
@@ -873,7 +875,8 @@ eval_dict(char_u **arg, typval_T *rettv, int evaluate, int literal)
break;
if (**arg != ',')
{
- semsg(_(e_missing_dict_comma), *arg);
+ if (evaluate)
+ semsg(_(e_missing_dict_comma), *arg);
goto failret;
}
*arg = skipwhite(*arg + 1);
@@ -881,7 +884,8 @@ eval_dict(char_u **arg, typval_T *rettv, int evaluate, int literal)
if (**arg != '}')
{
- semsg(_(e_missing_dict_end), *arg);
+ if (evaluate)
+ semsg(_(e_missing_dict_end), *arg);
failret:
if (d != NULL)
dict_free(d);