Mercurial > vim
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) {