patch 8.2.0699: Vim9: not all errors tested
Problem: Vim9: not all errors tested.
Solution: Add test for deleted function. Bail out on first error.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 386b849..27ad04b 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -432,6 +432,7 @@
{
typval_T argvars[MAX_FUNC_ARGS];
int idx;
+ int called_emsg_before = called_emsg;
if (call_prepare(argcount, argvars, ectx) == FAIL)
return FAIL;
@@ -442,6 +443,9 @@
// Clear the arguments.
for (idx = 0; idx < argcount; ++idx)
clear_tv(&argvars[idx]);
+
+ if (called_emsg != called_emsg_before)
+ return FAIL;
return OK;
}
@@ -549,7 +553,8 @@
if (name == NULL || call_by_name(name, argcount, ectx, NULL) == FAIL)
{
if (called_emsg == called_emsg_before)
- semsg(_(e_unknownfunc), name);
+ semsg(_(e_unknownfunc),
+ name == NULL ? (char_u *)"[unknown]" : name);
return FAIL;
}
return OK;