\ '[string "vim chunk"]:1: string expected, got table')
endfunc
+def Vim9Test(Callback: func())
+ Callback()
+enddef
+
+func Test_call_lua_func_from_vim9_func()
+ " this only tests that Vim doesn't crash
+ lua << EOF
+vim.fn.Vim9Test(function () print('Hello') end)
+EOF
+endfunc
+
func Test_lua_funcref()
function I(x)
return a:x
{
int error;
+#ifdef FEAT_LUA
+ if (fp->uf_flags & FC_CFUNC)
+ {
+ cfunc_T cb = fp->uf_cb;
+
+ return (*cb)(argcount, argvars, rettv, fp->uf_cb_state);
+ }
+#endif
+
if (fp->uf_flags & FC_RANGE && funcexe->fe_doesrange != NULL)
*funcexe->fe_doesrange = TRUE;
error = check_user_func_argcount(fp, argcount);
if (fp != NULL && (fp->uf_flags & FC_DELETED))
error = FCERR_DELETED;
-#ifdef FEAT_LUA
- else if (fp != NULL && (fp->uf_flags & FC_CFUNC))
- {
- cfunc_T cb = fp->uf_cb;
-
- error = (*cb)(argcount, argvars, rettv, fp->uf_cb_state);
- }
-#endif
else if (fp != NULL)
{
if (funcexe->fe_argv_func != NULL)