0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 8.2.1429: Vim9: no error for missing white after : in dict

Problem:    Vim9: no error for missing white after : in dict.
Solution:   Check for white space. (closes #6671)  Also check that there is no
            white before the :.
This commit is contained in:
Bram Moolenaar
2020-08-12 17:35:58 +02:00
parent ed677f5587
commit 17a836cbee
4 changed files with 17 additions and 4 deletions

View File

@@ -1494,6 +1494,10 @@ def Test_expr7_dict()
mixed = #{a: 234}
mixed = #{}
call CheckDefFailure(["let x = #{a:8}"], 'E1069:')
call CheckDefFailure(["let x = #{a : 8}"], 'E1068:')
call CheckDefFailure(["let x = #{a :8}"], 'E1068:')
call CheckDefFailure(["let x = #{8: 8}"], 'E1014:')
call CheckDefFailure(["let x = #{xxx}"], 'E720:')
call CheckDefFailure(["let x = #{xxx: 1", "let y = 2"], 'E722:')

View File

@@ -774,7 +774,7 @@ func Test_InternalFuncRetType()
enddef
def RetListAny(): list<any>
return items({'k' : 'v'})
return items({'k': 'v'})
enddef
def RetListString(): list<string>

View File

@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1429,
/**/
1428,
/**/

View File

@@ -2593,14 +2593,21 @@ compile_dict(char_u **arg, cctx_T *cctx, int literal)
}
}
*arg = skipwhite(*arg);
if (**arg != ':')
{
semsg(_(e_missing_dict_colon), *arg);
if (*skipwhite(*arg) == ':')
semsg(_(e_no_white_before), ":");
else
semsg(_(e_missing_dict_colon), *arg);
return FAIL;
}
whitep = *arg + 1;
if (!IS_WHITE_OR_NUL(*whitep))
{
semsg(_(e_white_after), ":");
return FAIL;
}
whitep = *arg + 1;
*arg = skipwhite(*arg + 1);
if (may_get_next_line(whitep, arg, cctx) == FAIL)
{