summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-09-18 22:42:00 +0200
committerBram Moolenaar <Bram@vim.org>2020-09-18 22:42:00 +0200
commitb185a4074515f576b420cfc7a5a07f840cf6b51f (patch)
treee282afc4297490873aa89ef1bfea9b5b394e6b9e
parent2bbada811625ee53c7bcdf689dbf409e9975ea8f (diff)
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.vim44
-rw-r--r--src/version.c2
-rw-r--r--src/vim9compile.c4
3 files changed, 48 insertions, 2 deletions
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 8c2349c343..fe7bf69b85 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 fd880f5e14..2701c79d71 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 338fbc6391..a70ed5a44a 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;
}