diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-09-18 22:42:00 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-09-18 22:42:00 +0200 |
commit | b185a4074515f576b420cfc7a5a07f840cf6b51f (patch) | |
tree | e282afc4297490873aa89ef1bfea9b5b394e6b9e | |
parent | 2bbada811625ee53c7bcdf689dbf409e9975ea8f (diff) | |
download | vim-git-b185a4074515f576b420cfc7a5a07f840cf6b51f.tar.gz |
patch 8.2.1708: Vim9: error message for function has unpritable charactersv8.2.1708
Problem: Vim9: error message for function has unpritable characters.
Solution: use printable_func_name(). (closes #6965)
-rw-r--r-- | src/testdir/test_vim9_func.vim | 44 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 4 |
3 files changed, 48 insertions, 2 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim index 8c2349c34..fe7bf69b8 100644 --- a/src/testdir/test_vim9_func.vim +++ b/src/testdir/test_vim9_func.vim @@ -280,6 +280,50 @@ def Test_call_wrong_args() Func([]) END CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 5) + + lines =<< trim END + vim9script + def FuncOne(nr: number) + echo nr + enddef + def FuncTwo() + FuncOne() + enddef + defcompile + END + writefile(lines, 'Xscript') + let didCatch = false + try + source Xscript + catch + assert_match('E119: Not enough arguments for function: <SNR>\d\+_FuncOne', v:exception) + assert_match('Xscript\[8\]..function <SNR>\d\+_FuncTwo, line 1', v:throwpoint) + didCatch = true + endtry + assert_true(didCatch) + + lines =<< trim END + vim9script + def FuncOne(nr: number) + echo nr + enddef + def FuncTwo() + FuncOne(1, 2) + enddef + defcompile + END + writefile(lines, 'Xscript') + didCatch = false + try + source Xscript + catch + assert_match('E118: Too many arguments for function: <SNR>\d\+_FuncOne', v:exception) + assert_match('Xscript\[8\]..function <SNR>\d\+_FuncTwo, line 1', v:throwpoint) + didCatch = true + endtry + assert_true(didCatch) + + delete('Xscript') enddef " Default arg and varargs diff --git a/src/version.c b/src/version.c index fd880f5e1..2701c79d7 100644 --- 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 */ /**/ + 1708, +/**/ 1707, /**/ 1706, diff --git a/src/vim9compile.c b/src/vim9compile.c index 338fbc639..a70ed5a44 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -1406,12 +1406,12 @@ generate_CALL(cctx_T *cctx, ufunc_T *ufunc, int pushed_argcount) RETURN_OK_IF_SKIP(cctx); if (argcount > regular_args && !has_varargs(ufunc)) { - semsg(_(e_toomanyarg), ufunc->uf_name); + semsg(_(e_toomanyarg), printable_func_name(ufunc)); return FAIL; } if (argcount < regular_args - ufunc->uf_def_args.ga_len) { - semsg(_(e_toofewarg), ufunc->uf_name); + semsg(_(e_toofewarg), printable_func_name(ufunc)); return FAIL; } |