mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.3317: Vim9: No error for missing white space before return type
Problem: Vim9: No error for missing white space before return type. Solution: Check for white space. (closes #8733)
This commit is contained in:
@@ -1429,6 +1429,27 @@ def Test_return_type_wrong()
|
||||
'defcompile'], 'E1003:')
|
||||
delfunc! g:Func
|
||||
|
||||
CheckScriptFailure([
|
||||
'def Func():number',
|
||||
'return 123',
|
||||
'enddef',
|
||||
'defcompile'], 'E1069:')
|
||||
delfunc! g:Func
|
||||
|
||||
CheckScriptFailure([
|
||||
'def Func() :number',
|
||||
'return 123',
|
||||
'enddef',
|
||||
'defcompile'], 'E1059:')
|
||||
delfunc! g:Func
|
||||
|
||||
CheckScriptFailure([
|
||||
'def Func() : number',
|
||||
'return 123',
|
||||
'enddef',
|
||||
'defcompile'], 'E1059:')
|
||||
delfunc! g:Func
|
||||
|
||||
CheckScriptFailure(['def Func(): list', 'return []', 'enddef'], 'E1008:')
|
||||
delfunc! g:Func
|
||||
CheckScriptFailure(['def Func(): dict', 'return {}', 'enddef'], 'E1008:')
|
||||
|
@@ -4066,8 +4066,15 @@ define_function(exarg_T *eap, char_u *name_arg)
|
||||
if (eap->cmdidx == CMD_def)
|
||||
{
|
||||
// find the return type: :def Func(): type
|
||||
if (*p == ':')
|
||||
if (*skipwhite(p) == ':')
|
||||
{
|
||||
if (*p != ':')
|
||||
{
|
||||
semsg(_(e_no_white_space_allowed_before_colon_str), p);
|
||||
p = skipwhite(p);
|
||||
}
|
||||
else if (!IS_WHITE_OR_NUL(p[1]))
|
||||
semsg(_(e_white_space_required_after_str_str), ":", p);
|
||||
ret_type = skipwhite(p + 1);
|
||||
p = skip_type(ret_type, FALSE);
|
||||
if (p > ret_type)
|
||||
|
@@ -755,6 +755,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3317,
|
||||
/**/
|
||||
3316,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user