forked from aniani/vim
patch 8.2.1708: Vim9: error message for function has unpritable characters
Problem: Vim9: error message for function has unpritable characters. Solution: use printable_func_name(). (closes #6965)
This commit is contained in:
parent
2bbada8116
commit
b185a40745
@ -280,6 +280,50 @@ def Test_call_wrong_args()
|
|||||||
Func([])
|
Func([])
|
||||||
END
|
END
|
||||||
CheckScriptFailure(lines, 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 5)
|
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
|
enddef
|
||||||
|
|
||||||
" Default arg and varargs
|
" Default arg and varargs
|
||||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1708,
|
||||||
/**/
|
/**/
|
||||||
1707,
|
1707,
|
||||||
/**/
|
/**/
|
||||||
|
@ -1406,12 +1406,12 @@ generate_CALL(cctx_T *cctx, ufunc_T *ufunc, int pushed_argcount)
|
|||||||
RETURN_OK_IF_SKIP(cctx);
|
RETURN_OK_IF_SKIP(cctx);
|
||||||
if (argcount > regular_args && !has_varargs(ufunc))
|
if (argcount > regular_args && !has_varargs(ufunc))
|
||||||
{
|
{
|
||||||
semsg(_(e_toomanyarg), ufunc->uf_name);
|
semsg(_(e_toomanyarg), printable_func_name(ufunc));
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
if (argcount < regular_args - ufunc->uf_def_args.ga_len)
|
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;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user