Problem: Confusing error for missing key.
Solution: Use the actualy key for the error. (closes #9241)
return FAIL;
}
- item = dict_find(rettv->vval.v_dict, key, (int)keylen);
+ item = dict_find(rettv->vval.v_dict, key, keylen);
- if (item == NULL && verbose)
- semsg(_(e_dictkey), key);
if (item == NULL)
+ {
+ if (verbose)
+ {
+ if (keylen > 0)
+ key[keylen] = NUL;
+ semsg(_(e_dictkey), key);
+ }
return FAIL;
+ }
copy_tv(&item->di_tv, &tmp);
clear_tv(rettv);
END
call CheckLegacyAndVim9Failure(lines, 'E716:')
+ let lines =<< trim END
+ let d = {'a-b': 55}
+ echo d.a-b
+ END
+ call CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
+
+ let lines =<< trim END
+ vim9script
+ var d = {'a-b': 55}
+ echo d.a-b
+ END
+ call CheckScriptFailure(lines, 'E716: Key not present in Dictionary: "a"')
+
+ let lines =<< trim END
+ var d = {'a-b': 55}
+ echo d.a-b
+ END
+ call CheckDefFailure(lines, 'E1004: White space required before and after ''-''')
+
let lines =<< trim END
let d = {1: 'a', 3: 'c'}
call remove(d, [])
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 3695,
/**/
3694,
/**/