# HG changeset patch # User Bram Moolenaar # Date 1622912403 -7200 # Node ID 30095f94d081487861b8a1c68f92f680b0b12b05 # Parent d1eb44a8cdfb07a1f352e05bb13d7152138e11dd patch 8.2.2943: Vim9: check for argument count ignores default values Commit: https://github.com/vim/vim/commit/c6d71532dda0b3a244907bb5d1826f9340f7571d Author: Bram Moolenaar Date: Sat Jun 5 18:49:38 2021 +0200 patch 8.2.2943: Vim9: check for argument count ignores default values Problem: Vim9: check for argument count ignores default values. Solution: Take default argument values into account. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2943, +/**/ 2942, /**/ 2941, diff --git a/src/vim9execute.c b/src/vim9execute.c --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -4234,7 +4234,8 @@ call_def_function( semsg(_(e_nr_arguments_too_many), idx); goto failed_early; } - else if (idx < 0) + idx = argc - ufunc->uf_args.ga_len + ufunc->uf_def_args.ga_len; + if (idx < 0) { if (idx == -1) emsg(_(e_one_argument_too_few));