diff src/vim9execute.c @ 19295:2a63b7f5802a v8.2.0206

patch 8.2.0206: calling Vim9 function using default argument fails Commit: https://github.com/vim/vim/commit/26e117e9bcc09926d654b5993d61acde6b5749db Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 4 21:24:15 2020 +0100 patch 8.2.0206: calling Vim9 function using default argument fails Problem: Calling Vim9 function using default argument fails. Solution: Give an appropriate error. (closes https://github.com/vim/vim/issues/5572)
author Bram Moolenaar <Bram@vim.org>
date Tue, 04 Feb 2020 21:30:04 +0100
parents 9dc843109c97
children 17dc6282f370
line wrap: on
line diff
--- a/src/vim9execute.c
+++ b/src/vim9execute.c
@@ -362,6 +362,7 @@ call_def_function(
     int		idx;
     int		ret = FAIL;
     dfunc_T	*dfunc;
+    int		optcount = ufunc_argcount(ufunc) - argc;
 
 // Get pointer to item in the stack.
 #define STACK_TV(idx) (((typval_T *)ectx.ec_stack.ga_data) + idx)
@@ -392,6 +393,12 @@ call_def_function(
     ectx.ec_frame = ectx.ec_stack.ga_len;
     initial_frame_ptr = ectx.ec_frame;
 
+// TODO: Put omitted argument default values on the stack.
+    if (optcount > 0)
+    {
+	emsg("optional arguments not implemented yet");
+	return FAIL;
+    }
     // dummy frame entries
     for (idx = 0; idx < STACK_FRAME_SIZE; ++idx)
     {