patch 8.2.0625: Vim9: confusing error when calling unknown function
Problem: Vim9: confusing error when calling unknown function.
Solution: Give error while compiling.
diff --git a/src/vim9execute.c b/src/vim9execute.c
index 6c8b8c8..a98e7e3 100644
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -460,13 +460,20 @@
if (call_by_name(name, argcount, ectx, iptr) == FAIL
&& called_emsg == called_emsg_before)
{
- // "name" may be a variable that is a funcref or partial
- // if find variable
- // call_partial()
- // else
- // semsg(_(e_unknownfunc), name);
- emsg("call_eval_func(partial) not implemented yet");
- return FAIL;
+ dictitem_T *v;
+
+ v = find_var(name, NULL, FALSE);
+ if (v == NULL)
+ {
+ semsg(_(e_unknownfunc), name);
+ return FAIL;
+ }
+ if (v->di_tv.v_type != VAR_PARTIAL && v->di_tv.v_type != VAR_FUNC)
+ {
+ semsg(_(e_unknownfunc), name);
+ return FAIL;
+ }
+ return call_partial(&v->di_tv, argcount, ectx);
}
return OK;
}