aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval.c6
-rw-r--r--test/functional/eval/null_spec.lua3
2 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 10dbf208ea..357ca52a3d 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -6544,11 +6544,11 @@ static void f_abs(typval_T *argvars, typval_T *rettv, FunPtr fptr)
static void f_add(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
list_T *l;
-
rettv->vval.v_number = 1; /* Default: Failed */
if (argvars[0].v_type == VAR_LIST) {
- if ((l = argvars[0].vval.v_list) != NULL
- && !tv_check_lock(tv_list_locked(l), "add() argument", TV_TRANSLATE)) {
+ if (!tv_check_lock(tv_list_locked((l = argvars[0].vval.v_list)),
+ N_("add() argument"),
+ TV_TRANSLATE)) {
tv_list_append_tv(l, &argvars[1]);
tv_copy(&argvars[0], rettv);
}
diff --git a/test/functional/eval/null_spec.lua b/test/functional/eval/null_spec.lua
index 14b2d964d5..afe999e1fa 100644
--- a/test/functional/eval/null_spec.lua
+++ b/test/functional/eval/null_spec.lua
@@ -101,7 +101,8 @@ describe('NULL', function()
null_expr_test('is accepted as an empty list by writefile()',
('[writefile(L, "%s"), readfile("%s")]'):format(tmpfname, tmpfname),
0, {0, {}})
- null_expr_test('does not crash add()', 'add(L, 0)', 0, 1)
+ null_expr_test('makes add() error out', 'add(L, 0)',
+ 'E742: Cannot change value of add() argument', 1)
null_expr_test('makes insert() error out', 'insert(L, 1)',
'E742: Cannot change value of insert() argument', 0)
null_expr_test('does not crash remove()', 'remove(L, 0)',